diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-03-11 10:49:29 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2014-03-11 10:49:29 +0000 |
commit | 595a9a3b77fd738748c55ce7a056cc55ff74bf40 (patch) | |
tree | a87f89ee844ed00989ee1022288d19a89cc721ee /third_party/WebKit/LayoutTests/fast/filesystem/resources/read-directory-many.js | |
parent | cc190de5275d8460814aa90c57f90f197c1c1aa4 (diff) | |
download | chromium_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.js | 78 |
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); |