Bug 1892041 - Part 1: Update test262 features. r=spidermonkey-reviewers,dminor
[gecko.git] / dom / filesystem / tests / test_basic.html
bloba0464f631ef12dbee6cef759e4e7dc2528a6f66f
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test for Directory API</title>
5 <script src="/tests/SimpleTest/SimpleTest.js"></script>
6 <script type="text/javascript" src="filesystem_commons.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
8 </head>
10 <body>
11 <script type="application/javascript">
13 var directory;
14 var fileList;
16 function create_fileList(aPath) {
17 fileList = document.createElement("input");
18 fileList.setAttribute("type", "file");
19 document.body.appendChild(fileList);
21 var url = SimpleTest.getTestFileURL("script_fileList.js");
22 var script = SpecialPowers.loadChromeScript(url);
24 function onOpened(message) {
25 SpecialPowers.wrap(fileList).mozSetDirectory(message.dir);
26 fileList.setAttribute("data-name", message.name);
28 SpecialPowers.wrap(fileList).getFilesAndDirectories().then(function(array) {
29 array = SpecialPowers.unwrap(array);
30 is(array.length, 1, "We want just 1 directory.");
31 ok(array[0] instanceof Directory, "We want just 1 directory.");
33 directory = array[0];
34 script.destroy();
35 next();
36 });
39 script.addMessageListener("dir.opened", onOpened);
40 script.sendAsyncMessage("dir.open", { path: aPath });
43 function test_simpleFilePicker() {
44 var url = SimpleTest.getTestFileURL("script_fileList.js");
45 var script = SpecialPowers.loadChromeScript(url);
47 function onOpened(message) {
48 SpecialPowers.wrap(fileList).mozSetFileArray([message.file]);
50 is(fileList.files.length, 1, "we want 1 element");
51 ok(fileList.files[0] instanceof File, "we want 1 file");
52 ok("webkitRelativePath" in fileList.files[0], "we have webkitRelativePath attribute");
53 is(fileList.files[0].webkitRelativePath, "", "No webkit relative path for normal filePicker");
55 script.destroy();
56 next();
59 script.addMessageListener("file.opened", onOpened);
60 script.sendAsyncMessage("file.open");
63 function test_duplicateGetFilesAndDirectories() {
64 var url = SimpleTest.getTestFileURL("script_fileList.js");
65 var script = SpecialPowers.loadChromeScript(url);
67 function onOpened(message) {
68 SpecialPowers.wrap(fileList).mozSetDirectory(message.dir);
70 var p1 = SpecialPowers.wrap(fileList).getFilesAndDirectories();
71 var p2 = SpecialPowers.wrap(fileList).getFilesAndDirectories();
73 isnot(p1, p2, "We create 2 different promises");
75 script.destroy();
76 next();
79 script.addMessageListener("dir.opened", onOpened);
80 script.sendAsyncMessage("dir.open", { path: "test" });
83 var tests = [
84 function() { setup_tests(next); },
86 function() { create_fileList("tree"); },
87 function() { test_basic(directory, next); },
88 function() { test_getFilesAndDirectories(directory, true, next); },
89 function() { test_getFiles(directory, false, next); },
90 function() { test_getFiles(directory, true, next); },
92 function() { create_fileList("test"); },
93 function() { test_getFiles_recursiveComparison(directory, next); },
95 function() { create_fileList("root"); },
96 function() { test_basic(directory, next); },
97 function() { test_getFilesAndDirectories(directory, false, next); },
98 function() { test_getFiles(directory, false, next); },
100 test_duplicateGetFilesAndDirectories,
101 test_simpleFilePicker,
104 function next() {
105 if (!tests.length) {
106 SimpleTest.finish();
107 return;
110 var test = tests.shift();
111 test();
114 SimpleTest.waitForExplicitFinish();
115 next();
116 </script>
117 </body>
118 </html>