summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2014-03-11 10:49:29 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>2014-03-11 10:49:29 +0000
commit595a9a3b77fd738748c55ce7a056cc55ff74bf40 (patch)
treea87f89ee844ed00989ee1022288d19a89cc721ee /third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js
parentcc190de5275d8460814aa90c57f90f197c1c1aa4 (diff)
downloadchromium_src-595a9a3b77fd738748c55ce7a056cc55ff74bf40.zip
chromium_src-595a9a3b77fd738748c55ce7a056cc55ff74bf40.tar.gz
chromium_src-595a9a3b77fd738748c55ce7a056cc55ff74bf40.tar.bz2
Add tests to read a directory with many entires
BUG=347900 TEST=run_webkit_tests.sh fast/filesystem/read-directory-many.html TEST=run_webkit_tests.sh fast/filesystem/workers/read-directory-sync-many.html Review URL: https://codereview.chromium.org/190653002 git-svn-id: svn://svn.chromium.org/blink/trunk@168906 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js')
-rw-r--r--third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js b/third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js
new file mode 100644
index 0000000..4c2f4af
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js
@@ -0,0 +1,78 @@
+description("DirectoryReader.readEntries() test with many entries.");
+var fileSystem = null;
+var reader = null;
+var numFilesExpected = 150;
+var numDirectoriesExpected = 150;
+var resultEntries = [];
+
+function endTest()
+{
+ removeAllInDirectory(fileSystem.root);
+ finishJSTest();
+}
+
+function errorCallback(error)
+{
+ debug("Error occured:" + error.name);
+ endTest();
+}
+
+var numFiles = 0, numDirectories = 0;
+function verifyTestResult()
+{
+ for (var i = 0; i < resultEntries.length; ++i) {
+ var entry = resultEntries[i];
+ if (entry.isDirectory) {
+ ++numDirectories;
+ } else {
+ ++numFiles;
+ }
+ }
+ shouldBe('numFiles', 'numFilesExpected');
+ shouldBe('numDirectories', 'numDirectoriesExpected');
+}
+
+function entriesCallback(entries)
+{
+ resultEntries.push.apply(resultEntries, entries);
+
+ if (entries.length) {
+ reader.readEntries(entriesCallback, errorCallback);
+ } else {
+ // Must have read all the entries.
+ verifyTestResult();
+ endTest();
+ }
+}
+
+function runReadDirectoryTest()
+{
+ reader = fileSystem.root.createReader();
+ reader.readEntries(entriesCallback, errorCallback);
+}
+
+function prepareForTest()
+{
+ var helper = new JoinHelper();
+ var done = function() { helper.done(); };
+
+ for (var i = 0; i < numFilesExpected; ++i) {
+ var name = 'file' + i;
+ helper.run(function() { fileSystem.root.getFile(name, {create: true}, done, errorCallback); });
+ }
+ for (var i = 0; i < numDirectoriesExpected; ++i) {
+ var name = 'directory' + i;
+ helper.run(function() { fileSystem.root.getDirectory(name, {create: true}, done, errorCallback); });
+ }
+ helper.join(runReadDirectoryTest);
+}
+
+function successCallback(fs)
+{
+ fileSystem = fs;
+ debug("Successfully obtained TEMPORARY FileSystem:" + fileSystem.name);
+ removeAllInDirectory(fileSystem.root, prepareForTest, errorCallback);
+}
+
+jsTestIsAsync = true;
+webkitRequestFileSystem(TEMPORARY, 100, successCallback, errorCallback);