2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 // -------------------------| Globals
17 var MAX_PATH_LENGTH = 256;
19 var LOCATION_SPECIFIERS = new Array(
30 var TEST_ROOT_LOCATION = 'downloads';
32 // -------------------------| Error verification prerequisites
33 TestEngine.setErrorType(Object);
34 TestEngine.setErrorField('code');
35 var TYPE_MISMATCH_ERR = 17;
37 var INVALID_VALUES_ERR = 22;
38 var SECURITY_ERR = 18;
39 var NOT_FOUND_ERR = 8;
42 // -------------------------| Setting up environment.
44 function on_resolve_error(err) { }
45 function on_resolve_success(file) {
46 function on_listFiles_success(files) {
47 for (i = 0; i < files.length; ++i) {
48 if (files[i].name.match(/^test_wac20_filesystem_/)) {
49 files[i].isDirectory ? deleteDirectory(file, files[i]) : deleteFile(file, files[i]);
53 function on_listFiles_error(err) {
54 TestEngine.log("Error while listing files.");
56 file.listFiles(on_listFiles_success, on_listFiles_error);
58 deviceapis.filesystem.resolve(on_resolve_success, on_resolve_error, TEST_ROOT_LOCATION);
61 TestEngine.log("Exception while setting up environment.");
64 // -------------------------| Tests
65 // WAC2-FILESYSTEM-001: Check filesystem manager properties.
66 function test_filesystem_properties_001() {
67 var props = new Array();
68 props.push(new Array('maxPathLength', MAX_PATH_LENGTH, 0, true, TestEngine.NUMBER));
69 TestEngine.testProperties(deviceapis.filesystem, props);
72 // WAC2-FILESYSTEM-002: Resolve a file.
73 function test_filesystem_resolve_002() {
74 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
75 function on_resolve_success(file) { TestEngine.test("resolve()", isFileObject(file));}
76 resolve_root(on_resolve_success, on_resolve_error);
79 // WAC-FILESYSTEM-003: Resolve a non-existent file.
80 function test_filesystem_resolve_003() {
81 function on_resolve_error(err) {
82 TestEngine.test("resolve() non-existent file [IO_ERR]", (err.code == IO_ERR));
84 function on_resolve_success(file) {
85 TestEngine.test("resolve() non-existent file [IO_ERR]", false);
87 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
88 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, "locationdd");
91 // WAC-FILESYSTEM-004: List files from root directory.
92 function test_file_listFiles_004() {
93 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
94 function on_resolve_success(file) {
95 TestEngine.test("resolve()", isFileObject(file));
96 function on_listFiles_error(err) {
97 TestEngine.test("listFiles() [" + err.code + "]", false);
99 function on_listFiles_success(files) {
100 TestEngine.test("listFiles()", isArray(files));
102 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
103 file.listFiles(cb.successCallback, cb.errorCallback);
105 resolve_root(on_resolve_success, on_resolve_error);
108 // WAC-FILESYSTEM-005: Open file in read mode.
109 function test_file_open_005() {
110 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
111 function on_resolve_success(file) {
112 TestEngine.test("resolve()", isFileObject(file));
113 var file2 = file.createFile(getFileName());
114 TestEngine.test("createFile()", isFile(file2));
115 function on_openStream_success(stream) {
116 TestEngine.test("openStream()", isFilestream(stream));
118 deleteFile(file, file2);
120 function on_openStream_error(err) {
121 TestEngine.test("openStream() [" + err.code + "]", false);
123 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
124 var stream = file2.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
126 resolve_root(on_resolve_success, on_resolve_error);
129 // WAC-FILESYSTEM-006: Open file in write mode.
130 function test_file_open_006() {
131 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
132 function on_resolve_success(file) {
133 var file2 = file.createFile(getFileName());
134 function on_openStream_success(stream) {
135 TestEngine.test("openStream()", isFilestream(stream));
137 deleteFile(file, file2);
139 function on_openStream_error(err) {
140 TestEngine.test("openStream() [" + err.code + "]", false);
142 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
143 var stream = file2.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
145 resolve_root(on_resolve_success, on_resolve_error);
148 // WAC-FILESYSTEM-007: Open file in append mode.
149 function test_file_open_007() {
150 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
151 function on_resolve_success(file) {
152 var file2 = file.createFile(getFileName());
153 TestEngine.test("createFile()", isFile(file2));
154 function on_openStream_success(stream) {
155 TestEngine.test("openStream()", isFilestream(stream));
157 deleteFile(file, file2);
159 function on_openStream_error(err) {
160 TestEngine.test("openStream() [" + err.code + "]", false);
162 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
163 var stream = file2.openStream(cb.successCallback, cb.errorCallback, "a", "UTF-8");
165 resolve_root(on_resolve_success, on_resolve_error);
168 // WAC-FILESYSTEM-008: Call open function with invalid value of parameter 'mode'.
169 function test_file_open_error_008() {
170 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
171 function on_resolve_success(file) {
172 function on_openStream_error(err) {
173 TestEngine.test("Calling openStream() with invalid mode.", err.code === err.INVALID_VALUES_ERR);
174 deleteFile(file, file2);
176 function on_openStream_success(fs) {
177 TestEngine.test("Calling openStream() with invalid mode.", false);
179 deleteFile(file, file2);
181 var file2 = file.createFile(getFileName());
182 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
183 file2.openStream(cb.successCallback, cb.errorCallback, "x", "UTF-8");
185 resolve_root(on_resolve_success, on_resolve_error);
188 // WAC-FILESYSTEM-009: Call open function with invalid value of parameter 'encoding'.
189 function test_file_open_error_009() {
190 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
191 function on_resolve_success(file) {
192 function on_openStream_error(err) {
193 TestEngine.test("Calling openStream() with invalid encoding.", err.code === err.INVALID_VALUES_ERR);
194 deleteFile(file, file2);
196 function on_openStream_success(fs) {
197 TestEngine.test("Calling openStream() with invalid encoding.", false);
199 deleteFile(file, file2);
201 var file2 = file.createFile(getFileName());
202 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
203 file2.openStream(cb.successCallback, cb.errorCallback, "r", "cp-1250");
205 resolve_root(on_resolve_success, on_resolve_error);
208 // WAC-FILESYSTEM-010: Copy file w/o overwrite.
209 function test_file_copyTo_010() {
211 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
212 function on_resolve_success(file) {
213 g_file = file.createFile(getFileName());
214 TestEngine.test("createFile()", isFile(g_file));
215 function on_copyTo_error(err) {
216 TestEngine.test("copyTo() [" + err.code + "]", false);
217 deleteFile(file, g_file);
219 function on_copyTo_success(file2) {
220 TestEngine.test("copyTo()", isFile(file2));
221 deleteFile(file, file2);
222 deleteFile(file, g_file);
224 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
225 file.copyTo(cb.successCallback, cb.errorCallback, g_file.fullPath, file.fullPath + "/" + getFileName(), false);
227 resolve_root(on_resolve_success, on_resolve_error);
230 // WAC-FILESYSTEM-011: Copy file w/o overwrite when destination exists.
231 function test_file_copyTo_error_011() {
234 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
235 function on_resolve_success(file) {
236 g_dest = file.createFile(getFileName());
237 TestEngine.test("createFile()", isFile(g_dest));
239 g_file = file.createFile(getFileName());
240 TestEngine.test("createFile()", isFile(g_file));
242 function on_copyTo_error(err) {
243 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
244 deleteFile(file, g_file);
245 deleteFile(file, g_dest);
247 function on_copyTo_success(file2) {
248 TestEngine.test("copyTo()", false);
249 deleteFile(file, file2);
250 deleteFile(file, g_file);
251 deleteFile(file, g_dest);
253 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
254 file.copyTo(cb.successCallback, cb.errorCallback, g_file.fullPath, file.fullPath + "/" + g_dest.name, false);
256 resolve_root(on_resolve_success, on_resolve_error);
259 // WAC-FILESYSTEM-012: Copy file with overwrite when destination exists.
260 function test_file_copyTo_012() {
263 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
264 function on_resolve_success(file) {
265 g_dest = file.createFile(getFileName());
266 TestEngine.test("createFile()", isFile(g_dest));
268 g_file = file.createFile(getFileName());
269 TestEngine.test("createFile()", isFile(g_file));
270 function on_copyTo_error(err) {
271 TestEngine.test("copyTo() [" + err.code + "]", false);
272 deleteFile(file, g_file);
273 deleteFile(file, g_dest);
275 function on_copyTo_success(file2) {
276 TestEngine.test("copyTo()", isFile(file2));
277 deleteFile(file, file2);
278 deleteFile(file, g_file);
280 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
281 file.copyTo(cb.successCallback, cb.errorCallback, g_file.fullPath, file.fullPath + "/" + g_dest.name, true);
283 resolve_root(on_resolve_success, on_resolve_error);
286 // WAC-FILESYSTEM-013: Create file.
287 function test_file_createFile_013() {
288 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
289 function on_resolve_success(file) {
290 var file1 = file.createFile(getFileName());
291 TestEngine.test("createFile()", isFile(file1));
292 deleteFile(file, file1);
294 resolve_root(on_resolve_success, on_resolve_error);
297 // WAC-FILESYSTEM-014: Create file with invalid characters in path.
298 function test_file_createFile_error_014() {
299 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
300 function on_resolve_success(file) {
301 TestEngine.log("Calling createFile() with invalid characters in path. [NULL OBJECT]");
302 TestEngine.catchErrorType("code", 100, file, "createFile", "!@#$%^&*(");
304 resolve_root(on_resolve_success, on_resolve_error);
307 // WAC-FILESYSTEM-015: Create file when it already exists.
308 function test_file_createFile_error_015() {
309 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
310 function on_resolve_success(file) {
311 var file1 = file.createFile(getFileName());
312 TestEngine.test("createFile()", isFile(file1));
313 TestEngine.log("Calling createFile() with path that already exists. [NULL OBJECT]");
314 TestEngine.catchErrorType("code", 100, file, "createFile", file1.name);
315 deleteFile(file, file1);
317 resolve_root(on_resolve_success, on_resolve_error);
320 // WAC-FILESYSTEM-016: Create file in file instead of directory.
321 function test_file_createFile_error_016() {
322 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
323 function on_resolve_success(file) {
324 var file1 = file.createFile(getFileName());
325 TestEngine.test("createFile()", isFile(file1));
326 TestEngine.log("Calling createFile() on file object. [NULL OBJECT]");
327 TestEngine.catchErrorType("code", 100, file1, "createFile", getFileName());
328 deleteFile(file, file1);
330 resolve_root(on_resolve_success, on_resolve_error);
333 // WAC-FILESYSTEM-017: Create file with invalid path componenet - "..".
334 function test_file_createFile_error_017() {
335 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
336 function on_resolve_success(file) {
337 TestEngine.testPresetError(
338 "Calling createFile() with invalid path component - \"..\".",
339 function(){file.createFile("../testFile_021");},
343 resolve_root(on_resolve_success, on_resolve_error);
346 // WAC-FILESYSTEM-018: Create directory.
347 function test_file_createDirectory_018() {
348 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
349 function on_resolve_success(file) {
350 var dir = file.createDirectory(getDirName());
351 TestEngine.test("createDirectory()", isDir(dir));
352 deleteDirectory(file, dir);
354 resolve_root(on_resolve_success, on_resolve_error);
357 // WAC-FILESYSTEM-019: Create directory with invalid character in path.
358 function test_file_createDirectory_error_019() {
359 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
360 function on_resolve_success(file) {
361 TestEngine.log("Calling createDirectory() with invalid character in path. - [NULL OBJECT]");
362 TestEngine.catchErrorType("code", 100, file, "createDirectory", "!@#$%^&*(");
364 resolve_root(on_resolve_success, on_resolve_error);
367 // WAC-FILESYSTEM-020: Create directory when it already exists.
368 function test_file_createDirectory_error_020() {
369 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
370 function on_resolve_success(file) {
371 var dir = file.createDirectory(getDirName());
372 TestEngine.test("createDirectory()", isDir(dir));
373 TestEngine.log("Calling createDirectory() with path that already exists. - [NULL OBJECT]");
374 TestEngine.catchErrorType("code", 100, file, "createDirectory", dir.name);
375 deleteDirectory(file, dir);
377 resolve_root(on_resolve_success, on_resolve_error);
380 // WAC-FILESYSTEM-021: Create directory in file instead of directory.
381 function test_file_createDirectory_error_021() {
382 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
383 function on_resolve_success(file) {
384 var file1 = file.createFile(getFileName());
385 TestEngine.test("createFile()", isFile(file1));
386 TestEngine.log("Calling createDirectory() on file object. - [NULL OBJECT]");
387 TestEngine.catchErrorType("code", 100, file1, "createDirectory", getDirName());
388 deleteFile(file, file1);
390 resolve_root(on_resolve_success, on_resolve_error);
393 // WAC-FILESYSTEM-022: Create file with invalid path componenet - "..".
394 function test_file_createDirectory_error_022() {
395 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
396 function on_resolve_success(file) {
397 TestEngine.testPresetError(
398 "Calling createDirectory() with invalid path component - \"..\".",
399 function(){file.createDirectory("../" + getDirName());},
403 resolve_root(on_resolve_success, on_resolve_error);
406 // WAC-FILESYSTEM-023: Move file w/o overwrite.
407 function test_file_moveTo_023() {
409 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
410 function on_resolve_success(file) {
411 g_file = file.createFile(getFileName());
412 TestEngine.test("createFile()", isFile(g_file));
413 function on_moveTo_error(err) {
414 TestEngine.test("moveTo() [" + err.code + "]", false);
415 deleteFile(file, g_file);
417 function on_moveTo_success(file1) {
418 TestEngine.test("moveTo()", true);
419 deleteFile(file, file1);
421 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
422 file.moveTo(cb.successCallback, cb.errorCallback, g_file.fullPath, file.fullPath + "/" + getFileName(), false);
424 resolve_root(on_resolve_success, on_resolve_error);
427 // WAC-FILESYSTEM-024: Move file w/o overwrite when destination exists.
428 function test_file_moveTo_error_024() {
431 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
432 function on_resolve_success(file) {
433 g_dest = file.createFile(getFileName());
434 TestEngine.test("createFile()", isFile(g_dest));
435 g_file = file.createFile(getFileName());
436 TestEngine.test("createFile()", isFile(g_file));
438 function on_moveTo_error(err) {
439 TestEngine.test("moveTo() [IO_ERR]", (err.code == IO_ERR));
440 deleteFile(file, g_file);
441 deleteFile(file, g_dest);
443 function on_moveTo_success(file1) {
444 TestEngine.test("moveTo()", false);
445 deleteFile(file, file1);
446 deleteFile(file, g_dest);
448 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
449 file.moveTo(cb.successCallback, cb.errorCallback, g_file.fullPath, g_dest.fullPath, false);
451 resolve_root(on_resolve_success, on_resolve_error);
454 // WAC-FILESYSTEM-025: Move file with overwrite when destination exists.
455 function test_file_moveTo_025() {
458 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
459 function on_resolve_success(file) {
460 g_dest = file.createFile(getFileName());
461 TestEngine.test("createFile()", isFile(g_dest));
462 g_file = file.createFile(getFileName());
463 TestEngine.test("createFile()", isFile(g_file));
465 function on_moveTo_error(err) {
466 TestEngine.test("moveTo() [" + err.code + "]", false);
467 deleteFile(file, g_file);
468 deleteFile(file, g_dest);
470 function on_moveTo_success(file1) {
471 TestEngine.test("moveTo()", isFile(file1));
472 deleteFile(file, file1);
474 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
475 file.moveTo(cb.successCallback, cb.errorCallback, g_file.fullPath, g_dest.fullPath, true);
477 resolve_root(on_resolve_success, on_resolve_error);
480 // WAC-FILESYSTEM-026: Delete a file.
481 function test_file_deleteFile_026() {
482 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
483 function on_resolve_success(file) {
484 var f = file.createFile(getFileName());
485 TestEngine.test("createFile()", isFile(f));
488 resolve_root(on_resolve_success, on_resolve_error);
491 // WAC-FILESYSTEM-027: Call deleteFile() on a directory.
492 function test_file_deleteFile_error_027() {
493 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
494 function on_resolve_success(file) {
495 var dir = file.createDirectory(getDirName());
496 TestEngine.test("createDirectory()", isDir(dir));
497 function on_deleteFile_error(err) {
498 TestEngine.test("deleteFile() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
499 deleteDirectory(file, dir);
501 function on_deleteFile_success() {
502 TestEngine.test("deleteFile()", false);
504 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
505 file.deleteFile(cb.successCallback, cb.errorCallback, dir.fullPath);
507 resolve_root(on_resolve_success, on_resolve_error);
510 // WAC-FILESYSTEM-028: Call deleteFile() on a file.
511 function test_file_deleteFile_error_028() {
512 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
513 function on_resolve_success(file) {
514 var file1 = file.createFile(getFileName());
515 TestEngine.test("createFile()", isFile(file1));
516 var file2 = file.createFile(getFileName());
517 TestEngine.test("createFile()", isFile(file2));
518 function on_deleteFile_error(err) {
519 TestEngine.test("Call deleteFile() on a file. [IO_ERR]", (err.code == IO_ERR));
520 deleteFile(file, file1);
521 deleteFile(file, file2);
523 function on_deleteFile_success() {
524 TestEngine.test("Call deleteFile() on a file. [IO_ERR]", false);
525 deleteFile(file, file2);
527 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
528 file1.deleteFile(cb.successCallback, cb.errorCallback, file2.fullPath);
530 resolve_root(on_resolve_success, on_resolve_error);
533 // WAC-FILESYSTEM-029: Call deleteFile() on the same file twice.
534 function test_file_deleteFile_error_029() {
535 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
536 function on_resolve_success(file) {
537 var f = file.createFile(getFileName());
538 TestEngine.test("createFile()", isFile(f));
540 function on_deleteFile_error(err) {
541 TestEngine.test("Call deleteFile() on a file that has already been deleted. [IO_ERR]", (err.code == IO_ERR));
543 function on_deleteFile_success() {
544 TestEngine.test("Call deleteFile() on a file that has already been deleted. [IO_ERR]", false);
546 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
547 file.deleteFile(cb.successCallback, cb.errorCallback, f.fullPath);
549 resolve_root(on_resolve_success, on_resolve_error);
552 // WAC-FILESYSTEM-030: Call deleteFile() on opened file.
553 function test_file_deleteFile_error_030() {
554 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
555 function on_resolve_success(file) {
556 var f = file.createFile(getFileName());
557 TestEngine.test("createFile()", isFile(f));
558 function on_openStream_success(stream) {
559 TestEngine.test("openStream()", isFilestream(stream));
560 function on_deleteFile_error(err) {
561 TestEngine.test("Call deleteFile() on opened file. [IO_ERR]", (err.code == IO_ERR));
565 function on_deleteFile_success() {
566 TestEngine.test("Call deleteFile() on opened file. [IO_ERR]", false);
569 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
570 file.deleteFile(cb.successCallback, cb.errorCallback, f.fullPath);
572 function on_openStream_error(err) {
573 TestEngine.test("openStream() [" + err.code + "]", false);
575 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
576 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
578 resolve_root(on_resolve_success, on_resolve_error);
581 // WAC-FILESYSTEM-031: Delete a directory.
582 function test_file_deleteDirectory_031() {
583 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
584 function on_resolve_success(file) {
585 var dir = file.createDirectory(getDirName());
586 TestEngine.test("createDirectory()", isDir(dir));
587 deleteDirectory(file, dir);
589 resolve_root(on_resolve_success, on_resolve_error);
592 // WAC-FILESYSTEM-032: Call deleteDirectory() on a file.
593 function test_file_deleteDirectory_error_032() {
595 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
596 function on_resolve_success(file) {
597 g_file = file.createFile(getFileName());
598 TestEngine.test("createFile()", isFile(g_file));
599 function on_deleteDirectory_error(err) {
600 TestEngine.test("Call deleteDirectory() on a file. [IO_ERR] [" + err.code + "]", (err.code == IO_ERR));
601 deleteFile(file, g_file);
603 function on_deleteDirectory_success(file) {
604 TestEngine.test("deleteDirectory()", false);
605 deleteFile(file, g_file);
607 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
608 g_file.deleteDirectory(cb.successCallback, cb.errorCallback, "foo", true);
610 resolve_root(on_resolve_success, on_resolve_error);
613 // WAC-FILESYSTEM-033: Call deleteDirectory() on the same directory twice.
614 function test_file_deleteDirectory_error_033() {
615 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
616 function on_resolve_success(file) {
617 var dir = file.createDirectory(getDirName());
618 TestEngine.test("createDirectory()", isDir(dir));
619 function on_deleteDirectory2_error(err) {
620 TestEngine.test("Call deleteDirectory() on a dir that has already been deleted. [IO_ERR] [" + err.code + "]", (err.code == IO_ERR));
622 function on_deleteDirectory2_success(file) {
623 TestEngine.test("deleteDirectory()", false);
625 deleteDirectory(file, dir);
626 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory2_success, on_deleteDirectory2_error);
627 file.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
629 resolve_root(on_resolve_success, on_resolve_error);
632 // WAC-FILESYSTEM-034: Call deleteDirectory() non-recursively on non-empty directory.
633 function test_file_deleteDirectory_error_034() {
635 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
636 function on_resolve_success(file) {
637 g_dir = file.createDirectory(getDirName());
638 TestEngine.test("createDirectory()", isDir(g_dir));
639 TestEngine.test("createFile()", isFile(g_dir.createFile(getFileName())));
640 function on_deleteDirectory_error(err) {
641 TestEngine.test("Call deleteDirectory() non-recursively on non-empty dir. [IO_ERR]", (err.code == IO_ERR));
642 deleteDirectory(file, g_dir);
644 function on_deleteDirectory_success() {
645 TestEngine.test("deleteDirectory()", false);
647 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
648 file.deleteDirectory(cb.successCallback, cb.errorCallback, g_dir.fullPath, false);
650 resolve_root(on_resolve_success, on_resolve_error);
653 // WAC-FILESYSTEM-035: Call write()/read() on a stream.
654 function test_filestream_write_read_035() {
655 var test_string = "It's alive! Alive!";
656 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
657 function on_resolve_success(file) {
658 var f = file.createFile(getFileName());
659 TestEngine.test("createFile()", isFile(f));
660 function on_openStream_success(stream1) {
661 TestEngine.test("openStream()", isFilestream(stream1));
662 stream1.write(test_string);
664 function on_openStream1_success(r_stream) {
665 TestEngine.test("openStream()", isFilestream(r_stream));
666 var read_string = r_stream.read(test_string.length);
668 TestEngine.test("write()/read()", (read_string === test_string));
671 function on_openStream1_error(err) {
672 TestEngine.test("openStream() [" + err.code + "]", false);
674 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
675 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
677 function on_openStream_error(err) {
678 TestEngine.test("openStream() [" + err.code + "]", false);
680 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
681 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
683 resolve_root(on_resolve_success, on_resolve_error);
686 // WAC-FILESYSTEM-036: Call read() on a closed stream.
687 function test_filestream_read_error_036() {
688 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
689 function on_resolve_success(file) {
690 var f = file.createFile(getFileName());
691 TestEngine.test("createFile()", isFile(f));
692 function on_openStream_success(stream) {
693 TestEngine.test("openStream()", isFilestream(stream));
695 TestEngine.testPresetError(
696 "Call read() on a closed stream. [IO_ERR]",
697 function(){stream.read(3);},
702 function on_openStream_error(err) {
703 TestEngine.test("openStream() [" + err.code + "]", false);
706 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
707 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
709 resolve_root(on_resolve_success, on_resolve_error);
712 // WAC-FILESYSTEM-037: Call read() on a stream with EOF flag set.
713 function test_filestream_read_error_037() {
714 var test_string = "It's alive! Alive!";
715 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
716 function on_resolve_success(file) {
717 var f = file.createFile(getFileName());
718 TestEngine.test("createFile()", isFile(f));
719 function on_openStream_success(stream) {
720 TestEngine.test("openStream()", isFilestream(stream));
721 stream.write(test_string);
723 function on_openStream1_success(stream1) {
724 TestEngine.test("openStream()", isFilestream(stream1));
725 var read_string = stream1.read(test_string.length);
726 TestEngine.testPresetError(
727 "Call read() on stream with EOF set. [IO_ERR]",
728 function(){stream1.read(1);},
734 function on_openStream1_error(err) {
735 TestEngine.test("openStream() [" + err.code + "]", false);
738 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
739 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
741 function on_openStream_error(err) {
742 TestEngine.test("openStream() [" + err.code + "]", false);
745 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
746 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
748 resolve_root(on_resolve_success, on_resolve_error);
751 // WAC-FILESYSTEM-038: Call openStream() on a directory.
752 function test_file_open_error_038() {
753 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
754 function on_resolve_success(file) {
755 var dir = file.createDirectory(getDirName());
756 TestEngine.test("createDirectory()", isDir(dir));
757 function on_openStream_success(stream) {
758 TestEngine.test("Call openStream() on a directory.", false);
761 function on_openStream_error(err) {
762 TestEngine.test("Call openStream() on a directory. [IO_ERR]", (err.code == IO_ERR));
764 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
765 dir.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
766 deleteDirectory(file, dir);
768 resolve_root(on_resolve_success, on_resolve_error);
771 // WAC-FILESYSTEM-040: Call read() on write-only stream.
772 function test_filestream_read_error_040() {
773 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
774 function on_resolve_success(file) {
775 var f = file.createFile(getFileName());
776 TestEngine.test("createFile()", isFile(f));
777 function on_openStream_success(stream) {
778 TestEngine.test("openStream()", isFilestream(stream));
779 TestEngine.testPresetError(
780 "Call read() on write-only stream. [IO_ERR]",
781 function(){stream.read(0);},
787 function on_openStream_error(err) {
788 TestEngine.test("openStream()", false);
791 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
792 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
794 resolve_root(on_resolve_success, on_resolve_error);
797 // WAC-FILESYSTEM-041: Call write() on a closed stream.
798 function test_filestream_write_error_041() {
799 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
800 function on_resolve_success(file) {
801 var f = file.createFile(getFileName());
802 TestEngine.test("createFile()", isFile(f));
803 function on_openStream_success(stream) {
804 TestEngine.test("openStream()", isFilestream(stream));
806 TestEngine.testPresetError(
807 "Call write() on a closed stream. [IO_ERR]",
808 function(){stream.write('test');},
813 function on_openStream_error(err) {
814 TestEngine.test("openStream()", false);
817 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
818 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
820 resolve_root(on_resolve_success, on_resolve_error);
823 // WAC-FILESYSTEM-042: Call write() on read-only stream.
824 function test_filestream_write_error_042() {
825 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
826 function on_resolve_success(file) {
827 var f = file.createFile(getFileName());
828 TestEngine.test("createFile()", isFile(f));
829 function on_openStream_success(stream) {
830 TestEngine.test("openStream()", isFilestream(stream));
831 TestEngine.testPresetError(
832 "Call write() on read-only stream. [IO_ERR]",
833 function(){stream.write('test');},
839 function on_openStream_error(err) {
840 TestEngine.test("openStream()", false);
843 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
844 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
846 resolve_root(on_resolve_success, on_resolve_error);
849 // WAC-FILESYSTEM-043
850 // Parameters: stringData = array
851 // Result: Test passes (toString() called on JS Array).
852 function test_filestream_write_error_043() {
853 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
854 function on_resolve_success(file) {
855 var f = file.createFile(getFileName());
856 TestEngine.test("createFile()", isFile(f));
857 function on_openStream_success(stream) {
858 TestEngine.test("openStream()", isFilestream(stream));
859 stream.write(new Array('t','e','s','t'));
860 TestEngine.test("write()", true);
864 function on_openStream_error(err) {
865 TestEngine.test("openStream()", false);
868 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
869 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
871 resolve_root(on_resolve_success, on_resolve_error);
874 // WAC-FILESYSTEM-044: Call write() w/o argument.
875 function test_filestream_write_error_044() {
876 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
877 function on_resolve_success(file) {
878 var f = file.createFile(getFileName());
879 TestEngine.test("createFile()", isFile(f));
880 function on_openStream_success(stream) {
881 TestEngine.test("openStream()", isFilestream(stream));
882 TestEngine.testPresetError(
883 "Call write() w/o argument. [TYPE_MISMATCH_ERR]",
884 function(){stream.write();},
890 function on_openStream_error(err) {
891 TestEngine.test("openStream()", false);
894 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
895 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
897 resolve_root(on_resolve_success, on_resolve_error);
900 // WAC-FILESYSTEM-045: Call read() with invalid argument type.
901 function test_filestream_read_error_045() {
902 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
903 function on_resolve_success(file) {
904 var f = file.createFile(getFileName());
905 TestEngine.test("createFile()", isFile(f));
906 function on_openStream_success(stream) {
907 TestEngine.test("openStream()", isFilestream(stream));
908 TestEngine.test("read()", stream.read('should be a number') == '');
912 function on_openStream_error(err) {
913 TestEngine.test("openStream() [" + err.code + "]", false);
916 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
917 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
919 resolve_root(on_resolve_success, on_resolve_error);
922 // WAC-FILESYSTEM-046: Call read() w/o argument.
923 function test_filestream_read_error_046() {
924 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
925 function on_resolve_success(file) {
926 var f = file.createFile(getFileName());
927 TestEngine.test("createFile()", isFile(f));
928 function on_openStream_success(stream) {
929 TestEngine.test("openStream()", isFilestream(stream));
930 TestEngine.testPresetError(
931 "Call read() w/o argument. [TYPE_MISMATCH_ERR]",
932 function(){stream.read();},
938 function on_openStream_error(err) {
939 TestEngine.test("openStream() [" + err.code + "]", false);
942 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
943 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
945 resolve_root(on_resolve_success, on_resolve_error);
948 // WAC-FILESYSTEM-047: Call writeBytes()/readBytes() on a stream.
949 function test_filestream_writeBytes_readBytes_047() {
950 var test_array = new Array(1, 2, 3, 4);
951 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
952 function on_resolve_success(file) {
953 var f = file.createFile(getFileName());
954 TestEngine.test("createFile()", isFile(f));
955 function on_openStream_success(stream) {
956 TestEngine.test("openStream()", isFilestream(stream));
957 stream.writeBytes(test_array);
959 function on_openStream1_success(stream1) {
960 TestEngine.test("openStream()", isFilestream(stream1));
961 var read_array = stream1.readBytes(test_array.length);
964 if (test_array.length == read_array.length) {
966 for (i = 0; i < test_array.length; ++i) {
967 if (test_array[i] != read_array[i]) {
973 TestEngine.test("writeBytes()/readBytes()", cmp);
976 function on_openStream1_error(err) {
977 TestEngine.test("openStream() [" + err.code + "]", false);
980 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
981 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
983 function on_openStream_error(err) {
984 TestEngine.test("openStream() [" + err.code + "]", false);
987 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
988 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
990 resolve_root(on_resolve_success, on_resolve_error);
993 // WAC-FILESYSTEM-048: Call readBytes() on a closed stream.
994 function test_filestream_readBytes_error_048() {
995 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
996 function on_resolve_success(file) {
997 var f = file.createFile(getFileName());
998 TestEngine.test("createFile()", isFile(f));
999 function on_openStream_success(stream) {
1000 TestEngine.test("openStream()", isFilestream(stream));
1002 TestEngine.testPresetError(
1003 "Call readBytes() on a closed stream. [IO_ERR]",
1004 function(){stream.readBytes(3);},
1007 deleteFile(file, f);
1009 function on_openStream_error(err) {
1010 TestEngine.test("openStream() [" + err.code + "]", false);
1011 deleteFile(file, f);
1013 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1014 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1016 resolve_root(on_resolve_success, on_resolve_error);
1019 // WAC-FILESYSTEM-049: Call readBytes() on a stream with EOF flag set.
1020 function test_filestream_readBytes_error_049() {
1021 var test_array = new Array(1, 2, 3, 4);
1022 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1023 function on_resolve_success(file) {
1024 var f = file.createFile(getFileName());
1025 TestEngine.test("createFile()", isFile(f));
1026 function on_openStream_success(stream) {
1027 TestEngine.test("openStream()", isFilestream(stream));
1028 stream.writeBytes(test_array);
1030 function on_openStream1_success(stream1) {
1031 TestEngine.test("openStream()", isFilestream(stream1));
1032 var read_array = stream1.readBytes(100);
1033 TestEngine.testPresetError(
1034 "Call readBytes() on stream with EOF set. [IO_ERR]",
1035 function(){stream1.readBytes(1);},
1039 deleteFile(file, f);
1041 function on_openStream1_error(err) {
1042 TestEngine.test("openStream() [" + err.code + "]", false);
1043 deleteFile(file, f);
1045 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1046 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1048 function on_openStream_error(err) {
1049 TestEngine.test("openStream() [" + err.code + "]", false);
1050 deleteFile(file, f);
1052 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1053 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1055 resolve_root(on_resolve_success, on_resolve_error);
1058 // WAC-FILESYSTEM-051: Call readBytes() on write-only stream.
1059 function test_filestream_readBytes_error_051() {
1060 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1061 function on_resolve_success(file) {
1062 var f = file.createFile(getFileName());
1063 TestEngine.test("createFile()", isFile(f));
1064 function on_openStream_success(stream) {
1065 TestEngine.test("openStream()", isFilestream(stream));
1066 TestEngine.testPresetError(
1067 "Call readBytes() on write-only stream. [IO_ERR]",
1068 function(){stream.readBytes(0);},
1072 deleteFile(file, f);
1074 function on_openStream_error(err) {
1075 TestEngine.test("openStream() [" + err.code + "]", false);
1076 deleteFile(file, f);
1078 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1079 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1081 resolve_root(on_resolve_success, on_resolve_error);
1084 // WAC-FILESYSTEM-052
1085 // Parameters: byteCount = string
1086 // Result: Test passes (conversion exception).
1087 function test_filestream_readBytes_error_052() {
1088 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1089 function on_resolve_success(file) {
1090 var f = file.createFile(getFileName());
1091 TestEngine.test("createFile()", isFile(f));
1092 function on_openStream_success(stream) {
1093 TestEngine.test("openStream()", isFilestream(stream));
1094 TestEngine.test("readBytes()", stream.readBytes('should be a number').length == 0);
1096 deleteFile(file, f);
1098 function on_openStream_error(err) {
1099 TestEngine.test("openStream() [" + err.code + "]", false);
1100 deleteFile(file, f);
1102 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1103 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1105 resolve_root(on_resolve_success, on_resolve_error);
1108 // WAC-FILESYSTEM-053: Call readBytes() w/o argument.
1109 function test_filestream_readBytes_error_053() {
1110 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1111 function on_resolve_success(file) {
1112 var f = file.createFile(getFileName());
1113 TestEngine.test("createFile()", isFile(f));
1114 function on_openStream_success(stream) {
1115 TestEngine.test("openStream()", isFilestream(stream));
1116 TestEngine.testPresetError(
1117 "Call read() w/o argument. [TYPE_MISMATCH_ERR]",
1118 function(){stream.readBytes();},
1122 deleteFile(file, f);
1124 function on_openStream_error(err) {
1125 TestEngine.test("openStream() [" + err.code + "]", false);
1126 deleteFile(file, f);
1128 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1129 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1131 resolve_root(on_resolve_success, on_resolve_error);
1134 // WAC-FILESYSTEM-054: Call writeBytes() on a closed stream.
1135 function test_filestream_writeBytes_error_054() {
1136 var test_array = new Array(1, 2, 3, 4);
1137 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1138 function on_resolve_success(file) {
1139 var f = file.createFile(getFileName());
1140 TestEngine.test("createFile()", isFile(f));
1141 function on_openStream_success(stream) {
1142 TestEngine.test("openStream()", isFilestream(stream));
1144 TestEngine.testPresetError(
1145 "Call writeBytes() on a closed stream. [IO_ERR]",
1146 function(){stream.writeBytes(test_array);},
1149 deleteFile(file, f);
1151 function on_openStream_error(err) {
1152 TestEngine.test("openStream() [" + err.code + "]", false);
1153 deleteFile(file, f);
1155 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1156 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1158 resolve_root(on_resolve_success, on_resolve_error);
1161 // WAC-FILESYSTEM-055: Call writeBytes() on read-only stream.
1162 function test_filestream_writeBytes_error_055() {
1163 var test_array = new Array(1, 2, 3, 4);
1164 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1165 function on_resolve_success(file) {
1166 var f = file.createFile(getFileName());
1167 TestEngine.test("createFile()", isFile(f));
1168 function on_openStream_success(stream) {
1169 TestEngine.test("openStream()", isFilestream(stream));
1170 TestEngine.testPresetError(
1171 "Call writeBytes() on read-only stream. [IO_ERR]",
1172 function(){stream.writeBytes(test_array);},
1176 deleteFile(file, f);
1178 function on_openStream_error(err) {
1179 TestEngine.test("openStream() [" + err.code + "]", false);
1180 deleteFile(file, f);
1182 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1183 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1185 resolve_root(on_resolve_success, on_resolve_error);
1188 // WAC-FILESYSTEM-056: Call writeBytes() with invalid argument type.
1189 function test_filestream_writeBytes_error_056() {
1190 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1191 function on_resolve_success(file) {
1192 var f = file.createFile(getFileName());
1193 TestEngine.test("createFile()", isFile(f));
1194 function on_openStream_success(stream) {
1195 TestEngine.test("openStream()", isFilestream(stream));
1196 TestEngine.testPresetError(
1197 "Call writeBytes() with invalid argument. [TYPE_MISMATCH_ERR]",
1198 function(){stream.writeBytes(3);},
1202 deleteFile(file, f);
1204 function on_openStream_error(err) {
1205 TestEngine.test("openStream() [" + err.code + "]", false);
1206 deleteFile(file, f);
1208 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1209 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1211 resolve_root(on_resolve_success, on_resolve_error);
1214 // WAC-FILESYSTEM-057: Call writeBytes() w/o argument.
1215 function test_filestream_writeBytes_057() {
1216 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1217 function on_resolve_success(file) {
1218 var f = file.createFile(getFileName());
1219 TestEngine.test("createFile()", isFile(f));
1220 function on_openStream_success(stream) {
1221 TestEngine.test("openStream()", isFilestream(stream));
1222 stream.writeBytes();
1225 function on_openStream_read_success(stream) {
1226 TestEngine.test("openStream()", isFilestream(stream));
1227 var readData = stream.readBytes(256);
1229 TestEngine.test("readBytes()", isArray(readData) && readData.length == 0);
1230 deleteFile(file, f);
1233 var cb = TestEngine.registerCallback("openStream", on_openStream_read_success, on_openStream_error);
1234 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1236 function on_openStream_error(err) {
1237 TestEngine.test("openStream() [" + err.code + "]", false);
1238 deleteFile(file, f);
1240 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1241 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1243 resolve_root(on_resolve_success, on_resolve_error);
1246 // WAC-FILESYSTEM-058: Call writeBase64()/readBase64() on a stream.
1247 function test_filestream_writeBase64_readBase64_058() {
1248 var test_base64 = 'dGVzdA==';
1249 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1250 function on_resolve_success(file) {
1251 var f = file.createFile(getFileName());
1252 TestEngine.test("createFile()", isFile(f));
1253 function on_openStream_success(stream) {
1254 TestEngine.test("openStream()", isFilestream(stream));
1255 stream.writeBase64(test_base64);
1257 function on_openStream1_success(stream1) {
1258 TestEngine.test("openStream()", isFilestream(stream1));
1259 var read_base64 = stream1.readBase64(100);
1261 TestEngine.test("writeBase64()/readBase64()", (test_base64 === read_base64));
1262 deleteFile(file, f);
1264 function on_openStream1_error(err) {
1265 TestEngine.test("openStream() [" + err.code + "]", false);
1266 deleteFile(file, f);
1268 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1269 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1271 function on_openStream_error(err) {
1272 TestEngine.test("openStream() [" + err.code + "]", false);
1273 deleteFile(file, f);
1275 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1276 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1278 resolve_root(on_resolve_success, on_resolve_error);
1281 // WAC-FILESYSTEM-059: Call writeBase64()/read() on a stream.
1282 function test_filestream_writeBase64_read_059() {
1283 var test_base64 = 'dGVzdA==';
1284 var test_string = 'test';
1285 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1286 function on_resolve_success(file) {
1287 var f = file.createFile(getFileName());
1288 TestEngine.test("createFile()", isFile(f));
1289 function on_openStream_success(stream) {
1290 TestEngine.test("openStream()", isFilestream(stream));
1291 stream.writeBase64(test_base64);
1293 function on_openStream1_success(stream1) {
1294 TestEngine.test("openStream()", isFilestream(stream1));
1295 var read_string = stream1.read(test_string.length);
1297 TestEngine.test("writeBase64()/read()", (test_string === read_string));
1298 deleteFile(file, f);
1300 function on_openStream1_error(err) {
1301 TestEngine.test("openStream() [" + err.code + "]", false);
1302 deleteFile(file, f);
1304 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1305 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1307 function on_openStream_error(err) {
1308 TestEngine.test("openStream() [" + err.code + "]", false);
1309 deleteFile(file, f);
1311 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1312 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1314 resolve_root(on_resolve_success, on_resolve_error);
1317 // WAC-FILESYSTEM-060: Call write()/readBase64() on a stream.
1318 function test_filestream_write_readBase64_060() {
1319 var test_base64 = 'dGVzdA==';
1320 var test_string = 'test';
1321 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1322 function on_resolve_success(file) {
1323 var f = file.createFile(getFileName());
1324 TestEngine.test("createFile()", isFile(f));
1325 function on_openStream_success(stream) {
1326 TestEngine.test("openStream()", isFilestream(stream));
1327 stream.write(test_string);
1329 function on_openStream1_success(stream1) {
1330 TestEngine.test("openStream()", isFilestream(stream1));
1331 var read_base64 = stream1.readBase64(100);
1333 TestEngine.test("write()/readBase64()", (test_base64 === read_base64));
1334 deleteFile(file, f);
1336 function on_openStream1_error(err) {
1337 TestEngine.test("openStream() [" + err.code + "]", false);
1338 deleteFile(file, f);
1340 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1341 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1343 function on_openStream_error(err) {
1344 TestEngine.test("openStream() [" + err.code + "]", false);
1345 deleteFile(file, f);
1347 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1348 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1350 resolve_root(on_resolve_success, on_resolve_error);
1353 // WAC-FILESYSTEM-061: Call readBase64() on a closed stream.
1354 function test_filestream_readBase64_error_061() {
1355 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1356 function on_resolve_success(file) {
1357 var f = file.createFile(getFileName());
1358 TestEngine.test("createFile()", isFile(f));
1359 function on_openStream_success(stream) {
1360 TestEngine.test("openStream()", isFilestream(stream));
1362 TestEngine.testPresetError(
1363 "Call readBase64() on a closed stream. [IO_ERR]",
1364 function(){stream.readBase64(3);},
1367 deleteFile(file, f);
1369 function on_openStream_error(err) {
1370 TestEngine.test("openStream() [" + err.code + "]", false);
1371 deleteFile(file, f);
1373 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1374 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1376 resolve_root(on_resolve_success, on_resolve_error);
1379 // WAC-FILESYSTEM-062: Call readBase64() on a stream with EOF flag set.
1380 function test_filestream_readBase64_error_062() {
1381 var test_base64 = 'dGVzdA==';
1382 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1383 function on_resolve_success(file) {
1384 var f = file.createFile(getFileName());
1385 TestEngine.test("createFile()", isFile(f));
1386 function on_openStream_success(stream) {
1387 TestEngine.test("openStream()", isFilestream(stream));
1388 stream.writeBase64(test_base64);
1390 function on_openStream1_success(stream1) {
1391 TestEngine.test("openStream()", isFilestream(stream1));
1392 var read_base64 = stream1.readBase64(100);
1393 TestEngine.testPresetError(
1394 "Call readBase64() on stream with EOF set. [IO_ERR]",
1395 function(){stream1.readBase64(1);},
1399 deleteFile(file, f);
1401 function on_openStream1_error(err) {
1402 TestEngine.test("openStream() [" + err.code + "]", false);
1403 deleteFile(file, f);
1405 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1406 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1408 function on_openStream_error(err) {
1409 TestEngine.test("openStream() [" + err.code + "]", false);
1410 deleteFile(file, f);
1412 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1413 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1415 resolve_root(on_resolve_success, on_resolve_error);
1418 // WAC-FILESYSTEM-064: Call readBase64() on write-only stream.
1419 function test_filestream_readBase64_error_064() {
1420 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1421 function on_resolve_success(file) {
1422 var f = file.createFile(getFileName());
1423 TestEngine.test("createFile()", isFile(f));
1424 function on_openStream_success(stream) {
1425 TestEngine.test("openStream()", isFilestream(stream));
1426 TestEngine.testPresetError(
1427 "Call readBase64() on write-only stream. [IO_ERR]",
1428 function(){stream.readBase64(0);},
1432 deleteFile(file, f);
1434 function on_openStream_error(err) {
1435 TestEngine.test("openStream() [" + err.code + "]", false);
1436 deleteFile(file, f);
1438 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1439 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1441 resolve_root(on_resolve_success, on_resolve_error);
1444 // WAC-FILESYSTEM-065
1445 // Parameters: byteCount = string
1446 // Result: Test passes (empty string).
1447 function test_filestream_readBase64_error_065() {
1448 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1449 function on_resolve_success(file) {
1450 var f = file.createFile(getFileName());
1451 TestEngine.test("createFile()", isFile(f));
1452 function on_openStream_success(stream) {
1453 TestEngine.test("openStream()", isFilestream(stream));
1454 TestEngine.test("readBase64()", stream.readBase64('should be a number') == '');
1456 deleteFile(file, f);
1458 function on_openStream_error(err) {
1459 TestEngine.test("openStream() [" + err.code + "]", false);
1460 deleteFile(file, f);
1462 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1463 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1465 resolve_root(on_resolve_success, on_resolve_error);
1468 // WAC-FILESYSTEM-066: Call readBase64() w/o argument.
1469 function test_filestream_readBase64_error_066() {
1470 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1471 function on_resolve_success(file) {
1472 var f = file.createFile(getFileName());
1473 TestEngine.test("createFile()", isFile(f));
1474 function on_openStream_success(stream) {
1475 TestEngine.test("openStream()", isFilestream(stream));
1476 TestEngine.testPresetError(
1477 "Call readBase64() w/o argument. [TYPE_MISMATCH_ERR]",
1478 function(){stream.readBase64();},
1482 deleteFile(file, f);
1484 function on_openStream_error(err) {
1485 TestEngine.test("openStream() [" + err.code + "]", false);
1486 deleteFile(file, f);
1488 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1489 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1491 resolve_root(on_resolve_success, on_resolve_error);
1494 // WAC-FILESYSTEM-067: Call writeBase64() on a closed stream.
1495 function test_filestream_writeBase64_error_067() {
1496 var test_base64 = 'dGVzdA==';
1497 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1498 function on_resolve_success(file) {
1499 var f = file.createFile(getFileName());
1500 TestEngine.test("createFile()", isFile(f));
1501 function on_openStream_success(stream) {
1502 TestEngine.test("openStream()", isFilestream(stream));
1504 TestEngine.testPresetError(
1505 "Call writeBase64() on a closed stream. [IO_ERR]",
1506 function(){stream.writeBase64(test_base64);},
1509 deleteFile(file, f);
1511 function on_openStream_error(err) {
1512 TestEngine.test("openStream() [" + err.code + "]", false);
1513 deleteFile(file, f);
1515 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1516 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1518 resolve_root(on_resolve_success, on_resolve_error);
1521 // WAC-FILESYSTEM-068: Call writeBase64() on read-only stream.
1522 function test_filestream_writeBase64_error_068() {
1523 var test_base64 = 'dGVzdA==';
1524 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1525 function on_resolve_success(file) {
1526 var f = file.createFile(getFileName());
1527 TestEngine.test("createFile()", isFile(f));
1528 function on_openStream_success(stream) {
1529 TestEngine.test("openStream()", isFilestream(stream));
1530 TestEngine.testPresetError(
1531 "Call writeBase64() on read-only stream. [IO_ERR]",
1532 function(){stream.writeBase64(test_base64);},
1536 deleteFile(file, f);
1538 function on_openStream_error(err) {
1539 TestEngine.test("openStream() [" + err.code + "]", false);
1540 deleteFile(file, f);
1542 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1543 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1545 resolve_root(on_resolve_success, on_resolve_error);
1548 // WAC-FILESYSTEM-069
1549 // Parameters: base64Data = invalid value
1550 // Result: IO_ERR thrown in place.
1551 function test_filestream_writeBase64_error_069() {
1552 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1553 function on_resolve_success(file) {
1554 var f = file.createFile(getFileName());
1555 TestEngine.test("createFile()", isFile(f));
1556 function on_openStream_success(stream) {
1557 TestEngine.test("openStream()", isFilestream(stream));
1558 TestEngine.testPresetError(
1559 "Call writeBase64() with invalid argument.",
1560 function(){stream.writeBase64(3);},
1564 deleteFile(file, f);
1566 function on_openStream_error(err) {
1567 TestEngine.test("openStream() [" + err.code + "]", false);
1568 deleteFile(file, f);
1570 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1571 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1573 resolve_root(on_resolve_success, on_resolve_error);
1576 // WAC-FILESYSTEM-070: Call writeBase64() w/o argument.
1577 function test_filestream_writeBase64_error_070() {
1578 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1579 function on_resolve_success(file) {
1580 var f = file.createFile(getFileName());
1581 TestEngine.test("createFile()", isFile(f));
1582 function on_openStream_success(stream) {
1583 TestEngine.test("openStream()", isFilestream(stream));
1584 TestEngine.testPresetError(
1585 "Call writeBase64() w/o argument. [TYPE_MISMATCH_ERR]",
1586 function(){stream.writeBase64();},
1590 deleteFile(file, f);
1592 function on_openStream_error(err) {
1593 TestEngine.test("openStream() [" + err.code + "]", false);
1594 deleteFile(file, f);
1596 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1597 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1599 resolve_root(on_resolve_success, on_resolve_error);
1602 // WAC-FILESYSTEM-071: Call createFile() on node resolved in read-only mode.
1603 function test_file_createFile_error_071() {
1604 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1605 function on_resolve_success(file) {
1606 TestEngine.testPresetError(
1607 "Call createFile() on read-only node. [SECURITY_ERR]",
1609 var f = file.createFile(getFileName());
1610 deleteFile(file, f);
1615 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1616 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1619 // WAC-FILESYSTEM-072: Call deleteFile() on node resolved in read-only mode.
1620 function test_file_deleteFile_error_072() {
1621 var filename = getFileName();
1622 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1623 function on_resolve_success(file) {
1624 TestEngine.test("createFile()", isFile(file.createFile(filename)));
1626 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1627 function on_resolve1_success(file) {
1628 var f = file.resolve(filename);
1629 TestEngine.test("resolve()", isFile(f));
1631 function on_deleteFile_error(err) {
1632 TestEngine.test("Call deleteFile() on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1633 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1634 function on_resolve2_success(file) {
1635 var f = file.resolve(filename);
1636 TestEngine.test("resolve()", isFile(f));
1637 deleteFile(file, f);
1639 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1640 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1642 function on_deleteFile_success() {
1643 TestEngine.test("Call deleteFile() on read-only node. [SECURITY_ERR]", false);
1645 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
1646 file.deleteFile(cb.successCallback, cb.errorCallback, f.fullPath);
1648 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1649 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1651 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1652 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1655 // WAC-FILESYSTEM-073: Call deleteDirectory() on node resolved in read-only mode.
1656 function test_file_deleteDirectory_error_073() {
1657 var dirname = getDirName();
1658 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1659 function on_resolve_success(file) {
1660 TestEngine.test("createDirectory()", isDir(file.createDirectory(dirname)));
1662 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1663 function on_resolve1_success(file) {
1664 var dir = file.resolve(dirname);
1665 TestEngine.test("resolve()", isDir(dir));
1667 function on_deleteDirectory_error(err) {
1668 TestEngine.test("Call deleteDirectory() on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1669 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1670 function on_resolve2_success(file) {
1671 var dir = file.resolve(dirname);
1672 TestEngine.test("resolve()", isDir(dir));
1673 deleteDirectory(file, dir);
1675 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1676 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1678 function on_deleteDirectory_success() {
1679 TestEngine.test("Call deleteDirectory() on read-only node. [SECURITY_ERR]", false);
1681 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
1682 file.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
1684 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1685 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1687 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1688 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1691 // WAC-FILESYSTEM-074: Call moveTo() on node resolved in read-only mode.
1692 function test_file_moveTo_error_074() {
1693 var src_filename = getFileName();
1694 var dst_filename = getFileName();
1695 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1696 function on_resolve_success(file) {
1697 var f = file.createFile(src_filename);
1698 TestEngine.test("createFile()", isFile(f));
1700 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1701 function on_resolve1_success(file) {
1702 var f = file.resolve(src_filename);
1703 TestEngine.test("resolve()", isFile(f));
1705 function on_moveTo_error(err) {
1706 TestEngine.test("Call moveTo() on read-only mode. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1707 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1708 function on_resolve2_success(file) {
1709 var f = file.resolve(src_filename);
1710 TestEngine.test("resolve()", isFile(f));
1711 deleteFile(file, f);
1713 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1714 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1716 function on_moveTo_success(file1) {
1717 TestEngine.test("Call moveTo() on read-only mode. [SECURITY_ERR]", false);
1718 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1719 function on_resolve2_success(file) {
1720 var f = file.resolve(dst_filename);
1721 TestEngine.test("resolve()", isFile(f));
1722 deleteFile(file, f);
1724 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1725 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1727 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
1728 file.moveTo(cb.successCallback, cb.errorCallback, f.fullPath, file.fullPath + '/' + dst_filename, true);
1730 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1731 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1733 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1734 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1737 // WAC-FILESYSTEM-075: Call openStream() in write-only mode on node resolved in read-only mode.
1738 function test_file_openStream_error_075() {
1739 var filename = getFileName();
1740 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1741 function on_resolve_success(file) {
1742 var f = file.createFile(filename);
1743 TestEngine.test("createFile()", isFile(f));
1745 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1746 function on_resolve1_success(r_file) {
1747 var f = r_file.resolve(filename);
1748 TestEngine.test("resolve()", isFile(f));
1750 function on_openStream_success(stream) {
1751 TestEngine.test("Call openStream() in write-only mode on read-only node. [SECURITY_ERR]", false);
1753 deleteFile(file, f);
1755 function on_openStream_error(err) {
1756 TestEngine.test("Call openStream() in write-only mode on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1757 deleteFile(file, f);
1759 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1760 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1762 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1763 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1765 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1766 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1769 // WAC-FILESYSTEM-076: Call readAsText() on a file.
1770 function test_file_readAsText_076() {
1771 var test_content = "Ala ma kota";
1772 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1773 function on_resolve_success(file) {
1774 var f = file.createFile(getFileName());
1775 TestEngine.test("createFile()", isFile(f));
1777 function on_openStream_success(stream) {
1778 TestEngine.test("openStream()", isFilestream(stream));
1779 stream.write(test_content);
1781 function on_readAsText_error(err) {
1782 TestEngine.test("readAsText() [" + err.code + "]", false);
1783 deleteFile(file, f);
1785 function on_readAsText_success(str) {
1786 TestEngine.test("readAsText()", (str === test_content));
1787 deleteFile(file, f);
1789 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1790 f.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1792 function on_openStream_error(err) {
1793 TestEngine.test("openStream() [" + err.code + "]", false);
1794 deleteFile(file, f);
1796 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1797 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1799 resolve_root(on_resolve_success, on_resolve_error);
1802 // WAC-FILESYSTEM-077: Call readAsText() on a directory.
1803 function test_file_readAsText_error_077() {
1804 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1805 function on_resolve_success(file) {
1806 var dir = file.createDirectory(getDirName());
1807 TestEngine.test("createDirectory()", isDir(dir));
1809 function on_readAsText_error(err) {
1810 TestEngine.test("Call readAsText() on a directory [IO_ERR]", (err.code == IO_ERR));
1812 function on_readAsText_success(str) {
1813 TestEngine.test("Call readAsText() on a directory [IO_ERR]", false);
1815 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1816 dir.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1817 deleteDirectory(file, dir);
1819 resolve_root(on_resolve_success, on_resolve_error);
1822 // WAC-FILESYSTEM-078: Call readAsText() on a deleted file.
1823 function test_file_readAsText_error_078() {
1824 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1825 function on_resolve_success(root) {
1826 var file = root.createFile(getFileName());
1827 TestEngine.test("createFile()", isFile(file));
1829 function on_deleteFile_error(err) { TestEngine.test("deleteFile() [" + err.code + "]", false); }
1830 function on_deleteFile_success() {
1831 function on_readAsText_error(err) {
1832 TestEngine.test("Call readAsText() on a deleted file [IO_ERR]", (err.code == IO_ERR));
1834 function on_readAsText_success(str) {
1835 TestEngine.test("Call readAsText() on a deleted file [IO_ERR]", false);
1837 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1838 file.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1840 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
1841 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
1843 resolve_root(on_resolve_success, on_resolve_error);
1846 // WAC-FILESYSTEM-079: Call toUri() on file located in root folder.
1847 function test_file_toUri_079() {
1848 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1849 function on_resolve_success(file) {
1850 var f = file.createFile(getFileName());
1851 TestEngine.test("createFile()", isFile(f));
1852 var uri = f.toURI();
1853 TestEngine.test("Call toUri() returns non empty string", isString(uri) && uri.length > 0);
1854 TestEngine.log("created uri: " + uri);
1855 deleteFile(file, f);
1857 resolve_root(on_resolve_success, on_resolve_error);
1860 // WAC-FILESYSTEM-080: Resolve a file with mode set to null.
1861 function test_filesystem_resolve_080() {
1862 function on_resolve_error(err) {
1863 TestEngine.test("resolve()", false);
1865 function on_resolve_success(file) {
1866 TestEngine.test("resolve()", true);
1868 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1869 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, null);
1872 // WAC-FILESYSTEM-081: List files with null passed as filter.
1873 function test_file_listFiles_081() {
1874 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1875 function on_resolve_success(file) {
1876 TestEngine.test("resolve()", isFileObject(file));
1877 function on_listFiles_error(err) {
1878 TestEngine.test("listFiles() [" + err.code + "]", false);
1880 function on_listFiles_success(files) {
1881 TestEngine.test("listFiles()", isArray(files));
1883 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1884 file.listFiles(cb.successCallback, cb.errorCallback, null);
1886 resolve_root(on_resolve_success, on_resolve_error);
1889 // WAC-FILESYSTEM-082: List files with undefined passed as filter.
1890 function test_file_listFiles_082() {
1891 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1892 function on_resolve_success(file) {
1893 TestEngine.test("resolve()", isFileObject(file));
1894 function on_listFiles_error(err) {
1895 TestEngine.test("listFiles() [" + err.code + "]", false);
1897 function on_listFiles_success(files) {
1898 TestEngine.test("listFiles()", isArray(files));
1900 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1901 file.listFiles(cb.successCallback, cb.errorCallback, undefined);
1903 resolve_root(on_resolve_success, on_resolve_error);
1906 // WAC-FILESYSTEM-083
1907 // Parameters: filter = 1, others = valid
1908 // Result: Test passes.
1909 function test_file_listFiles_error_083() {
1910 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1911 function on_resolve_success(file) {
1912 TestEngine.test("resolve()", isFileObject(file));
1914 function on_listFiles_error(err) {
1915 TestEngine.test("listFiles()", false);
1917 function on_listFiles_success(files) {
1918 TestEngine.test("listFiles()", isArray(files));
1920 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1921 file.listFiles(cb.successCallback, cb.errorCallback, 1);
1923 resolve_root(on_resolve_success, on_resolve_error);
1926 // WAC-FILESYSTEM-084: List files with null passed as success callback.
1927 function test_file_listFiles_error_084() {
1928 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1929 function on_resolve_success(file) {
1930 TestEngine.test("resolve()", isFileObject(file));
1931 function on_listFiles_error(err) {
1932 TestEngine.test("listFiles() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
1934 function on_listFiles_success(files) {
1935 TestEngine.test("listFiles()", false);
1937 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1938 file.listFiles(null, cb.errorCallback);
1940 resolve_root(on_resolve_success, on_resolve_error);
1943 // WAC-FILESYSTEM-085
1944 // Parameters: successCallback = undefined, others = valid
1945 // Result: INVALID_VALUES_ERR thrown via error callback.
1946 function test_file_listFiles_error_085() {
1947 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1948 function on_resolve_success(file) {
1949 TestEngine.test("resolve()", isFileObject(file));
1950 function on_listFiles_error(err) {
1951 TestEngine.test("listFiles()", (err.code == INVALID_VALUES_ERR));
1953 var cb = TestEngine.registerCallback("listFiles", undefined, on_listFiles_error);
1954 file.listFiles(cb.successCallback, cb.errorCallback);
1956 resolve_root(on_resolve_success, on_resolve_error);
1959 // WAC-FILESYSTEM-086: List files with both callbacks set to null. Nothing should happen.
1960 function test_file_listFiles_error_086() {
1961 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1962 function on_resolve_success(file) {
1963 TestEngine.test("resolve()", isFileObject(file));
1964 function on_listFiles_error(err) {
1965 TestEngine.test("listFiles() [" + err.code + "]", false);
1967 function on_listFiles_success(files) {
1968 TestEngine.test("listFiles()", false);
1970 // Pass callbacks directly to prevent "widget run timeout".
1971 file.listFiles(null, null);
1973 resolve_root(on_resolve_success, on_resolve_error);
1976 // WAC-FILESYSTEM-087: Test optionality of the last parameter.
1977 function test_file_open_087() {
1978 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1979 function on_resolve_success(file) {
1980 TestEngine.test("resolve()", isFileObject(file));
1981 var file2 = file.createFile(getFileName());
1982 TestEngine.test("createFile()", isFile(file2));
1983 function on_openStream_success(stream) {
1984 TestEngine.test("openStream()", isFilestream(stream));
1986 deleteFile(file, file2);
1988 function on_openStream_error(err) {
1989 TestEngine.test("openStream() [" + err.code + "]", false);
1991 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1992 var stream = file2.openStream(cb.successCallback, cb.errorCallback, "r");
1994 resolve_root(on_resolve_success, on_resolve_error);
1997 // WAC-FILESYSTEM-088: Test success callback set to null.
1998 function test_file_open_error_088() {
1999 function on_resolve_success(root) {
2000 function on_openStream_error(err) {
2001 TestEngine.test("openStream() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2002 deleteFile(root, file);
2004 var file = createFileForParent(root);
2005 // Pass callbacks directly to prevent "widget run timeout".
2006 var cb = TestEngine.registerCallback("openStream", null, on_openStream_error);
2007 var stream = file.openStream(null, cb.errorCallback, "r");
2009 resolve_root_location(on_resolve_success);
2012 // WAC-FILESYSTEM-089
2013 // Parameters: successCallback = undefined, others = valid
2014 // Result: INVALID_VALUES_ERR thrown via error callback.
2015 function test_file_open_error_089() {
2016 function on_resolve_success(root) {
2017 var file = createFileForParent(root);
2019 function on_openStream_error(err) {
2020 TestEngine.test("openStream()", (err.code == INVALID_VALUES_ERR));
2021 deleteFile(root, file);
2024 var cb = TestEngine.registerCallback("openStream", undefined, on_openStream_error);
2025 var stream = file.openStream(cb.successCallback, cb.errorCallback, "r");
2027 resolve_root_location(on_resolve_success);
2030 // WAC-FILESYSTEM-090: Test passing invalid mode with error callback set to null.
2031 function test_file_open_error_090() {
2032 function on_resolve_success(root) {
2033 function on_openStream_success(fs) {
2034 TestEngine.test("Calling openStream() with invalid mode.", false);
2036 deleteFile(root, file);
2038 var file = createFileForParent(root);
2039 testNoExceptionWithMessage("openStream()", function() {
2040 // Pass callbacks directly to prevent "widget run timeout".
2041 file.openStream(on_openStream_success, null, "x", "UTF-8");
2043 deleteFile(root, file);
2045 resolve_root_location(on_resolve_success);
2048 // WAC-FILESYSTEM-091: Call readAsText() w/o specifing encoding parameter.
2049 function test_file_readAsText_091() {
2050 var test_content = "Ala ma kota";
2051 function on_resolve_success(root) {
2052 var file = createFileForParent(root)
2054 function on_openStream_success(stream) {
2055 TestEngine.test("openStream()", isFilestream(stream));
2056 stream.write(test_content);
2059 function on_readAsText_error(err) {
2060 TestEngine.test("readAsText() [" + err.code + "]", false);
2061 deleteFile(root, file);
2063 function on_readAsText_success(str) {
2064 TestEngine.test("readAsText()", (str === test_content));
2065 deleteFile(root, file);
2067 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2068 file.readAsText(cb.successCallback, cb.errorCallback);
2070 function on_openStream_error(err) {
2071 TestEngine.test("openStream() [" + err.code + "]", false);
2072 deleteFile(root, file);
2074 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2075 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2077 resolve_root_location(on_resolve_success);
2080 // WAC-FILESYSTEM-092: Call readAsText() with encoding parameter set to null.
2081 function test_file_readAsText_092() {
2082 var test_content = "Ala ma kota";
2083 function on_resolve_success(root) {
2084 var file = createFileForParent(root)
2086 function on_openStream_success(stream) {
2087 TestEngine.test("openStream()", isFilestream(stream));
2088 stream.write(test_content);
2091 function on_readAsText_error(err) {
2092 TestEngine.test("readAsText() [" + err.code + "]", false);
2093 deleteFile(root, file);
2095 function on_readAsText_success(str) {
2096 TestEngine.test("readAsText()", (str === test_content));
2097 deleteFile(root, file);
2099 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2100 file.readAsText(cb.successCallback, cb.errorCallback, null);
2102 function on_openStream_error(err) {
2103 TestEngine.test("openStream() [" + err.code + "]", false);
2104 deleteFile(root, file);
2106 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2107 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2109 resolve_root_location(on_resolve_success);
2112 // WAC-FILESYSTEM-093: Call readAsText() with error callback set to null.
2113 function test_file_readAsText_093() {
2114 var test_content = "Ala ma kota";
2115 function on_resolve_success(root) {
2116 var file = createFileForParent(root)
2118 function on_openStream_success(stream) {
2119 TestEngine.test("openStream()", isFilestream(stream));
2120 stream.write(test_content);
2123 function on_readAsText_success(str) {
2124 TestEngine.test("readAsText()", (str === test_content));
2125 deleteFile(root, file);
2127 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, null);
2128 file.readAsText(cb.successCallback, null);
2130 function on_openStream_error(err) {
2131 TestEngine.test("openStream() [" + err.code + "]", false);
2132 deleteFile(root, file);
2134 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2135 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2137 resolve_root_location(on_resolve_success);
2140 // WAC-FILESYSTEM-094: Call readAsText() w/o specifing error callback.
2141 function test_file_readAsText_094() {
2142 var test_content = "Ala ma kota";
2143 function on_resolve_success(root) {
2144 var file = createFileForParent(root)
2146 function on_openStream_success(stream) {
2147 TestEngine.test("openStream()", isFilestream(stream));
2148 stream.write(test_content);
2151 function on_readAsText_success(str) {
2152 TestEngine.test("readAsText()", (str === test_content));
2153 deleteFile(root, file);
2155 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, null);
2156 file.readAsText(cb.successCallback);
2158 function on_openStream_error(err) {
2159 TestEngine.test("openStream() [" + err.code + "]", false);
2160 deleteFile(root, file);
2162 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2163 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2165 resolve_root_location(on_resolve_success);
2168 // WAC-FILESYSTEM-095: Call readAsText() with success callback set to null.
2169 function test_file_readAsText_error_095() {
2170 var test_content = "Ala ma kota";
2171 function on_resolve_success(root) {
2172 var file = createFileForParent(root)
2174 function on_openStream_success(stream) {
2175 TestEngine.test("openStream()", isFilestream(stream));
2176 stream.write(test_content);
2179 function on_readAsText_error(err) {
2180 TestEngine.test("readAsText() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2181 deleteFile(root, file);
2183 var cb = TestEngine.registerCallback("readAsText", null, on_readAsText_error);
2184 file.readAsText(null, cb.errorCallback);
2186 function on_openStream_error(err) {
2187 TestEngine.test("openStream() [" + err.code + "]", false);
2188 deleteFile(root, file);
2190 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2191 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2193 resolve_root_location(on_resolve_success);
2196 // WAC-FILESYSTEM-096: Call readAsText() with both callbacks set to null.
2197 function test_file_readAsText_error_096() {
2198 var test_content = "Ala ma kota";
2199 function on_resolve_success(root) {
2200 var file = createFileForParent(root)
2202 function on_openStream_success(stream) {
2203 TestEngine.test("openStream()", isFilestream(stream));
2204 stream.write(test_content);
2207 testNoExceptionWithMessage("readAsText()", function() {
2208 file.readAsText(null, null);
2210 deleteFile(root, file);
2212 function on_openStream_error(err) {
2213 TestEngine.test("openStream() [" + err.code + "]", false);
2214 deleteFile(root, file);
2216 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2217 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2219 resolve_root_location(on_resolve_success);
2222 // WAC-FILESYSTEM-097
2223 // Parameters: successCallback = undefined, others = valid
2224 // Result: INVALID_VALUES_ERR thrown via error callback.
2225 function test_file_readAsText_error_097() {
2226 var test_content = "Ala ma kota";
2227 function on_resolve_success(root) {
2228 var file = createFileForParent(root)
2230 function on_openStream_success(stream) {
2231 TestEngine.test("openStream()", isFilestream(stream));
2232 stream.write(test_content);
2235 function on_readAsText_error(err) {
2236 TestEngine.test("readAsText()", (err.code == INVALID_VALUES_ERR));
2237 deleteFile(root, file);
2240 var cb = TestEngine.registerCallback("readAsText", undefined, on_readAsText_error);
2241 file.readAsText(cb.successCallback, cb.errorCallback, "r");
2243 function on_openStream_error(err) {
2244 TestEngine.test("openStream() [" + err.code + "]", false);
2245 deleteFile(root, file);
2247 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2248 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2250 resolve_root_location(on_resolve_success);
2253 // WAC-FILESYSTEM-098: Call readAsText() with invalid encoding parameter.
2254 function test_file_readAsText_error_098() {
2255 var test_content = "Ala ma kota";
2256 function on_resolve_success(root) {
2257 var file = createFileForParent(root)
2259 function on_openStream_success(stream) {
2260 TestEngine.test("openStream()", isFilestream(stream));
2261 stream.write(test_content);
2264 function on_readAsText_error(err) {
2265 TestEngine.test("readAsText() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2266 deleteFile(root, file);
2268 function on_readAsText_success(str) {
2269 TestEngine.test("readAsText()", false);
2270 deleteFile(root, file);
2272 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2273 file.readAsText(cb.successCallback, cb.errorCallback, "INVALID");
2275 function on_openStream_error(err) {
2276 TestEngine.test("openStream() [" + err.code + "]", false);
2277 deleteFile(root, file);
2279 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2280 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2282 resolve_root_location(on_resolve_success);
2285 // WAC-FILESYSTEM-099: Call deleteDirectory() with error callback set to null.
2286 function test_file_deleteDirectory_099() {
2287 function on_resolve_success(root) {
2288 var dir = createDirForParent(root);
2289 function on_deleteDirectory_success() {
2290 TestEngine.test("deleteDirectory()", true);
2292 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, null);
2293 root.deleteDirectory(cb.successCallback, null, dir.fullPath, true);
2295 resolve_root_location(on_resolve_success);
2298 // WAC-FILESYSTEM-100: Call deleteDirectory() with error callback set to null
2299 // and directory set to invalid value.
2300 function test_file_deleteDirectory_error_100() {
2301 function on_resolve_success(root) {
2302 function on_deleteDirectory_success() {
2303 TestEngine.test("deleteDirectory()", false);
2305 testNoExceptionWithMessage("deleteDirectory()", function() {
2306 // Pass callbacks directly to prevent "widget run timeout".
2307 root.deleteDirectory(on_deleteDirectory_success, null, "../", true);
2310 resolve_root_location(on_resolve_success);
2313 // WAC-FILESYSTEM-101: Call deleteDirectory() with success callback set to null.
2314 function test_file_deleteDirectory_error_101() {
2315 function on_resolve_success(root) {
2316 var dir = createDirForParent(root);
2317 function on_deleteDirectory_error(err) {
2318 TestEngine.test("deleteDirectory() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2319 deleteDirectory(root, dir);
2321 var cb = TestEngine.registerCallback("deleteDirectory", null, on_deleteDirectory_error);
2322 root.deleteDirectory(null, cb.errorCallback, dir.fullPath, true);
2324 resolve_root_location(on_resolve_success);
2327 // WAC-FILESYSTEM-102
2328 // Parameters: successCallback = undefined, others = valid
2329 // Result: INVALID_VALUES_ERR thrown via error callback.
2330 function test_file_deleteDirectory_error_102() {
2331 function on_resolve_success(root) {
2332 var dir = createDirForParent(root);
2333 function on_deleteDirectory_error(err) {
2334 TestEngine.test("deleteDirectory()", (err.code == INVALID_VALUES_ERR));
2335 deleteDirectory(root, dir);
2337 var cb = TestEngine.registerCallback("deleteDirectory", undefined, on_deleteDirectory_error);
2338 root.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
2340 resolve_root_location(on_resolve_success);
2343 // WAC-FILESYSTEM-103
2344 // Parameters: directory = undefined, others = valid
2345 // Result: INVALID_VALUES_ERR thrown via error callback.
2346 function test_file_deleteDirectory_error_103() {
2347 function on_resolve_success(root) {
2348 var dir = createDirForParent(root);
2349 function on_deleteDirectory_error(err) {
2350 TestEngine.test("deleteDirectory()", (err.code == INVALID_VALUES_ERR));
2351 deleteDirectory(root, dir);
2353 function on_deleteDirectory_success() {
2354 TestEngine.test("deleteDirectory()", false);
2355 deleteDirectory(root, dir);
2357 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2358 root.deleteDirectory(cb.successCallback, cb.errorCallback, undefined, true);
2360 resolve_root_location(on_resolve_success);
2363 // WAC-FILESYSTEM-104
2364 // Parameters: recursive = undefined, others = valid
2365 // Result: Test passes.
2366 function test_file_deleteDirectory_error_104() {
2367 function on_resolve_success(root) {
2368 var dir = createDirForParent(root);
2369 function on_deleteDirectory_error(err) {
2370 TestEngine.test("deleteDirectory()", false);
2371 deleteDirectory(root, dir);
2373 function on_deleteDirectory_success() {
2374 TestEngine.test("deleteDirectory()", true);
2377 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2378 root.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, undefined);
2380 resolve_root_location(on_resolve_success);
2383 // WAC-FILESYSTEM-105: Call deleteDirectory() with directory parameter pointing to a file.
2384 function test_file_deleteDirectory_error_105() {
2385 function on_resolve_success(root) {
2386 var file = createFileForParent(root);
2387 function on_deleteDirectory_error(err) {
2388 TestEngine.test("deleteDirectory() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2389 deleteFile(root, file);
2391 function on_deleteDirectory_success() {
2392 TestEngine.test("deleteDirectory()", false);
2393 deleteFile(root, file);
2395 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2396 root.deleteDirectory(cb.successCallback, cb.errorCallback, file.fullPath, true);
2398 resolve_root_location(on_resolve_success);
2401 // WAC-FILESYSTEM-106: Call deleteFile() with error callback set to null.
2402 function test_file_deleteFile_106() {
2403 function on_resolve_success(root) {
2404 var file = createFileForParent(root);
2405 function on_deleteFile_success() {
2406 TestEngine.test("deleteFile()", true);
2408 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, null);
2409 root.deleteFile(cb.successCallback, null, file.fullPath);
2411 resolve_root_location(on_resolve_success);
2414 // WAC-FILESYSTEM-107: Call deleteFile() with error callback set to null
2415 // and file set to invalid value.
2416 function test_file_deleteFile_error_107() {
2417 function on_resolve_success(root) {
2418 function on_deleteFile_success() {
2419 TestEngine.test("deleteFile()", false);
2421 testNoExceptionWithMessage("deleteFile()", function() {
2422 // Pass callbacks directly to prevent "widget run timeout".
2423 root.deleteFile(on_deleteFile_success, null, "../");
2426 resolve_root_location(on_resolve_success);
2429 // WAC-FILESYSTEM-108: Call deleteFile() with success callback set to null.
2430 function test_file_deleteFile_error_108() {
2431 function on_resolve_success(root) {
2432 var file = createFileForParent(root);
2433 function on_deleteFile_error(err) {
2434 TestEngine.test("deleteFile() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2435 deleteFile(root, file);
2437 var cb = TestEngine.registerCallback("deleteFile", null, on_deleteFile_error);
2438 root.deleteFile(null, cb.errorCallback, file.fullPath);
2440 resolve_root_location(on_resolve_success);
2443 // WAC-FILESYSTEM-109
2444 // Parameters: successCallback = undefined, others valid
2445 // Result: INVALID_VALUES_ERR thrown via error callback.
2446 function test_file_deleteFile_error_109() {
2447 function on_resolve_success(root) {
2448 var file = createFileForParent(root);
2449 function on_deleteFile_error(err) {
2450 TestEngine.test("deleteFile()", (err.code == INVALID_VALUES_ERR));
2451 deleteFile(root, file);
2453 var cb = TestEngine.registerCallback("deleteFile", undefined, on_deleteFile_error);
2454 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
2456 resolve_root_location(on_resolve_success);
2459 // WAC-FILESYSTEM-110
2460 // Parameters: file = undefined, others = valid
2461 // Result: INVALID_VALUES_ERR thrown via error callback.
2462 function test_file_deleteFile_error_110() {
2463 function on_resolve_success(root) {
2464 function on_deleteFile_error(err) {
2465 TestEngine.test("deleteFile()", (err.code == INVALID_VALUES_ERR));
2467 function on_deleteFile_success() {
2468 TestEngine.test("deleteFile()", false);
2470 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
2471 root.deleteFile(cb.successCallback, cb.errorCallback, undefined);
2473 resolve_root_location(on_resolve_success);
2476 // WAC-FILESYSTEM-111
2477 // Parameters: errorCallback = undefined, others = valid
2478 // Result: Test passes.
2479 function test_file_deleteFile_error_111() {
2480 function on_resolve_success(root) {
2481 var file = createFileForParent(root);
2482 function on_deleteFile_success() {
2483 TestEngine.test("deleteFile()", true);
2485 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, undefined);
2486 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
2488 resolve_root_location(on_resolve_success);
2491 // WAC-FILESYSTEM-112
2492 // Parameters: mode = undefined, others = valid
2493 // Result: Test passes.
2494 function test_filesystem_resolve_112() {
2495 function on_resolve_error(err) {
2496 TestEngine.test("resolve() [" + err.code + "]", false);
2498 function on_resolve_success(root) {
2499 TestEngine.test("resolve()", true);
2501 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
2502 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, undefined);
2505 // WAC-FILESYSTEM-113
2506 // Parameters: encoding = undefined, others = valid
2507 // Result: Test passes.
2508 function test_file_readAsText_113() {
2509 var test_content = "Ala ma kota";
2510 function on_resolve_success(root) {
2511 var file = createFileForParent(root)
2513 function on_openStream_success(stream) {
2514 TestEngine.test("openStream()", isFilestream(stream));
2515 stream.write(test_content);
2518 function on_readAsText_error(err) {
2519 TestEngine.test("readAsText() [" + err.code + "]", false);
2520 deleteFile(root, file);
2522 function on_readAsText_success(str) {
2523 TestEngine.test("readAsText()", (str === test_content));
2524 deleteFile(root, file);
2526 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2527 file.readAsText(cb.successCallback, cb.errorCallback, undefined);
2529 function on_openStream_error(err) {
2530 TestEngine.test("openStream() [" + err.code + "]", false);
2531 deleteFile(root, file);
2533 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2534 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2536 resolve_root_location(on_resolve_success);
2539 // WAC-FILESYSTEM-114
2540 // Parameters: encoding = undefined, others = valid
2541 // Result: INVALID_VALUES_ERR thrown via error callback.
2542 function test_file_open_114() {
2543 function on_resolve_success(root) {
2544 var file = createFileForParent(root);
2545 function on_openStream_error(err) {
2546 TestEngine.test("openStream()", (err.code == INVALID_VALUES_ERR));
2547 deleteFile(root, file);
2549 function on_openStream_success(stream) {
2550 TestEngine.test("openStream()", false);
2552 deleteFile(root, file);
2554 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2555 var stream = file.openStream(cb.successCallback, cb.errorCallback, "r", undefined);
2557 resolve_root_location(on_resolve_success);
2560 // WAC-FILESYSTEM-115
2561 // Parameters: originFilePath = (empty) directory, overwrite = false
2562 // Result: Test passes.
2563 function test_file_copyTo_115() {
2564 function on_resolve_success(root) {
2565 var dir = createDirForParent(root);
2566 function on_copyTo_error(err) {
2567 TestEngine.test("copyTo() [" + err.code + "]", false);
2568 deleteDirectory(root, dir);
2570 function on_copyTo_success(copy) {
2571 TestEngine.test("copyTo()", isDir(copy));
2572 deleteDirectory(root, copy);
2573 deleteDirectory(root, dir);
2575 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2576 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, root.fullPath + "/" + getDirName(), false);
2578 resolve_root_location(on_resolve_success);
2581 // WAC-FILESYSTEM-116
2582 // Parameters: originFilePath = (non-empty) directory, overwrite = false
2583 // Result: Test passes.
2584 function test_file_copyTo_116() {
2585 function on_resolve_success(root) {
2586 var dir = createDirForParent(root);
2587 var file = createFileForParent(dir);
2588 function on_copyTo_error(err) {
2589 TestEngine.test("copyTo() [" + err.code + "]", false);
2590 deleteDirectory(root, dir);
2592 function on_copyTo_success(copy) {
2593 TestEngine.test("copyTo()", isDir(copy));
2594 var child = copy.resolve(file.name);
2595 TestEngine.test("copyTo()", isFile(child));
2596 deleteDirectory(root, copy);
2597 deleteDirectory(root, dir);
2599 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2600 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, root.fullPath + "/" + getDirName(), false);
2602 resolve_root_location(on_resolve_success);
2605 // WAC-FILESYSTEM-117
2606 // Parameters: originFilePath = undefined, other params = valid.
2607 // Result: INVALID_VALUES_ERR thrown via errorCallback.
2608 function test_file_copyTo_error_117() {
2609 function on_resolve_success(root) {
2610 function on_copyTo_error(err) {
2611 TestEngine.test("copyTo()", (err.code == INVALID_VALUES_ERR));
2613 function on_copyTo_success(copy) {
2614 TestEngine.test("copyTo()", false);
2615 deleteDirectory(root, copy);
2617 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2618 root.copyTo(cb.successCallback, cb.errorCallback, undefined, root.fullPath + "/" + getDirName(), false);
2620 resolve_root_location(on_resolve_success);
2623 // WAC-FILESYSTEM-118
2624 // Parameters: originFilePath = invalid path, overwrite = false
2625 // Result: INVALID_VALUES_ERR returned by error callback.
2626 function test_file_copyTo_error_118() {
2627 function on_resolve_success(root) {
2628 function on_copyTo_error(err) {
2629 TestEngine.test("copyTo() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2631 function on_copyTo_success(copy) {
2632 TestEngine.test("copyTo()", false);
2633 deleteDirectory(root, copy);
2635 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2636 root.copyTo(cb.successCallback, cb.errorCallback, "../", root.fullPath + "/" + getDirName(), false);
2638 resolve_root_location(on_resolve_success);
2641 // WAC-FILESYSTEM-119
2642 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = true
2643 // Result: Test passes (replacing destination directory with a origin file).
2644 function test_file_copyTo_119() {
2645 function on_resolve_success(root) {
2646 var file = createFileForParent(root);
2647 var dir = createDirForParent(root);
2648 function on_copyTo_error(err) {
2649 TestEngine.test("copyTo() [" + err.code + "]", false);
2650 deleteDirectory(root, dir);
2651 deleteFile(root, file);
2653 function on_copyTo_success(copy) {
2654 TestEngine.test("copyTo()", (copy.fullPath == dir.fullPath) && isFile(copy));
2655 deleteFile(root, copy);
2656 deleteFile(root, file);
2658 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2659 root.copyTo(cb.successCallback, cb.errorCallback, file.fullPath, dir.fullPath, true);
2661 resolve_root_location(on_resolve_success);
2664 // WAC-FILESYSTEM-120
2665 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = false
2666 // Result: IO_ERR passed via error callback.
2667 function test_file_copyTo_error_120() {
2668 function on_resolve_success(root) {
2669 var file = createFileForParent(root);
2670 var dir = createDirForParent(root);
2671 function on_copyTo_error(err) {
2672 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2673 deleteDirectory(root, dir);
2674 deleteFile(root, file);
2676 function on_copyTo_success(copy) {
2677 TestEngine.test("copyTo()", false);
2678 deleteFile(root, copy);
2679 deleteFile(root, file);
2681 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2682 root.copyTo(cb.successCallback, cb.errorCallback, file.fullPath, dir.fullPath, false);
2684 resolve_root_location(on_resolve_success);
2687 // WAC-FILESYSTEM-121
2688 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = true
2689 // Result: Test passes (replacing destination file with a origin directory).
2690 function test_file_copyTo_121() {
2691 function on_resolve_success(root) {
2692 var file = createFileForParent(root);
2693 var dir = createDirForParent(root);
2694 var child = createFileForParent(dir);
2695 function on_copyTo_error(err) {
2696 TestEngine.test("copyTo() [" + err.code + "]", false);
2697 deleteDirectory(root, dir);
2698 deleteFile(root, file);
2700 function on_copyTo_success(copy) {
2701 TestEngine.test("copyTo()", (copy.fullPath == file.fullPath) && isDir(copy));
2702 TestEngine.test("resolve()", isFile(copy.resolve(child.name)));
2703 deleteDirectory(root, copy);
2704 deleteDirectory(root, dir);
2706 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2707 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, file.fullPath, true);
2709 resolve_root_location(on_resolve_success);
2712 // WAC-FILESYSTEM-122
2713 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = false
2714 // Result: IO_ERR passed via error callback.
2715 function test_file_copyTo_error_122() {
2716 function on_resolve_success(root) {
2717 var file = createFileForParent(root);
2718 var dir = createDirForParent(root);
2719 function on_copyTo_error(err) {
2720 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2721 deleteDirectory(root, dir);
2722 deleteFile(root, file);
2724 function on_copyTo_success(copy) {
2725 TestEngine.test("copyTo()", false);
2726 deleteDirectory(root, copy);
2727 deleteDirectory(root, dir);
2729 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2730 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, file.fullPath, false);
2732 resolve_root_location(on_resolve_success);
2735 // WAC-FILESYSTEM-123
2736 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = true
2737 // Result: Test passes (replacing destination directory with a origin directory).
2738 function test_file_copyTo_123() {
2739 function on_resolve_success(root) {
2740 var src = createDirForParent(root);
2741 var dest = createDirForParent(root);
2742 var child = createFileForParent(src);
2743 function on_copyTo_error(err) {
2744 TestEngine.test("copyTo() [" + err.code + "]", false);
2745 deleteDirectory(root, src);
2746 deleteDirectory(root, dest);
2748 function on_copyTo_success(copy) {
2749 TestEngine.test("copyTo()", (copy.fullPath == dest.fullPath) && isDir(copy));
2750 TestEngine.test("resolve()", isFile(copy.resolve(child.name)));
2751 deleteDirectory(root, copy);
2752 deleteDirectory(root, src);
2754 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2755 root.copyTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2757 resolve_root_location(on_resolve_success);
2760 // WAC-FILESYSTEM-124
2761 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = false
2762 // Result: IO_ERR passed via error callback.
2763 function test_file_copyTo_error_124() {
2764 function on_resolve_success(root) {
2765 var src = createDirForParent(root);
2766 var dest = createDirForParent(root);
2767 function on_copyTo_error(err) {
2768 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2769 deleteDirectory(root, src);
2770 deleteDirectory(root, dest);
2772 function on_copyTo_success(copy) {
2773 TestEngine.test("copyTo()", false);
2774 deleteDirectory(root, copy);
2775 deleteDirectory(root, src);
2777 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2778 root.copyTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2780 resolve_root_location(on_resolve_success);
2783 // WAC-FILESYSTEM-125
2784 // Parameters: originFilePath = (empty) directory, overwrite = false
2785 // Result: Test passes.
2786 function test_file_moveTo_125() {
2787 function on_resolve_success(root) {
2788 var src = createDirForParent(root);
2789 var dest = root.fullPath + "/" + getDirName();
2790 function on_moveTo_error(err) {
2791 TestEngine.test("moveTo() [" + err.code + "]", false);
2792 deleteDirectory(root, src);
2794 function on_moveTo_success(result) {
2795 TestEngine.test("moveTo()", isDir(result));
2796 TestEngine.testPresetError(
2797 "resolve() [NOT_FOUND_ERR]",
2798 function() { root.resolve(src.name) },
2801 deleteDirectory(root, result);
2803 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2804 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest, false);
2806 resolve_root_location(on_resolve_success);
2809 // WAC-FILESYSTEM-126
2810 // Parameters: originFilePath = (non-empty) directory, overwrite = false
2811 // Result: Test passes.
2812 function test_file_moveTo_126() {
2813 function on_resolve_success(root) {
2814 var src = createDirForParent(root);
2815 var file = createFileForParent(src);
2816 var dest = root.fullPath + "/" + getDirName();
2817 function on_moveTo_error(err) {
2818 TestEngine.test("moveTo() [" + err.code + "]", false);
2819 deleteDirectory(root, src);
2821 function on_moveTo_success(result) {
2822 TestEngine.test("moveTo()", isDir(result));
2823 var child = result.resolve(file.name);
2824 TestEngine.test("resolve()", isFile(child));
2825 TestEngine.testPresetError(
2826 "resolve() [NOT_FOUND_ERR]",
2827 function() { root.resolve(src.name) },
2830 deleteDirectory(root, result);
2832 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2833 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest, false);
2835 resolve_root_location(on_resolve_success);
2838 // WAC-FILESYSTEM-127
2839 // Parameters: originFilePath = undefined, other params = valid.
2840 // Result: INVALID_VALUES_ERR thrown via errorCallback.
2841 function test_file_moveTo_error_127() {
2842 function on_resolve_success(root) {
2843 var dest = root.fullPath + "/" + getDirName();
2844 function on_moveTo_error(err) {
2845 TestEngine.test("moveTo()", (err.code == INVALID_VALUES_ERR));
2847 function on_moveTo_success(result) {
2848 TestEngine.test("moveTo()", false);
2850 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2851 root.moveTo(cb.successCallback, cb.errorCallback, undefined, dest, false);
2853 resolve_root_location(on_resolve_success);
2856 // WAC-FILESYSTEM-128
2857 // Parameters: originFilePath = invalid path, overwrite = false
2858 // Result: INVALID_VALUES_ERR returned by error callback.
2859 function test_file_moveTo_error_128() {
2860 function on_resolve_success(root) {
2862 var dest = root.fullPath + "/" + getDirName();
2863 function on_moveTo_error(err) {
2864 TestEngine.test("moveTo() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2866 function on_moveTo_success(result) {
2867 TestEngine.test("moveTo()", false);
2869 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2870 root.moveTo(cb.successCallback, cb.errorCallback, src, dest, false);
2872 resolve_root_location(on_resolve_success);
2875 // WAC-FILESYSTEM-129
2876 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = true
2877 // Result: IO_ERR passed via error callback.
2878 function test_file_moveTo_129() {
2879 function on_resolve_success(root) {
2880 var src = createFileForParent(root);
2881 var dest = createDirForParent(root);
2882 function on_moveTo_error(err) {
2883 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2884 deleteFile(root, src);
2885 deleteDirectory(root, dest);
2887 function on_moveTo_success(result) {
2888 TestEngine.test("moveTo()", false);
2889 deleteFile(root, result);
2891 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2892 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2894 resolve_root_location(on_resolve_success);
2897 // WAC-FILESYSTEM-130
2898 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = false
2899 // Result: IO_ERR passed via error callback.
2900 function test_file_moveTo_error_130() {
2901 function on_resolve_success(root) {
2902 var src = createFileForParent(root);
2903 var dest = createDirForParent(root);
2904 function on_moveTo_error(err) {
2905 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2906 deleteFile(root, src);
2907 deleteDirectory(root, dest);
2909 function on_moveTo_success(result) {
2910 TestEngine.test("moveTo()", false);
2911 deleteFile(root, result);
2913 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2914 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2916 resolve_root_location(on_resolve_success);
2919 // WAC-FILESYSTEM-131
2920 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = true
2921 // Result: IO_ERR passed via error callback.
2922 function test_file_moveTo_131() {
2923 function on_resolve_success(root) {
2924 var src = createDirForParent(root);
2925 var child = createFileForParent(src);
2926 var dest = createFileForParent(root);
2927 function on_moveTo_error(err) {
2928 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2929 deleteDirectory(root, src);
2930 deleteFile(root, dest);
2932 function on_moveTo_success(result) {
2933 TestEngine.test("moveTo()", false);
2934 deleteFile(root, result);
2936 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2937 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2939 resolve_root_location(on_resolve_success);
2942 // WAC-FILESYSTEM-132
2943 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = false
2944 // Result: IO_ERR passed via error callback.
2945 function test_file_moveTo_error_132() {
2946 function on_resolve_success(root) {
2947 var src = createDirForParent(root);
2948 var child = createFileForParent(src);
2949 var dest = createFileForParent(root);
2950 function on_moveTo_error(err) {
2951 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2952 deleteDirectory(root, src);
2953 deleteFile(root, dest);
2955 function on_moveTo_success(result) {
2956 TestEngine.test("moveTo()", false);
2957 deleteDirectory(root, result);
2959 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2960 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2962 resolve_root_location(on_resolve_success);
2965 // WAC-FILESYSTEM-133
2966 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = true
2967 // Result: Test passes (replacing destination directory with a origin directory).
2968 function test_file_moveTo_133() {
2969 function on_resolve_success(root) {
2970 var src = createDirForParent(root);
2971 var child = createFileForParent(src);
2972 var dest = createDirForParent(root);
2973 function on_moveTo_error(err) {
2974 TestEngine.test("moveTo() [" + err.code + "]", false);
2975 deleteDirectory(root, src);
2976 deleteDirectory(root, dest);
2978 function on_moveTo_success(result) {
2979 TestEngine.test("moveTo()", (result.fullPath == dest.fullPath) && isDir(result));
2980 TestEngine.test("resolve()", isFile(result.resolve(child.name)));
2981 TestEngine.testPresetError(
2982 "resolve() [NOT_FOUND_ERR]",
2983 function() { root.resolve(src.name); },
2986 deleteDirectory(root, result);
2988 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2989 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2991 resolve_root_location(on_resolve_success);
2994 // WAC-FILESYSTEM-134
2995 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = false
2996 // Result: IO_ERR passed via error callback.
2997 function test_file_moveTo_error_134() {
2998 function on_resolve_success(root) {
2999 var src = createDirForParent(root);
3000 var child = createFileForParent(src);
3001 var dest = createDirForParent(root);
3002 function on_moveTo_error(err) {
3003 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
3004 deleteDirectory(root, src);
3005 deleteDirectory(root, dest);
3007 function on_moveTo_success(result) {
3008 TestEngine.test("moveTo()", false);
3009 deleteDirectory(root, result);
3011 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
3012 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
3014 resolve_root_location(on_resolve_success);
3017 // WAC-FILESYSTEM-135
3018 // Parameters: filePath = valid path to an existing file
3019 // Result: Test passes.
3020 function test_file_resolve_135() {
3021 function on_resolve_success(root) {
3022 var file = createFileForParent(root);
3023 var resolved = root.resolve(file.name);
3024 TestEngine.test("resolve()", isFile(resolved) && (file.fullPath == resolved.fullPath));
3025 deleteFile(root, file);
3027 resolve_root_location(on_resolve_success);
3030 // WAC-FILESYSTEM-136
3031 // Parameters: filePath = valid path to non-existing file
3032 // Result: NOT_FOUND_ERR thrown in place.
3033 function test_file_resolve_error_136() {
3034 function on_resolve_success(root) {
3035 var fileNotExist = getFileName();
3036 TestEngine.testPresetError(
3037 "resolve() [NOT_FOUND_ERR]",
3038 function() { root.resolve(fileNotExist); },
3042 resolve_root_location(on_resolve_success);
3045 // WAC-FILESYSTEM-137
3046 // Parameters: filePath = invalid path
3047 // Result: NOT_FOUND_ERR thrown in place.
3048 function test_file_resolve_error_137() {
3049 function on_resolve_success(root) {
3050 var invalidPath = "../";
3051 TestEngine.testPresetError(
3052 "resolve() [INVALID_VALUES_ERR]",
3053 function() { root.resolve(invalidPath); },
3057 resolve_root_location(on_resolve_success);
3060 // WAC-FILESYSTEM-138: Open file in append mode and test append mode.
3061 function test_file_append_behaviour_138() {
3062 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3063 function on_resolve_success(file) {
3064 var file2 = file.createFile(getFileName());
3065 TestEngine.test("createFile()", isFile(file2));
3066 function on_openStream_success(stream) {
3067 function on_openStream_success2(stream) {
3068 function on_openStream_success3(stream) {
3069 var array = stream.readBytes(4);
3070 TestEngine.test("readBytes(4)", array.length === 4);
3071 TestEngine.test("array[0]", array[0] === 1);
3072 TestEngine.test("array[1]", array[1] === 2);
3073 TestEngine.test("array[2]", array[2] === 3);
3074 TestEngine.test("array[3]", array[3] === 4);
3076 deleteFile(file, file2);
3078 TestEngine.test("openStream()", isFilestream(stream));
3079 stream.writeBytes([3, 4]);
3081 //reopen in read mode
3082 var cb = TestEngine.registerCallback("openStream", on_openStream_success3, on_openStream_error);
3083 file2.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
3085 TestEngine.test("openStream()", isFilestream(stream));
3086 stream.writeBytes([1, 2]);
3088 //reopen again in append mode
3089 var cb = TestEngine.registerCallback("openStream", on_openStream_success2, on_openStream_error);
3090 file2.openStream(cb.successCallback, cb.errorCallback, "a", "UTF-8");
3092 function on_openStream_error(err) {
3093 TestEngine.test("openStream() [" + err.code + "]", false);
3095 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
3096 file2.openStream(cb.successCallback, cb.errorCallback, "a", "UTF-8");
3098 resolve_root(on_resolve_success, on_resolve_error);
3101 // WAC-FILESYSTEM-139: Set postion.
3102 function test_file_set_position_139() {
3103 function on_resolve_error(err) {
3104 TestEngine.test("resolve() [" + err.code + "]", false);
3106 function on_resolve_success(file) {
3107 function on_openStream_success(stream) {
3108 function on_openStream_success2(stream) {
3109 TestEngine.test("Correct postion after opening",
3110 stream.position === 0);
3111 var array = stream.readBytes(5);
3112 TestEngine.test("Correct number of bytes read", array.length === 4);
3113 TestEngine.test("Correct values of bytes read", array[0] === 5 &&
3114 array[1] === 6 && array[2] === 7 && array[3] === 8);
3115 stream.position = 2;
3116 array = stream.readBytes(1);
3117 TestEngine.test("Correct values of bytes read at pos 2",
3118 array.length === 1 && array[0] === 7);
3119 stream.position = 1;
3120 array = stream.readBytes(1);
3121 TestEngine.test("Correct values of bytes read at pos 1",
3122 array.length === 1 && array[0] === 6);
3123 stream.position = 0;
3124 array = stream.readBytes(1);
3125 TestEngine.test("Correct values of bytes read at pos 0",
3126 array.length === 1 && array[0] === 5);
3127 stream.position = 3;
3128 array = stream.readBytes(1);
3129 TestEngine.test("Correct values of bytes read at pos 3",
3130 array.length === 1 && array[0] === 8);
3132 deleteFile(file, file2);
3134 TestEngine.test("openStream()", isFilestream(stream));
3135 TestEngine.test("Correct postion after opening",
3136 stream.position === 0);
3137 stream.writeBytes([1, 2, 3, 4]);
3138 TestEngine.test("Correct postion after write ", stream.position === 4);
3139 stream.position = 0;
3140 TestEngine.test("Correct postion after setting postion",
3141 stream.position === 0);
3142 stream.writeBytes([5, 6, 7, 8]);
3144 var cb = TestEngine.registerCallback("openStream",
3145 on_openStream_success2, on_openStream_error);
3146 file2.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
3148 function on_openStream_error(err) {
3149 TestEngine.test("openStream() [" + err.code + "]", false);
3151 var file2 = file.createFile(getFileName());
3152 TestEngine.test("createFile()", isFile(file2));
3153 var cb = TestEngine.registerCallback("openStream",
3154 on_openStream_success, on_openStream_error);
3155 file2.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
3157 resolve_root(on_resolve_success, on_resolve_error);
3160 // WAC2-FILESYSTEM-140: Resolve wgt-package in rw mode.
3161 // Result: UNKNOWN_ERR thrown via error callback.
3162 function test_filesystem_resolve_error_140() {
3163 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", (err.code == UNKNOWN_ERR)); }
3164 function on_resolve_success(file) { TestEngine.test("resolve()", false);}
3165 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3166 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package', 'rw');
3169 // WAC2-FILESYSTEM-141: Resolve wgt-package/config.xml in rw mode.
3170 // Result: UNKNOWN_ERR thrown via error callback.
3171 function test_filesystem_resolve_error_141() {
3172 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", (err.code == UNKNOWN_ERR)); }
3173 function on_resolve_success(file) { TestEngine.test("resolve()", false);}
3174 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3175 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package/config.xml', 'rw');
3178 // WAC2-FILESYSTEM-142: Resolve wgt-package in r mode.
3180 function test_filesystem_resolve_142() {
3181 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3182 function on_resolve_success(file) { TestEngine.test("resolve()", isFileObject(file));}
3183 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3184 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package', 'r');
3187 // WAC2-FILESYSTEM-143: Resolve wgt-package/config.xml in r mode.
3189 function test_filesystem_resolve_143() {
3190 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3191 function on_resolve_success(file) { TestEngine.test("resolve()", isFileObject(file));}
3192 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3193 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package/config.xml', 'r');
3196 //=============================================================================
3197 TestEngine.setTestSuiteName("[WAC2.0][Filesystem]");
3198 //TestEngine.addTest(true, test_filesystem_properties_001, "WAC-FILESYSTEM-001");
3199 //TestEngine.addTest(true, test_filesystem_resolve_002, "WAC-FILESYSTEM-002");
3200 //TestEngine.addTest(true, test_filesystem_resolve_003, "WAC-FILESYSTEM-003");
3201 //TestEngine.addTest(true, test_file_listFiles_004, "WAC-FILESYSTEM-004");
3202 //TestEngine.addTest(true, test_file_open_005, "WAC-FILESYSTEM-005");
3203 //TestEngine.addTest(true, test_file_open_006, "WAC-FILESYSTEM-006");
3204 //TestEngine.addTest(true, test_file_open_007, "WAC-FILESYSTEM-007");
3205 //TestEngine.addTest(true, test_file_open_error_008, "WAC-FILESYSTEM-008");
3206 //TestEngine.addTest(true, test_file_open_error_009, "WAC-FILESYSTEM-009");
3207 //TestEngine.addTest(true, test_file_copyTo_010, "WAC-FILESYSTEM-010");
3208 //TestEngine.addTest(true, test_file_copyTo_error_011, "WAC-FILESYSTEM-011");
3209 //TestEngine.addTest(true, test_file_copyTo_012, "WAC-FILESYSTEM-012");
3210 //TestEngine.addTest(true, test_file_createFile_013, "WAC-FILESYSTEM-013");
3211 //TestEngine.addTest(true, test_file_createFile_error_014, "WAC-FILESYSTEM-014");
3212 //TestEngine.addTest(true, test_file_createFile_error_015, "WAC-FILESYSTEM-015");
3213 //TestEngine.addTest(true, test_file_createFile_error_016, "WAC-FILESYSTEM-016");
3214 //TestEngine.addTest(true, test_file_createFile_error_017, "WAC-FILESYSTEM-017");
3215 //TestEngine.addTest(true, test_file_createDirectory_018, "WAC-FILESYSTEM-018");
3216 //TestEngine.addTest(true, test_file_createDirectory_error_019, "WAC-FILESYSTEM-019");
3217 //TestEngine.addTest(true, test_file_createDirectory_error_020, "WAC-FILESYSTEM-020");
3218 //TestEngine.addTest(true, test_file_createDirectory_error_021, "WAC-FILESYSTEM-021");
3219 //TestEngine.addTest(true, test_file_createDirectory_error_022, "WAC-FILESYSTEM-022");
3220 //TestEngine.addTest(true, test_file_moveTo_023, "WAC-FILESYSTEM-023");
3221 //TestEngine.addTest(true, test_file_moveTo_error_024, "WAC-FILESYSTEM-024");
3222 //TestEngine.addTest(true, test_file_moveTo_025, "WAC-FILESYSTEM-025");
3223 //TestEngine.addTest(true, test_file_deleteFile_026, "WAC-FILESYSTEM-026");
3224 //TestEngine.addTest(true, test_file_deleteFile_error_027, "WAC-FILESYSTEM-027");
3225 //TestEngine.addTest(true, test_file_deleteFile_error_028, "WAC-FILESYSTEM-028");
3226 //TestEngine.addTest(true, test_file_deleteFile_error_029, "WAC-FILESYSTEM-029");
3227 //TestEngine.addTest(true, test_file_deleteFile_error_030, "WAC-FILESYSTEM-030");
3228 //TestEngine.addTest(true, test_file_deleteDirectory_031, "WAC-FILESYSTEM-031");
3229 //TestEngine.addTest(true, test_file_deleteDirectory_error_032, "WAC-FILESYSTEM-032");
3230 //TestEngine.addTest(true, test_file_deleteDirectory_error_033, "WAC-FILESYSTEM-033");
3231 //TestEngine.addTest(true, test_file_deleteDirectory_error_034, "WAC-FILESYSTEM-034");
3232 //TestEngine.addTest(true, test_filestream_write_read_035, "WAC-FILESYSTEM-035");
3233 TestEngine.addTest(true, test_filestream_read_error_036, "WAC-FILESYSTEM-036");
3234 //TestEngine.addTest(true, test_filestream_read_error_037, "WAC-FILESYSTEM-037");
3235 //TestEngine.addTest(true, test_file_open_error_038, "WAC-FILESYSTEM-038");
3236 //TestEngine.addTest(true, test_filestream_read_error_040, "WAC-FILESYSTEM-040");
3237 //TestEngine.addTest(true, test_filestream_write_error_041, "WAC-FILESYSTEM-041");
3238 //TestEngine.addTest(true, test_filestream_write_error_042, "WAC-FILESYSTEM-042");
3239 //TestEngine.addTest(true, test_filestream_write_error_043, "WAC-FILESYSTEM-043");
3240 //TestEngine.addTest(true, test_filestream_write_error_044, "WAC-FILESYSTEM-044");
3241 //TestEngine.addTest(true, test_filestream_read_error_045, "WAC-FILESYSTEM-045");
3242 //TestEngine.addTest(true, test_filestream_read_error_046, "WAC-FILESYSTEM-046");
3243 //TestEngine.addTest(true, test_filestream_writeBytes_readBytes_047, "WAC-FILESYSTEM-047");
3244 //TestEngine.addTest(true, test_filestream_readBytes_error_048, "WAC-FILESYSTEM-048");
3245 //TestEngine.addTest(true, test_filestream_readBytes_error_049, "WAC-FILESYSTEM-049");
3246 //TestEngine.addTest(true, test_filestream_readBytes_error_051, "WAC-FILESYSTEM-051");
3247 //TestEngine.addTest(true, test_filestream_readBytes_error_052, "WAC-FILESYSTEM-052");
3248 //TestEngine.addTest(true, test_filestream_readBytes_error_053, "WAC-FILESYSTEM-053");
3249 //TestEngine.addTest(true, test_filestream_writeBytes_error_054, "WAC-FILESYSTEM-054");
3250 //TestEngine.addTest(true, test_filestream_writeBytes_error_055, "WAC-FILESYSTEM-055");
3251 //TestEngine.addTest(true, test_filestream_writeBytes_error_056, "WAC-FILESYSTEM-056");
3252 //TestEngine.addTest(true, test_filestream_writeBytes_057, "WAC-FILESYSTEM-057");
3253 //TestEngine.addTest(true, test_filestream_writeBase64_readBase64_058, "WAC-FILESYSTEM-058");
3254 //TestEngine.addTest(true, test_filestream_writeBase64_read_059, "WAC-FILESYSTEM-059");
3255 //TestEngine.addTest(true, test_filestream_write_readBase64_060, "WAC-FILESYSTEM-060");
3256 //TestEngine.addTest(true, test_filestream_readBase64_error_061, "WAC-FILESYSTEM-061");
3257 //TestEngine.addTest(true, test_filestream_readBase64_error_062, "WAC-FILESYSTEM-062");
3258 //TestEngine.addTest(true, test_filestream_readBase64_error_064, "WAC-FILESYSTEM-064");
3259 //TestEngine.addTest(true, test_filestream_readBase64_error_065, "WAC-FILESYSTEM-065");
3260 //TestEngine.addTest(true, test_filestream_readBase64_error_066, "WAC-FILESYSTEM-066");
3261 //TestEngine.addTest(true, test_filestream_writeBase64_error_067, "WAC-FILESYSTEM-067");
3262 //TestEngine.addTest(true, test_filestream_writeBase64_error_068, "WAC-FILESYSTEM-068");
3263 //TestEngine.addTest(true, test_filestream_writeBase64_error_069, "WAC-FILESYSTEM-069");
3264 //TestEngine.addTest(true, test_filestream_writeBase64_error_070, "WAC-FILESYSTEM-070");
3265 //TestEngine.addTest(true, test_file_createFile_error_071, "WAC-FILESYSTEM-071");
3266 //TestEngine.addTest(true, test_file_deleteFile_error_072, "WAC-FILESYSTEM-072");
3267 //TestEngine.addTest(true, test_file_deleteDirectory_error_073, "WAC-FILESYSTEM-073");
3268 //TestEngine.addTest(true, test_file_moveTo_error_074, "WAC-FILESYSTEM-074");
3269 //TestEngine.addTest(true, test_file_openStream_error_075, "WAC-FILESYSTEM-075");
3270 //TestEngine.addTest(true, test_file_readAsText_076, "WAC-FILESYSTEM-076");
3271 //TestEngine.addTest(true, test_file_readAsText_error_077, "WAC-FILESYSTEM-077");
3272 //TestEngine.addTest(true, test_file_readAsText_error_078, "WAC-FILESYSTEM-078");
3273 //TestEngine.addTest(true, test_file_toUri_079, "WAC-FILESYSTEM-079");
3274 //TestEngine.addTest(true, test_filesystem_resolve_080, "WAC-FILESYSTEM-080");
3275 //TestEngine.addTest(true, test_file_listFiles_081, "WAC-FILESYSTEM-081");
3276 //TestEngine.addTest(true, test_file_listFiles_082, "WAC-FILESYSTEM-082");
3277 //TestEngine.addTest(true, test_file_listFiles_error_083, "WAC-FILESYSTEM-083");
3278 //TestEngine.addTest(true, test_file_listFiles_error_084, "WAC-FILESYSTEM-084");
3279 //TestEngine.addTest(true, test_file_listFiles_error_085, "WAC-FILESYSTEM-085");
3280 //TestEngine.addTest(true, test_file_listFiles_error_086, "WAC-FILESYSTEM-086");
3281 //TestEngine.addTest(true, test_file_open_087, "WAC-FILESYSTEM-087");
3282 //TestEngine.addTest(true, test_file_open_error_088, "WAC-FILESYSTEM-088");
3283 //TestEngine.addTest(true, test_file_open_error_089, "WAC-FILESYSTEM-089");
3284 //TestEngine.addTest(true, test_file_open_error_090, "WAC-FILESYSTEM-090");
3285 //TestEngine.addTest(true, test_file_readAsText_091, "WAC-FILESYSTEM-091");
3286 //TestEngine.addTest(true, test_file_readAsText_092, "WAC-FILESYSTEM-092");
3287 //TestEngine.addTest(true, test_file_readAsText_093, "WAC-FILESYSTEM-093");
3288 //TestEngine.addTest(true, test_file_readAsText_094, "WAC-FILESYSTEM-094");
3289 //TestEngine.addTest(true, test_file_readAsText_error_095, "WAC-FILESYSTEM-095");
3290 //TestEngine.addTest(true, test_file_readAsText_error_096, "WAC-FILESYSTEM-096");
3291 //TestEngine.addTest(true, test_file_readAsText_error_097, "WAC-FILESYSTEM-097");
3292 //TestEngine.addTest(true, test_file_readAsText_error_098, "WAC-FILESYSTEM-098");
3293 //TestEngine.addTest(true, test_file_deleteDirectory_099, "WAC-FILESYSTEM-099");
3294 //TestEngine.addTest(true, test_file_deleteDirectory_error_100, "WAC-FILESYSTEM-100");
3295 //TestEngine.addTest(true, test_file_deleteDirectory_error_101, "WAC-FILESYSTEM-101");
3296 //TestEngine.addTest(true, test_file_deleteDirectory_error_102, "WAC-FILESYSTEM-102");
3297 //TestEngine.addTest(true, test_file_deleteDirectory_error_103, "WAC-FILESYSTEM-103");
3298 //TestEngine.addTest(true, test_file_deleteDirectory_error_104, "WAC-FILESYSTEM-104");
3299 //TestEngine.addTest(true, test_file_deleteDirectory_error_105, "WAC-FILESYSTEM-105");
3300 //TestEngine.addTest(true, test_file_deleteFile_106, "WAC-FILESYSTEM-106");
3301 //TestEngine.addTest(true, test_file_deleteFile_error_107, "WAC-FILESYSTEM-107");
3302 //TestEngine.addTest(true, test_file_deleteFile_error_108, "WAC-FILESYSTEM-108");
3303 //TestEngine.addTest(true, test_file_deleteFile_error_109, "WAC-FILESYSTEM-109");
3304 //TestEngine.addTest(true, test_file_deleteFile_error_110, "WAC-FILESYSTEM-110");
3305 //TestEngine.addTest(true, test_file_deleteFile_error_111, "WAC-FILESYSTEM-111");
3306 //TestEngine.addTest(true, test_filesystem_resolve_112, "WAC-FILESYSTEM-112");
3307 //TestEngine.addTest(true, test_file_readAsText_113, "WAC-FILESYSTEM-113");
3308 //TestEngine.addTest(true, test_file_open_114, "WAC-FILESYSTEM-114");
3309 //TestEngine.addTest(true, test_file_copyTo_115, "WAC-FILESYSTEM-115");
3310 //TestEngine.addTest(true, test_file_copyTo_116, "WAC-FILESYSTEM-116");
3311 //TestEngine.addTest(true, test_file_copyTo_error_117, "WAC-FILESYSTEM-117");
3312 //TestEngine.addTest(true, test_file_copyTo_error_118, "WAC-FILESYSTEM-118");
3313 //TestEngine.addTest(true, test_file_copyTo_119, "WAC-FILESYSTEM-119");
3314 //TestEngine.addTest(true, test_file_copyTo_error_120, "WAC-FILESYSTEM-120");
3315 //TestEngine.addTest(true, test_file_copyTo_121, "WAC-FILESYSTEM-121");
3316 //TestEngine.addTest(true, test_file_copyTo_error_122, "WAC-FILESYSTEM-122");
3317 //TestEngine.addTest(true, test_file_copyTo_123, "WAC-FILESYSTEM-123");
3318 //TestEngine.addTest(true, test_file_copyTo_error_124, "WAC-FILESYSTEM-124");
3319 //TestEngine.addTest(true, test_file_moveTo_125, "WAC-FILESYSTEM-125");
3320 //TestEngine.addTest(true, test_file_moveTo_126, "WAC-FILESYSTEM-126");
3321 //TestEngine.addTest(true, test_file_moveTo_error_127, "WAC-FILESYSTEM-127");
3322 //TestEngine.addTest(true, test_file_moveTo_error_128, "WAC-FILESYSTEM-128");
3323 //TestEngine.addTest(true, test_file_moveTo_129, "WAC-FILESYSTEM-129");
3324 //TestEngine.addTest(true, test_file_moveTo_error_130, "WAC-FILESYSTEM-130");
3325 //TestEngine.addTest(true, test_file_moveTo_131, "WAC-FILESYSTEM-131");
3326 //TestEngine.addTest(true, test_file_moveTo_error_132, "WAC-FILESYSTEM-132");
3327 //TestEngine.addTest(true, test_file_moveTo_133, "WAC-FILESYSTEM-133");
3328 //TestEngine.addTest(true, test_file_moveTo_error_134, "WAC-FILESYSTEM-134");
3329 //TestEngine.addTest(true, test_file_resolve_135, "WAC-FILESYSTEM-135");
3330 //TestEngine.addTest(true, test_file_resolve_error_136, "WAC-FILESYSTEM-136");
3331 //TestEngine.addTest(true, test_file_resolve_error_137, "WAC-FILESYSTEM-137");
3332 //TestEngine.addTest(true, test_file_append_behaviour_138, "WAC-FILESYSTEM-138");
3333 //TestEngine.addTest(true, test_file_set_position_139, "WAC-FILESYSTEM-139");
3334 //TestEngine.addTest(true, test_filesystem_resolve_error_140, "WAC-FILESYSTEM-140");
3335 //TestEngine.addTest(true, test_filesystem_resolve_error_141, "WAC-FILESYSTEM-141");
3336 //TestEngine.addTest(true, test_filesystem_resolve_142, "WAC-FILESYSTEM-142");
3337 //TestEngine.addTest(true, test_filesystem_resolve_143, "WAC-FILESYSTEM-143");
3339 //=============================================================================
3340 // --------------------------| Utilities
3342 function isFileObject(obj) {
3343 return (obj instanceof deviceapis.filesystem.File);
3346 function isFile(obj) {
3347 return (isFileObject(obj) && !obj.isDirectory);
3350 function isDir(obj) {
3351 return (isFileObject(obj) && obj.isDirectory);
3354 function isFilestream(obj) {
3355 return (obj instanceof deviceapis.filesystem.FileStream);
3358 function deleteDirectory(parent, dir) {
3359 function on_error(err) {
3360 TestEngine.test("deleteDirectory() [" + err.code + "]", false);
3362 function on_success() {
3363 TestEngine.test("deleteDirectory()", true);
3365 var cb = TestEngine.registerCallback("deleteDirectory", on_success, on_error);
3366 parent.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
3369 function deleteFile(parent, file) {
3370 function on_error(err) {
3371 TestEngine.test("deleteFile() [" + err.code + "]", false);
3373 function on_success() {
3374 TestEngine.test("deleteFile()", true);
3376 var cb = TestEngine.registerCallback("deleteFile", on_success, on_error);
3377 parent.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
3380 // For common behaviour use resolve_root_location
3381 function resolve_root(on_success_callback, on_error_callback) {
3382 var cb = TestEngine.registerCallback("resolve", on_success_callback, on_error_callback);
3383 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION);
3386 function resolve_root_location(handler) {
3387 function on_resolve_error(err) {
3388 TestEngine.test("resolve() [" + err.code + "]", false);
3390 function on_resolve_success(file) {
3391 TestEngine.test("resolve()", isFileObject(file));
3394 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3395 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION);
3400 function getFileName() {
3401 var nr = Math.floor(Math.random() * 1000);
3402 var date = new Date();
3403 return "test_wac20_filesystem_file_" + nr + "_" + (counter++) + "_"
3404 + date.getMinutes() + date.getSeconds() + date.getMilliseconds();
3407 function getDirName() {
3408 var nr = Math.floor(Math.random() * 1000);
3409 var date = new Date();
3410 return "test_wac20_filesystem_dir_" + nr + "_" + (counter++) + "_"
3411 + date.getMinutes() + date.getSeconds() + date.getMilliseconds();
3414 function createFileForParent(parent) {
3415 var result = parent.createFile(getFileName());
3416 TestEngine.test("createFile()", isFile(result));
3420 function createDirForParent(parent) {
3421 var result = parent.createDirectory(getDirName());
3422 TestEngine.test("createDirectory()", isDir(result));
3426 function testNoExceptionWithMessage(message, fun) {
3427 var testResult = true;
3434 TestEngine.test(message, testResult);