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) {
691 var f = file.createFile(getFileName());
692 TestEngine.test("createFile success - should fail", false);
694 TestEngine.test("createFile failed.", true);
696 // TestEngine.test("createFile()", isFile(f));
697 function on_openStream_success(stream) {
698 TestEngine.test("openStream()", isFilestream(stream));
700 TestEngine.testPresetError(
701 "Call read() on a closed stream. [IO_ERR]",
702 function(){stream.read(3);},
707 function on_openStream_error(err) {
708 TestEngine.test("openStream() [" + err.code + "]", true);
711 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
712 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
714 resolve_root(on_resolve_success, on_resolve_error);
717 // WAC-FILESYSTEM-037: Call read() on a stream with EOF flag set.
718 function test_filestream_read_error_037() {
719 var test_string = "It's alive! Alive!";
720 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
721 function on_resolve_success(file) {
722 var f = file.createFile(getFileName());
723 TestEngine.test("createFile()", isFile(f));
724 function on_openStream_success(stream) {
725 TestEngine.test("openStream()", isFilestream(stream));
726 stream.write(test_string);
728 function on_openStream1_success(stream1) {
729 TestEngine.test("openStream()", isFilestream(stream1));
730 var read_string = stream1.read(test_string.length);
731 TestEngine.testPresetError(
732 "Call read() on stream with EOF set. [IO_ERR]",
733 function(){stream1.read(1);},
739 function on_openStream1_error(err) {
740 TestEngine.test("openStream() [" + err.code + "]", false);
743 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
744 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
746 function on_openStream_error(err) {
747 TestEngine.test("openStream() [" + err.code + "]", false);
750 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
751 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
753 resolve_root(on_resolve_success, on_resolve_error);
756 // WAC-FILESYSTEM-038: Call openStream() on a directory.
757 function test_file_open_error_038() {
758 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
759 function on_resolve_success(file) {
760 var dir = file.createDirectory(getDirName());
761 TestEngine.test("createDirectory()", isDir(dir));
762 function on_openStream_success(stream) {
763 TestEngine.test("Call openStream() on a directory.", false);
766 function on_openStream_error(err) {
767 TestEngine.test("Call openStream() on a directory. [IO_ERR]", (err.code == IO_ERR));
769 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
770 dir.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
771 deleteDirectory(file, dir);
773 resolve_root(on_resolve_success, on_resolve_error);
776 // WAC-FILESYSTEM-040: Call read() on write-only stream.
777 function test_filestream_read_error_040() {
778 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
779 function on_resolve_success(file) {
780 var f = file.createFile(getFileName());
781 TestEngine.test("createFile()", isFile(f));
782 function on_openStream_success(stream) {
783 TestEngine.test("openStream()", isFilestream(stream));
784 TestEngine.testPresetError(
785 "Call read() on write-only stream. [IO_ERR]",
786 function(){stream.read(0);},
792 function on_openStream_error(err) {
793 TestEngine.test("openStream()", false);
796 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
797 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
799 resolve_root(on_resolve_success, on_resolve_error);
802 // WAC-FILESYSTEM-041: Call write() on a closed stream.
803 function test_filestream_write_error_041() {
804 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
805 function on_resolve_success(file) {
806 var f = file.createFile(getFileName());
807 TestEngine.test("createFile()", isFile(f));
808 function on_openStream_success(stream) {
809 TestEngine.test("openStream()", isFilestream(stream));
811 TestEngine.testPresetError(
812 "Call write() on a closed stream. [IO_ERR]",
813 function(){stream.write('test');},
818 function on_openStream_error(err) {
819 TestEngine.test("openStream()", false);
822 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
823 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
825 resolve_root(on_resolve_success, on_resolve_error);
828 // WAC-FILESYSTEM-042: Call write() on read-only stream.
829 function test_filestream_write_error_042() {
830 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
831 function on_resolve_success(file) {
832 var f = file.createFile(getFileName());
833 TestEngine.test("createFile()", isFile(f));
834 function on_openStream_success(stream) {
835 TestEngine.test("openStream()", isFilestream(stream));
836 TestEngine.testPresetError(
837 "Call write() on read-only stream. [IO_ERR]",
838 function(){stream.write('test');},
844 function on_openStream_error(err) {
845 TestEngine.test("openStream()", false);
848 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
849 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
851 resolve_root(on_resolve_success, on_resolve_error);
854 // WAC-FILESYSTEM-043
855 // Parameters: stringData = array
856 // Result: Test passes (toString() called on JS Array).
857 function test_filestream_write_error_043() {
858 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
859 function on_resolve_success(file) {
860 var f = file.createFile(getFileName());
861 TestEngine.test("createFile()", isFile(f));
862 function on_openStream_success(stream) {
863 TestEngine.test("openStream()", isFilestream(stream));
864 stream.write(new Array('t','e','s','t'));
865 TestEngine.test("write()", true);
869 function on_openStream_error(err) {
870 TestEngine.test("openStream()", false);
873 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
874 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
876 resolve_root(on_resolve_success, on_resolve_error);
879 // WAC-FILESYSTEM-044: Call write() w/o argument.
880 function test_filestream_write_error_044() {
881 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
882 function on_resolve_success(file) {
883 var f = file.createFile(getFileName());
884 TestEngine.test("createFile()", isFile(f));
885 function on_openStream_success(stream) {
886 TestEngine.test("openStream()", isFilestream(stream));
887 TestEngine.testPresetError(
888 "Call write() w/o argument. [TYPE_MISMATCH_ERR]",
889 function(){stream.write();},
895 function on_openStream_error(err) {
896 TestEngine.test("openStream()", false);
899 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
900 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
902 resolve_root(on_resolve_success, on_resolve_error);
905 // WAC-FILESYSTEM-045: Call read() with invalid argument type.
906 function test_filestream_read_error_045() {
907 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
908 function on_resolve_success(file) {
909 var f = file.createFile(getFileName());
910 TestEngine.test("createFile()", isFile(f));
911 function on_openStream_success(stream) {
912 TestEngine.test("openStream()", isFilestream(stream));
913 TestEngine.test("read()", stream.read('should be a number') == '');
917 function on_openStream_error(err) {
918 TestEngine.test("openStream() [" + err.code + "]", false);
921 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
922 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
924 resolve_root(on_resolve_success, on_resolve_error);
927 // WAC-FILESYSTEM-046: Call read() w/o argument.
928 function test_filestream_read_error_046() {
929 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
930 function on_resolve_success(file) {
931 var f = file.createFile(getFileName());
932 TestEngine.test("createFile()", isFile(f));
933 function on_openStream_success(stream) {
934 TestEngine.test("openStream()", isFilestream(stream));
935 TestEngine.testPresetError(
936 "Call read() w/o argument. [TYPE_MISMATCH_ERR]",
937 function(){stream.read();},
943 function on_openStream_error(err) {
944 TestEngine.test("openStream() [" + err.code + "]", false);
947 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
948 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
950 resolve_root(on_resolve_success, on_resolve_error);
953 // WAC-FILESYSTEM-047: Call writeBytes()/readBytes() on a stream.
954 function test_filestream_writeBytes_readBytes_047() {
955 var test_array = new Array(1, 2, 3, 4);
956 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
957 function on_resolve_success(file) {
958 var f = file.createFile(getFileName());
959 TestEngine.test("createFile()", isFile(f));
960 function on_openStream_success(stream) {
961 TestEngine.test("openStream()", isFilestream(stream));
962 stream.writeBytes(test_array);
964 function on_openStream1_success(stream1) {
965 TestEngine.test("openStream()", isFilestream(stream1));
966 var read_array = stream1.readBytes(test_array.length);
969 if (test_array.length == read_array.length) {
971 for (i = 0; i < test_array.length; ++i) {
972 if (test_array[i] != read_array[i]) {
978 TestEngine.test("writeBytes()/readBytes()", cmp);
981 function on_openStream1_error(err) {
982 TestEngine.test("openStream() [" + err.code + "]", false);
985 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
986 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
988 function on_openStream_error(err) {
989 TestEngine.test("openStream() [" + err.code + "]", false);
992 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
993 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
995 resolve_root(on_resolve_success, on_resolve_error);
998 // WAC-FILESYSTEM-048: Call readBytes() on a closed stream.
999 function test_filestream_readBytes_error_048() {
1000 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1001 function on_resolve_success(file) {
1002 var f = file.createFile(getFileName());
1003 TestEngine.test("createFile()", isFile(f));
1004 function on_openStream_success(stream) {
1005 TestEngine.test("openStream()", isFilestream(stream));
1007 TestEngine.testPresetError(
1008 "Call readBytes() on a closed stream. [IO_ERR]",
1009 function(){stream.readBytes(3);},
1012 deleteFile(file, f);
1014 function on_openStream_error(err) {
1015 TestEngine.test("openStream() [" + err.code + "]", false);
1016 deleteFile(file, f);
1018 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1019 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1021 resolve_root(on_resolve_success, on_resolve_error);
1024 // WAC-FILESYSTEM-049: Call readBytes() on a stream with EOF flag set.
1025 function test_filestream_readBytes_error_049() {
1026 var test_array = new Array(1, 2, 3, 4);
1027 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1028 function on_resolve_success(file) {
1029 var f = file.createFile(getFileName());
1030 TestEngine.test("createFile()", isFile(f));
1031 function on_openStream_success(stream) {
1032 TestEngine.test("openStream()", isFilestream(stream));
1033 stream.writeBytes(test_array);
1035 function on_openStream1_success(stream1) {
1036 TestEngine.test("openStream()", isFilestream(stream1));
1037 var read_array = stream1.readBytes(100);
1038 TestEngine.testPresetError(
1039 "Call readBytes() on stream with EOF set. [IO_ERR]",
1040 function(){stream1.readBytes(1);},
1044 deleteFile(file, f);
1046 function on_openStream1_error(err) {
1047 TestEngine.test("openStream() [" + err.code + "]", false);
1048 deleteFile(file, f);
1050 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1051 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1053 function on_openStream_error(err) {
1054 TestEngine.test("openStream() [" + err.code + "]", false);
1055 deleteFile(file, f);
1057 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1058 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1060 resolve_root(on_resolve_success, on_resolve_error);
1063 // WAC-FILESYSTEM-051: Call readBytes() on write-only stream.
1064 function test_filestream_readBytes_error_051() {
1065 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1066 function on_resolve_success(file) {
1067 var f = file.createFile(getFileName());
1068 TestEngine.test("createFile()", isFile(f));
1069 function on_openStream_success(stream) {
1070 TestEngine.test("openStream()", isFilestream(stream));
1071 TestEngine.testPresetError(
1072 "Call readBytes() on write-only stream. [IO_ERR]",
1073 function(){stream.readBytes(0);},
1077 deleteFile(file, f);
1079 function on_openStream_error(err) {
1080 TestEngine.test("openStream() [" + err.code + "]", false);
1081 deleteFile(file, f);
1083 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1084 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1086 resolve_root(on_resolve_success, on_resolve_error);
1089 // WAC-FILESYSTEM-052
1090 // Parameters: byteCount = string
1091 // Result: Test passes (conversion exception).
1092 function test_filestream_readBytes_error_052() {
1093 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1094 function on_resolve_success(file) {
1095 var f = file.createFile(getFileName());
1096 TestEngine.test("createFile()", isFile(f));
1097 function on_openStream_success(stream) {
1098 TestEngine.test("openStream()", isFilestream(stream));
1099 TestEngine.test("readBytes()", stream.readBytes('should be a number').length == 0);
1101 deleteFile(file, f);
1103 function on_openStream_error(err) {
1104 TestEngine.test("openStream() [" + err.code + "]", false);
1105 deleteFile(file, f);
1107 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1108 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1110 resolve_root(on_resolve_success, on_resolve_error);
1113 // WAC-FILESYSTEM-053: Call readBytes() w/o argument.
1114 function test_filestream_readBytes_error_053() {
1115 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1116 function on_resolve_success(file) {
1117 var f = file.createFile(getFileName());
1118 TestEngine.test("createFile()", isFile(f));
1119 function on_openStream_success(stream) {
1120 TestEngine.test("openStream()", isFilestream(stream));
1121 TestEngine.testPresetError(
1122 "Call read() w/o argument. [TYPE_MISMATCH_ERR]",
1123 function(){stream.readBytes();},
1127 deleteFile(file, f);
1129 function on_openStream_error(err) {
1130 TestEngine.test("openStream() [" + err.code + "]", false);
1131 deleteFile(file, f);
1133 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1134 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1136 resolve_root(on_resolve_success, on_resolve_error);
1139 // WAC-FILESYSTEM-054: Call writeBytes() on a closed stream.
1140 function test_filestream_writeBytes_error_054() {
1141 var test_array = new Array(1, 2, 3, 4);
1142 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1143 function on_resolve_success(file) {
1144 var f = file.createFile(getFileName());
1145 TestEngine.test("createFile()", isFile(f));
1146 function on_openStream_success(stream) {
1147 TestEngine.test("openStream()", isFilestream(stream));
1149 TestEngine.testPresetError(
1150 "Call writeBytes() on a closed stream. [IO_ERR]",
1151 function(){stream.writeBytes(test_array);},
1154 deleteFile(file, f);
1156 function on_openStream_error(err) {
1157 TestEngine.test("openStream() [" + err.code + "]", false);
1158 deleteFile(file, f);
1160 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1161 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1163 resolve_root(on_resolve_success, on_resolve_error);
1166 // WAC-FILESYSTEM-055: Call writeBytes() on read-only stream.
1167 function test_filestream_writeBytes_error_055() {
1168 var test_array = new Array(1, 2, 3, 4);
1169 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1170 function on_resolve_success(file) {
1171 var f = file.createFile(getFileName());
1172 TestEngine.test("createFile()", isFile(f));
1173 function on_openStream_success(stream) {
1174 TestEngine.test("openStream()", isFilestream(stream));
1175 TestEngine.testPresetError(
1176 "Call writeBytes() on read-only stream. [IO_ERR]",
1177 function(){stream.writeBytes(test_array);},
1181 deleteFile(file, f);
1183 function on_openStream_error(err) {
1184 TestEngine.test("openStream() [" + err.code + "]", false);
1185 deleteFile(file, f);
1187 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1188 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1190 resolve_root(on_resolve_success, on_resolve_error);
1193 // WAC-FILESYSTEM-056: Call writeBytes() with invalid argument type.
1194 function test_filestream_writeBytes_error_056() {
1195 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1196 function on_resolve_success(file) {
1197 var f = file.createFile(getFileName());
1198 TestEngine.test("createFile()", isFile(f));
1199 function on_openStream_success(stream) {
1200 TestEngine.test("openStream()", isFilestream(stream));
1201 TestEngine.testPresetError(
1202 "Call writeBytes() with invalid argument. [TYPE_MISMATCH_ERR]",
1203 function(){stream.writeBytes(3);},
1207 deleteFile(file, f);
1209 function on_openStream_error(err) {
1210 TestEngine.test("openStream() [" + err.code + "]", false);
1211 deleteFile(file, f);
1213 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1214 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1216 resolve_root(on_resolve_success, on_resolve_error);
1219 // WAC-FILESYSTEM-057: Call writeBytes() w/o argument.
1220 function test_filestream_writeBytes_057() {
1221 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1222 function on_resolve_success(file) {
1223 var f = file.createFile(getFileName());
1224 TestEngine.test("createFile()", isFile(f));
1225 function on_openStream_success(stream) {
1226 TestEngine.test("openStream()", isFilestream(stream));
1227 stream.writeBytes();
1230 function on_openStream_read_success(stream) {
1231 TestEngine.test("openStream()", isFilestream(stream));
1232 var readData = stream.readBytes(256);
1234 TestEngine.test("readBytes()", isArray(readData) && readData.length == 0);
1235 deleteFile(file, f);
1238 var cb = TestEngine.registerCallback("openStream", on_openStream_read_success, on_openStream_error);
1239 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1241 function on_openStream_error(err) {
1242 TestEngine.test("openStream() [" + err.code + "]", false);
1243 deleteFile(file, f);
1245 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1246 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1248 resolve_root(on_resolve_success, on_resolve_error);
1251 // WAC-FILESYSTEM-058: Call writeBase64()/readBase64() on a stream.
1252 function test_filestream_writeBase64_readBase64_058() {
1253 var test_base64 = 'dGVzdA==';
1254 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1255 function on_resolve_success(file) {
1256 var f = file.createFile(getFileName());
1257 TestEngine.test("createFile()", isFile(f));
1258 function on_openStream_success(stream) {
1259 TestEngine.test("openStream()", isFilestream(stream));
1260 stream.writeBase64(test_base64);
1262 function on_openStream1_success(stream1) {
1263 TestEngine.test("openStream()", isFilestream(stream1));
1264 var read_base64 = stream1.readBase64(100);
1266 TestEngine.test("writeBase64()/readBase64()", (test_base64 === read_base64));
1267 deleteFile(file, f);
1269 function on_openStream1_error(err) {
1270 TestEngine.test("openStream() [" + err.code + "]", false);
1271 deleteFile(file, f);
1273 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1274 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1276 function on_openStream_error(err) {
1277 TestEngine.test("openStream() [" + err.code + "]", false);
1278 deleteFile(file, f);
1280 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1281 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1283 resolve_root(on_resolve_success, on_resolve_error);
1286 // WAC-FILESYSTEM-059: Call writeBase64()/read() on a stream.
1287 function test_filestream_writeBase64_read_059() {
1288 var test_base64 = 'dGVzdA==';
1289 var test_string = 'test';
1290 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1291 function on_resolve_success(file) {
1292 var f = file.createFile(getFileName());
1293 TestEngine.test("createFile()", isFile(f));
1294 function on_openStream_success(stream) {
1295 TestEngine.test("openStream()", isFilestream(stream));
1296 stream.writeBase64(test_base64);
1298 function on_openStream1_success(stream1) {
1299 TestEngine.test("openStream()", isFilestream(stream1));
1300 var read_string = stream1.read(test_string.length);
1302 TestEngine.test("writeBase64()/read()", (test_string === read_string));
1303 deleteFile(file, f);
1305 function on_openStream1_error(err) {
1306 TestEngine.test("openStream() [" + err.code + "]", false);
1307 deleteFile(file, f);
1309 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1310 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1312 function on_openStream_error(err) {
1313 TestEngine.test("openStream() [" + err.code + "]", false);
1314 deleteFile(file, f);
1316 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1317 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1319 resolve_root(on_resolve_success, on_resolve_error);
1322 // WAC-FILESYSTEM-060: Call write()/readBase64() on a stream.
1323 function test_filestream_write_readBase64_060() {
1324 var test_base64 = 'dGVzdA==';
1325 var test_string = 'test';
1326 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1327 function on_resolve_success(file) {
1328 var f = file.createFile(getFileName());
1329 TestEngine.test("createFile()", isFile(f));
1330 function on_openStream_success(stream) {
1331 TestEngine.test("openStream()", isFilestream(stream));
1332 stream.write(test_string);
1334 function on_openStream1_success(stream1) {
1335 TestEngine.test("openStream()", isFilestream(stream1));
1336 var read_base64 = stream1.readBase64(100);
1338 TestEngine.test("write()/readBase64()", (test_base64 === read_base64));
1339 deleteFile(file, f);
1341 function on_openStream1_error(err) {
1342 TestEngine.test("openStream() [" + err.code + "]", false);
1343 deleteFile(file, f);
1345 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1346 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1348 function on_openStream_error(err) {
1349 TestEngine.test("openStream() [" + err.code + "]", false);
1350 deleteFile(file, f);
1352 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1353 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1355 resolve_root(on_resolve_success, on_resolve_error);
1358 // WAC-FILESYSTEM-061: Call readBase64() on a closed stream.
1359 function test_filestream_readBase64_error_061() {
1360 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1361 function on_resolve_success(file) {
1362 var f = file.createFile(getFileName());
1363 TestEngine.test("createFile()", isFile(f));
1364 function on_openStream_success(stream) {
1365 TestEngine.test("openStream()", isFilestream(stream));
1367 TestEngine.testPresetError(
1368 "Call readBase64() on a closed stream. [IO_ERR]",
1369 function(){stream.readBase64(3);},
1372 deleteFile(file, f);
1374 function on_openStream_error(err) {
1375 TestEngine.test("openStream() [" + err.code + "]", false);
1376 deleteFile(file, f);
1378 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1379 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1381 resolve_root(on_resolve_success, on_resolve_error);
1384 // WAC-FILESYSTEM-062: Call readBase64() on a stream with EOF flag set.
1385 function test_filestream_readBase64_error_062() {
1386 var test_base64 = 'dGVzdA==';
1387 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1388 function on_resolve_success(file) {
1389 var f = file.createFile(getFileName());
1390 TestEngine.test("createFile()", isFile(f));
1391 function on_openStream_success(stream) {
1392 TestEngine.test("openStream()", isFilestream(stream));
1393 stream.writeBase64(test_base64);
1395 function on_openStream1_success(stream1) {
1396 TestEngine.test("openStream()", isFilestream(stream1));
1397 var read_base64 = stream1.readBase64(100);
1398 TestEngine.testPresetError(
1399 "Call readBase64() on stream with EOF set. [IO_ERR]",
1400 function(){stream1.readBase64(1);},
1404 deleteFile(file, f);
1406 function on_openStream1_error(err) {
1407 TestEngine.test("openStream() [" + err.code + "]", false);
1408 deleteFile(file, f);
1410 var cb = TestEngine.registerCallback("openStream", on_openStream1_success, on_openStream1_error);
1411 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1413 function on_openStream_error(err) {
1414 TestEngine.test("openStream() [" + err.code + "]", false);
1415 deleteFile(file, f);
1417 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1418 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1420 resolve_root(on_resolve_success, on_resolve_error);
1423 // WAC-FILESYSTEM-064: Call readBase64() on write-only stream.
1424 function test_filestream_readBase64_error_064() {
1425 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1426 function on_resolve_success(file) {
1427 var f = file.createFile(getFileName());
1428 TestEngine.test("createFile()", isFile(f));
1429 function on_openStream_success(stream) {
1430 TestEngine.test("openStream()", isFilestream(stream));
1431 TestEngine.testPresetError(
1432 "Call readBase64() on write-only stream. [IO_ERR]",
1433 function(){stream.readBase64(0);},
1437 deleteFile(file, f);
1439 function on_openStream_error(err) {
1440 TestEngine.test("openStream() [" + err.code + "]", false);
1441 deleteFile(file, f);
1443 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1444 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1446 resolve_root(on_resolve_success, on_resolve_error);
1449 // WAC-FILESYSTEM-065
1450 // Parameters: byteCount = string
1451 // Result: Test passes (empty string).
1452 function test_filestream_readBase64_error_065() {
1453 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1454 function on_resolve_success(file) {
1455 var f = file.createFile(getFileName());
1456 TestEngine.test("createFile()", isFile(f));
1457 function on_openStream_success(stream) {
1458 TestEngine.test("openStream()", isFilestream(stream));
1459 TestEngine.test("readBase64()", stream.readBase64('should be a number') == '');
1461 deleteFile(file, f);
1463 function on_openStream_error(err) {
1464 TestEngine.test("openStream() [" + err.code + "]", false);
1465 deleteFile(file, f);
1467 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1468 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1470 resolve_root(on_resolve_success, on_resolve_error);
1473 // WAC-FILESYSTEM-066: Call readBase64() w/o argument.
1474 function test_filestream_readBase64_error_066() {
1475 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1476 function on_resolve_success(file) {
1477 var f = file.createFile(getFileName());
1478 TestEngine.test("createFile()", isFile(f));
1479 function on_openStream_success(stream) {
1480 TestEngine.test("openStream()", isFilestream(stream));
1481 TestEngine.testPresetError(
1482 "Call readBase64() w/o argument. [TYPE_MISMATCH_ERR]",
1483 function(){stream.readBase64();},
1487 deleteFile(file, f);
1489 function on_openStream_error(err) {
1490 TestEngine.test("openStream() [" + err.code + "]", false);
1491 deleteFile(file, f);
1493 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1494 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1496 resolve_root(on_resolve_success, on_resolve_error);
1499 // WAC-FILESYSTEM-067: Call writeBase64() on a closed stream.
1500 function test_filestream_writeBase64_error_067() {
1501 var test_base64 = 'dGVzdA==';
1502 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1503 function on_resolve_success(file) {
1504 var f = file.createFile(getFileName());
1505 TestEngine.test("createFile()", isFile(f));
1506 function on_openStream_success(stream) {
1507 TestEngine.test("openStream()", isFilestream(stream));
1509 TestEngine.testPresetError(
1510 "Call writeBase64() on a closed stream. [IO_ERR]",
1511 function(){stream.writeBase64(test_base64);},
1514 deleteFile(file, f);
1516 function on_openStream_error(err) {
1517 TestEngine.test("openStream() [" + err.code + "]", false);
1518 deleteFile(file, f);
1520 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1521 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1523 resolve_root(on_resolve_success, on_resolve_error);
1526 // WAC-FILESYSTEM-068: Call writeBase64() on read-only stream.
1527 function test_filestream_writeBase64_error_068() {
1528 var test_base64 = 'dGVzdA==';
1529 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1530 function on_resolve_success(file) {
1531 var f = file.createFile(getFileName());
1532 TestEngine.test("createFile()", isFile(f));
1533 function on_openStream_success(stream) {
1534 TestEngine.test("openStream()", isFilestream(stream));
1535 TestEngine.testPresetError(
1536 "Call writeBase64() on read-only stream. [IO_ERR]",
1537 function(){stream.writeBase64(test_base64);},
1541 deleteFile(file, f);
1543 function on_openStream_error(err) {
1544 TestEngine.test("openStream() [" + err.code + "]", false);
1545 deleteFile(file, f);
1547 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1548 f.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
1550 resolve_root(on_resolve_success, on_resolve_error);
1553 // WAC-FILESYSTEM-069
1554 // Parameters: base64Data = invalid value
1555 // Result: IO_ERR thrown in place.
1556 function test_filestream_writeBase64_error_069() {
1557 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1558 function on_resolve_success(file) {
1559 var f = file.createFile(getFileName());
1560 TestEngine.test("createFile()", isFile(f));
1561 function on_openStream_success(stream) {
1562 TestEngine.test("openStream()", isFilestream(stream));
1563 TestEngine.testPresetError(
1564 "Call writeBase64() with invalid argument.",
1565 function(){stream.writeBase64(3);},
1569 deleteFile(file, f);
1571 function on_openStream_error(err) {
1572 TestEngine.test("openStream() [" + err.code + "]", false);
1573 deleteFile(file, f);
1575 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1576 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1578 resolve_root(on_resolve_success, on_resolve_error);
1581 // WAC-FILESYSTEM-070: Call writeBase64() w/o argument.
1582 function test_filestream_writeBase64_error_070() {
1583 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1584 function on_resolve_success(file) {
1585 var f = file.createFile(getFileName());
1586 TestEngine.test("createFile()", isFile(f));
1587 function on_openStream_success(stream) {
1588 TestEngine.test("openStream()", isFilestream(stream));
1589 TestEngine.testPresetError(
1590 "Call writeBase64() w/o argument. [TYPE_MISMATCH_ERR]",
1591 function(){stream.writeBase64();},
1595 deleteFile(file, f);
1597 function on_openStream_error(err) {
1598 TestEngine.test("openStream() [" + err.code + "]", false);
1599 deleteFile(file, f);
1601 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1602 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1604 resolve_root(on_resolve_success, on_resolve_error);
1607 // WAC-FILESYSTEM-071: Call createFile() on node resolved in read-only mode.
1608 function test_file_createFile_error_071() {
1609 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1610 function on_resolve_success(file) {
1611 TestEngine.testPresetError(
1612 "Call createFile() on read-only node. [SECURITY_ERR]",
1614 var f = file.createFile(getFileName());
1615 deleteFile(file, f);
1620 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1621 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1624 // WAC-FILESYSTEM-072: Call deleteFile() on node resolved in read-only mode.
1625 function test_file_deleteFile_error_072() {
1626 var filename = getFileName();
1627 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1628 function on_resolve_success(file) {
1629 TestEngine.test("createFile()", isFile(file.createFile(filename)));
1631 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1632 function on_resolve1_success(file) {
1633 var f = file.resolve(filename);
1634 TestEngine.test("resolve()", isFile(f));
1636 function on_deleteFile_error(err) {
1637 TestEngine.test("Call deleteFile() on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1638 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1639 function on_resolve2_success(file) {
1640 var f = file.resolve(filename);
1641 TestEngine.test("resolve()", isFile(f));
1642 deleteFile(file, f);
1644 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1645 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1647 function on_deleteFile_success() {
1648 TestEngine.test("Call deleteFile() on read-only node. [SECURITY_ERR]", false);
1650 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
1651 file.deleteFile(cb.successCallback, cb.errorCallback, f.fullPath);
1653 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1654 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1656 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1657 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1660 // WAC-FILESYSTEM-073: Call deleteDirectory() on node resolved in read-only mode.
1661 function test_file_deleteDirectory_error_073() {
1662 var dirname = getDirName();
1663 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1664 function on_resolve_success(file) {
1665 TestEngine.test("createDirectory()", isDir(file.createDirectory(dirname)));
1667 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1668 function on_resolve1_success(file) {
1669 var dir = file.resolve(dirname);
1670 TestEngine.test("resolve()", isDir(dir));
1672 function on_deleteDirectory_error(err) {
1673 TestEngine.test("Call deleteDirectory() on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1674 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1675 function on_resolve2_success(file) {
1676 var dir = file.resolve(dirname);
1677 TestEngine.test("resolve()", isDir(dir));
1678 deleteDirectory(file, dir);
1680 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1681 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1683 function on_deleteDirectory_success() {
1684 TestEngine.test("Call deleteDirectory() on read-only node. [SECURITY_ERR]", false);
1686 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
1687 file.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
1689 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1690 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1692 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1693 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1696 // WAC-FILESYSTEM-074: Call moveTo() on node resolved in read-only mode.
1697 function test_file_moveTo_error_074() {
1698 var src_filename = getFileName();
1699 var dst_filename = getFileName();
1700 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1701 function on_resolve_success(file) {
1702 var f = file.createFile(src_filename);
1703 TestEngine.test("createFile()", isFile(f));
1705 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1706 function on_resolve1_success(file) {
1707 var f = file.resolve(src_filename);
1708 TestEngine.test("resolve()", isFile(f));
1710 function on_moveTo_error(err) {
1711 TestEngine.test("Call moveTo() on read-only mode. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1712 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1713 function on_resolve2_success(file) {
1714 var f = file.resolve(src_filename);
1715 TestEngine.test("resolve()", isFile(f));
1716 deleteFile(file, f);
1718 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1719 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1721 function on_moveTo_success(file1) {
1722 TestEngine.test("Call moveTo() on read-only mode. [SECURITY_ERR]", false);
1723 function on_resolve2_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1724 function on_resolve2_success(file) {
1725 var f = file.resolve(dst_filename);
1726 TestEngine.test("resolve()", isFile(f));
1727 deleteFile(file, f);
1729 var cb = TestEngine.registerCallback("resolve", on_resolve2_success, on_resolve2_error);
1730 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1732 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
1733 file.moveTo(cb.successCallback, cb.errorCallback, f.fullPath, file.fullPath + '/' + dst_filename, true);
1735 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1736 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1738 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1739 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1742 // WAC-FILESYSTEM-075: Call openStream() in write-only mode on node resolved in read-only mode.
1743 function test_file_openStream_error_075() {
1744 var filename = getFileName();
1745 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1746 function on_resolve_success(file) {
1747 var f = file.createFile(filename);
1748 TestEngine.test("createFile()", isFile(f));
1750 function on_resolve1_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1751 function on_resolve1_success(r_file) {
1752 var f = r_file.resolve(filename);
1753 TestEngine.test("resolve()", isFile(f));
1755 function on_openStream_success(stream) {
1756 TestEngine.test("Call openStream() in write-only mode on read-only node. [SECURITY_ERR]", false);
1758 deleteFile(file, f);
1760 function on_openStream_error(err) {
1761 TestEngine.test("Call openStream() in write-only mode on read-only node. [SECURITY_ERR]", (err.code == SECURITY_ERR));
1762 deleteFile(file, f);
1764 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1765 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1767 var cb = TestEngine.registerCallback("resolve", on_resolve1_success, on_resolve1_error);
1768 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "r");
1770 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1771 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, "rw");
1774 // WAC-FILESYSTEM-076: Call readAsText() on a file.
1775 function test_file_readAsText_076() {
1776 var test_content = "Ala ma kota";
1777 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1778 function on_resolve_success(file) {
1779 var f = file.createFile(getFileName());
1780 TestEngine.test("createFile()", isFile(f));
1782 function on_openStream_success(stream) {
1783 TestEngine.test("openStream()", isFilestream(stream));
1784 stream.write(test_content);
1786 function on_readAsText_error(err) {
1787 TestEngine.test("readAsText() [" + err.code + "]", false);
1788 deleteFile(file, f);
1790 function on_readAsText_success(str) {
1791 TestEngine.test("readAsText()", (str === test_content));
1792 deleteFile(file, f);
1794 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1795 f.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1797 function on_openStream_error(err) {
1798 TestEngine.test("openStream() [" + err.code + "]", false);
1799 deleteFile(file, f);
1801 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1802 f.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
1804 resolve_root(on_resolve_success, on_resolve_error);
1807 // WAC-FILESYSTEM-077: Call readAsText() on a directory.
1808 function test_file_readAsText_error_077() {
1809 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1810 function on_resolve_success(file) {
1811 var dir = file.createDirectory(getDirName());
1812 TestEngine.test("createDirectory()", isDir(dir));
1814 function on_readAsText_error(err) {
1815 TestEngine.test("Call readAsText() on a directory [IO_ERR]", (err.code == IO_ERR));
1817 function on_readAsText_success(str) {
1818 TestEngine.test("Call readAsText() on a directory [IO_ERR]", false);
1820 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1821 dir.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1822 deleteDirectory(file, dir);
1824 resolve_root(on_resolve_success, on_resolve_error);
1827 // WAC-FILESYSTEM-078: Call readAsText() on a deleted file.
1828 function test_file_readAsText_error_078() {
1829 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1830 function on_resolve_success(root) {
1831 var file = root.createFile(getFileName());
1832 TestEngine.test("createFile()", isFile(file));
1834 function on_deleteFile_error(err) { TestEngine.test("deleteFile() [" + err.code + "]", false); }
1835 function on_deleteFile_success() {
1836 function on_readAsText_error(err) {
1837 TestEngine.test("Call readAsText() on a deleted file [IO_ERR]", (err.code == IO_ERR));
1839 function on_readAsText_success(str) {
1840 TestEngine.test("Call readAsText() on a deleted file [IO_ERR]", false);
1842 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
1843 file.readAsText(cb.successCallback, cb.errorCallback, "UTF-8");
1845 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
1846 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
1848 resolve_root(on_resolve_success, on_resolve_error);
1851 // WAC-FILESYSTEM-079: Call toUri() on file located in root folder.
1852 function test_file_toUri_079() {
1853 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1854 function on_resolve_success(file) {
1855 var f = file.createFile(getFileName());
1856 TestEngine.test("createFile()", isFile(f));
1857 var uri = f.toURI();
1858 TestEngine.test("Call toUri() returns non empty string", isString(uri) && uri.length > 0);
1859 TestEngine.log("created uri: " + uri);
1860 deleteFile(file, f);
1862 resolve_root(on_resolve_success, on_resolve_error);
1865 // WAC-FILESYSTEM-080: Resolve a file with mode set to null.
1866 function test_filesystem_resolve_080() {
1867 function on_resolve_error(err) {
1868 TestEngine.test("resolve()", false);
1870 function on_resolve_success(file) {
1871 TestEngine.test("resolve()", true);
1873 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
1874 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, null);
1877 // WAC-FILESYSTEM-081: List files with null passed as filter.
1878 function test_file_listFiles_081() {
1879 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1880 function on_resolve_success(file) {
1881 TestEngine.test("resolve()", isFileObject(file));
1882 function on_listFiles_error(err) {
1883 TestEngine.test("listFiles() [" + err.code + "]", false);
1885 function on_listFiles_success(files) {
1886 TestEngine.test("listFiles()", isArray(files));
1888 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1889 file.listFiles(cb.successCallback, cb.errorCallback, null);
1891 resolve_root(on_resolve_success, on_resolve_error);
1894 // WAC-FILESYSTEM-082: List files with undefined passed as filter.
1895 function test_file_listFiles_082() {
1896 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1897 function on_resolve_success(file) {
1898 TestEngine.test("resolve()", isFileObject(file));
1899 function on_listFiles_error(err) {
1900 TestEngine.test("listFiles() [" + err.code + "]", false);
1902 function on_listFiles_success(files) {
1903 TestEngine.test("listFiles()", isArray(files));
1905 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1906 file.listFiles(cb.successCallback, cb.errorCallback, undefined);
1908 resolve_root(on_resolve_success, on_resolve_error);
1911 // WAC-FILESYSTEM-083
1912 // Parameters: filter = 1, others = valid
1913 // Result: Test passes.
1914 function test_file_listFiles_error_083() {
1915 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1916 function on_resolve_success(file) {
1917 TestEngine.test("resolve()", isFileObject(file));
1919 function on_listFiles_error(err) {
1920 TestEngine.test("listFiles()", false);
1922 function on_listFiles_success(files) {
1923 TestEngine.test("listFiles()", isArray(files));
1925 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1926 file.listFiles(cb.successCallback, cb.errorCallback, 1);
1928 resolve_root(on_resolve_success, on_resolve_error);
1931 // WAC-FILESYSTEM-084: List files with null passed as success callback.
1932 function test_file_listFiles_error_084() {
1933 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1934 function on_resolve_success(file) {
1935 TestEngine.test("resolve()", isFileObject(file));
1936 function on_listFiles_error(err) {
1937 TestEngine.test("listFiles() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
1939 function on_listFiles_success(files) {
1940 TestEngine.test("listFiles()", false);
1942 var cb = TestEngine.registerCallback("listFiles", on_listFiles_success, on_listFiles_error);
1943 file.listFiles(null, cb.errorCallback);
1945 resolve_root(on_resolve_success, on_resolve_error);
1948 // WAC-FILESYSTEM-085
1949 // Parameters: successCallback = undefined, others = valid
1950 // Result: INVALID_VALUES_ERR thrown via error callback.
1951 function test_file_listFiles_error_085() {
1952 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1953 function on_resolve_success(file) {
1954 TestEngine.test("resolve()", isFileObject(file));
1955 function on_listFiles_error(err) {
1956 TestEngine.test("listFiles()", (err.code == INVALID_VALUES_ERR));
1958 var cb = TestEngine.registerCallback("listFiles", undefined, on_listFiles_error);
1959 file.listFiles(cb.successCallback, cb.errorCallback);
1961 resolve_root(on_resolve_success, on_resolve_error);
1964 // WAC-FILESYSTEM-086: List files with both callbacks set to null. Nothing should happen.
1965 function test_file_listFiles_error_086() {
1966 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1967 function on_resolve_success(file) {
1968 TestEngine.test("resolve()", isFileObject(file));
1969 function on_listFiles_error(err) {
1970 TestEngine.test("listFiles() [" + err.code + "]", false);
1972 function on_listFiles_success(files) {
1973 TestEngine.test("listFiles()", false);
1975 // Pass callbacks directly to prevent "widget run timeout".
1976 file.listFiles(null, null);
1978 resolve_root(on_resolve_success, on_resolve_error);
1981 // WAC-FILESYSTEM-087: Test optionality of the last parameter.
1982 function test_file_open_087() {
1983 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
1984 function on_resolve_success(file) {
1985 TestEngine.test("resolve()", isFileObject(file));
1986 var file2 = file.createFile(getFileName());
1987 TestEngine.test("createFile()", isFile(file2));
1988 function on_openStream_success(stream) {
1989 TestEngine.test("openStream()", isFilestream(stream));
1991 deleteFile(file, file2);
1993 function on_openStream_error(err) {
1994 TestEngine.test("openStream() [" + err.code + "]", false);
1996 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
1997 var stream = file2.openStream(cb.successCallback, cb.errorCallback, "r");
1999 resolve_root(on_resolve_success, on_resolve_error);
2002 // WAC-FILESYSTEM-088: Test success callback set to null.
2003 function test_file_open_error_088() {
2004 function on_resolve_success(root) {
2005 function on_openStream_error(err) {
2006 TestEngine.test("openStream() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2007 deleteFile(root, file);
2009 var file = createFileForParent(root);
2010 // Pass callbacks directly to prevent "widget run timeout".
2011 var cb = TestEngine.registerCallback("openStream", null, on_openStream_error);
2012 var stream = file.openStream(null, cb.errorCallback, "r");
2014 resolve_root_location(on_resolve_success);
2017 // WAC-FILESYSTEM-089
2018 // Parameters: successCallback = undefined, others = valid
2019 // Result: INVALID_VALUES_ERR thrown via error callback.
2020 function test_file_open_error_089() {
2021 function on_resolve_success(root) {
2022 var file = createFileForParent(root);
2024 function on_openStream_error(err) {
2025 TestEngine.test("openStream()", (err.code == INVALID_VALUES_ERR));
2026 deleteFile(root, file);
2029 var cb = TestEngine.registerCallback("openStream", undefined, on_openStream_error);
2030 var stream = file.openStream(cb.successCallback, cb.errorCallback, "r");
2032 resolve_root_location(on_resolve_success);
2035 // WAC-FILESYSTEM-090: Test passing invalid mode with error callback set to null.
2036 function test_file_open_error_090() {
2037 function on_resolve_success(root) {
2038 function on_openStream_success(fs) {
2039 TestEngine.test("Calling openStream() with invalid mode.", false);
2041 deleteFile(root, file);
2043 var file = createFileForParent(root);
2044 testNoExceptionWithMessage("openStream()", function() {
2045 // Pass callbacks directly to prevent "widget run timeout".
2046 file.openStream(on_openStream_success, null, "x", "UTF-8");
2048 deleteFile(root, file);
2050 resolve_root_location(on_resolve_success);
2053 // WAC-FILESYSTEM-091: Call readAsText() w/o specifing encoding parameter.
2054 function test_file_readAsText_091() {
2055 var test_content = "Ala ma kota";
2056 function on_resolve_success(root) {
2057 var file = createFileForParent(root)
2059 function on_openStream_success(stream) {
2060 TestEngine.test("openStream()", isFilestream(stream));
2061 stream.write(test_content);
2064 function on_readAsText_error(err) {
2065 TestEngine.test("readAsText() [" + err.code + "]", false);
2066 deleteFile(root, file);
2068 function on_readAsText_success(str) {
2069 TestEngine.test("readAsText()", (str === test_content));
2070 deleteFile(root, file);
2072 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2073 file.readAsText(cb.successCallback, cb.errorCallback);
2075 function on_openStream_error(err) {
2076 TestEngine.test("openStream() [" + err.code + "]", false);
2077 deleteFile(root, file);
2079 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2080 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2082 resolve_root_location(on_resolve_success);
2085 // WAC-FILESYSTEM-092: Call readAsText() with encoding parameter set to null.
2086 function test_file_readAsText_092() {
2087 var test_content = "Ala ma kota";
2088 function on_resolve_success(root) {
2089 var file = createFileForParent(root)
2091 function on_openStream_success(stream) {
2092 TestEngine.test("openStream()", isFilestream(stream));
2093 stream.write(test_content);
2096 function on_readAsText_error(err) {
2097 TestEngine.test("readAsText() [" + err.code + "]", false);
2098 deleteFile(root, file);
2100 function on_readAsText_success(str) {
2101 TestEngine.test("readAsText()", (str === test_content));
2102 deleteFile(root, file);
2104 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2105 file.readAsText(cb.successCallback, cb.errorCallback, null);
2107 function on_openStream_error(err) {
2108 TestEngine.test("openStream() [" + err.code + "]", false);
2109 deleteFile(root, file);
2111 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2112 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2114 resolve_root_location(on_resolve_success);
2117 // WAC-FILESYSTEM-093: Call readAsText() with error callback set to null.
2118 function test_file_readAsText_093() {
2119 var test_content = "Ala ma kota";
2120 function on_resolve_success(root) {
2121 var file = createFileForParent(root)
2123 function on_openStream_success(stream) {
2124 TestEngine.test("openStream()", isFilestream(stream));
2125 stream.write(test_content);
2128 function on_readAsText_success(str) {
2129 TestEngine.test("readAsText()", (str === test_content));
2130 deleteFile(root, file);
2132 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, null);
2133 file.readAsText(cb.successCallback, null);
2135 function on_openStream_error(err) {
2136 TestEngine.test("openStream() [" + err.code + "]", false);
2137 deleteFile(root, file);
2139 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2140 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2142 resolve_root_location(on_resolve_success);
2145 // WAC-FILESYSTEM-094: Call readAsText() w/o specifing error callback.
2146 function test_file_readAsText_094() {
2147 var test_content = "Ala ma kota";
2148 function on_resolve_success(root) {
2149 var file = createFileForParent(root)
2151 function on_openStream_success(stream) {
2152 TestEngine.test("openStream()", isFilestream(stream));
2153 stream.write(test_content);
2156 function on_readAsText_success(str) {
2157 TestEngine.test("readAsText()", (str === test_content));
2158 deleteFile(root, file);
2160 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, null);
2161 file.readAsText(cb.successCallback);
2163 function on_openStream_error(err) {
2164 TestEngine.test("openStream() [" + err.code + "]", false);
2165 deleteFile(root, file);
2167 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2168 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2170 resolve_root_location(on_resolve_success);
2173 // WAC-FILESYSTEM-095: Call readAsText() with success callback set to null.
2174 function test_file_readAsText_error_095() {
2175 var test_content = "Ala ma kota";
2176 function on_resolve_success(root) {
2177 var file = createFileForParent(root)
2179 function on_openStream_success(stream) {
2180 TestEngine.test("openStream()", isFilestream(stream));
2181 stream.write(test_content);
2184 function on_readAsText_error(err) {
2185 TestEngine.test("readAsText() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2186 deleteFile(root, file);
2188 var cb = TestEngine.registerCallback("readAsText", null, on_readAsText_error);
2189 file.readAsText(null, cb.errorCallback);
2191 function on_openStream_error(err) {
2192 TestEngine.test("openStream() [" + err.code + "]", false);
2193 deleteFile(root, file);
2195 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2196 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2198 resolve_root_location(on_resolve_success);
2201 // WAC-FILESYSTEM-096: Call readAsText() with both callbacks set to null.
2202 function test_file_readAsText_error_096() {
2203 var test_content = "Ala ma kota";
2204 function on_resolve_success(root) {
2205 var file = createFileForParent(root)
2207 function on_openStream_success(stream) {
2208 TestEngine.test("openStream()", isFilestream(stream));
2209 stream.write(test_content);
2212 testNoExceptionWithMessage("readAsText()", function() {
2213 file.readAsText(null, null);
2215 deleteFile(root, file);
2217 function on_openStream_error(err) {
2218 TestEngine.test("openStream() [" + err.code + "]", false);
2219 deleteFile(root, file);
2221 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2222 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2224 resolve_root_location(on_resolve_success);
2227 // WAC-FILESYSTEM-097
2228 // Parameters: successCallback = undefined, others = valid
2229 // Result: INVALID_VALUES_ERR thrown via error callback.
2230 function test_file_readAsText_error_097() {
2231 var test_content = "Ala ma kota";
2232 function on_resolve_success(root) {
2233 var file = createFileForParent(root)
2235 function on_openStream_success(stream) {
2236 TestEngine.test("openStream()", isFilestream(stream));
2237 stream.write(test_content);
2240 function on_readAsText_error(err) {
2241 TestEngine.test("readAsText()", (err.code == INVALID_VALUES_ERR));
2242 deleteFile(root, file);
2245 var cb = TestEngine.registerCallback("readAsText", undefined, on_readAsText_error);
2246 file.readAsText(cb.successCallback, cb.errorCallback, "r");
2248 function on_openStream_error(err) {
2249 TestEngine.test("openStream() [" + err.code + "]", false);
2250 deleteFile(root, file);
2252 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2253 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2255 resolve_root_location(on_resolve_success);
2258 // WAC-FILESYSTEM-098: Call readAsText() with invalid encoding parameter.
2259 function test_file_readAsText_error_098() {
2260 var test_content = "Ala ma kota";
2261 function on_resolve_success(root) {
2262 var file = createFileForParent(root)
2264 function on_openStream_success(stream) {
2265 TestEngine.test("openStream()", isFilestream(stream));
2266 stream.write(test_content);
2269 function on_readAsText_error(err) {
2270 TestEngine.test("readAsText() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2271 deleteFile(root, file);
2273 function on_readAsText_success(str) {
2274 TestEngine.test("readAsText()", false);
2275 deleteFile(root, file);
2277 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2278 file.readAsText(cb.successCallback, cb.errorCallback, "INVALID");
2280 function on_openStream_error(err) {
2281 TestEngine.test("openStream() [" + err.code + "]", false);
2282 deleteFile(root, file);
2284 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2285 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2287 resolve_root_location(on_resolve_success);
2290 // WAC-FILESYSTEM-099: Call deleteDirectory() with error callback set to null.
2291 function test_file_deleteDirectory_099() {
2292 function on_resolve_success(root) {
2293 var dir = createDirForParent(root);
2294 function on_deleteDirectory_success() {
2295 TestEngine.test("deleteDirectory()", true);
2297 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, null);
2298 root.deleteDirectory(cb.successCallback, null, dir.fullPath, true);
2300 resolve_root_location(on_resolve_success);
2303 // WAC-FILESYSTEM-100: Call deleteDirectory() with error callback set to null
2304 // and directory set to invalid value.
2305 function test_file_deleteDirectory_error_100() {
2306 function on_resolve_success(root) {
2307 function on_deleteDirectory_success() {
2308 TestEngine.test("deleteDirectory()", false);
2310 testNoExceptionWithMessage("deleteDirectory()", function() {
2311 // Pass callbacks directly to prevent "widget run timeout".
2312 root.deleteDirectory(on_deleteDirectory_success, null, "../", true);
2315 resolve_root_location(on_resolve_success);
2318 // WAC-FILESYSTEM-101: Call deleteDirectory() with success callback set to null.
2319 function test_file_deleteDirectory_error_101() {
2320 function on_resolve_success(root) {
2321 var dir = createDirForParent(root);
2322 function on_deleteDirectory_error(err) {
2323 TestEngine.test("deleteDirectory() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2324 deleteDirectory(root, dir);
2326 var cb = TestEngine.registerCallback("deleteDirectory", null, on_deleteDirectory_error);
2327 root.deleteDirectory(null, cb.errorCallback, dir.fullPath, true);
2329 resolve_root_location(on_resolve_success);
2332 // WAC-FILESYSTEM-102
2333 // Parameters: successCallback = undefined, others = valid
2334 // Result: INVALID_VALUES_ERR thrown via error callback.
2335 function test_file_deleteDirectory_error_102() {
2336 function on_resolve_success(root) {
2337 var dir = createDirForParent(root);
2338 function on_deleteDirectory_error(err) {
2339 TestEngine.test("deleteDirectory()", (err.code == INVALID_VALUES_ERR));
2340 deleteDirectory(root, dir);
2342 var cb = TestEngine.registerCallback("deleteDirectory", undefined, on_deleteDirectory_error);
2343 root.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
2345 resolve_root_location(on_resolve_success);
2348 // WAC-FILESYSTEM-103
2349 // Parameters: directory = undefined, others = valid
2350 // Result: INVALID_VALUES_ERR thrown via error callback.
2351 function test_file_deleteDirectory_error_103() {
2352 function on_resolve_success(root) {
2353 var dir = createDirForParent(root);
2354 function on_deleteDirectory_error(err) {
2355 TestEngine.test("deleteDirectory()", (err.code == INVALID_VALUES_ERR));
2356 deleteDirectory(root, dir);
2358 function on_deleteDirectory_success() {
2359 TestEngine.test("deleteDirectory()", false);
2360 deleteDirectory(root, dir);
2362 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2363 root.deleteDirectory(cb.successCallback, cb.errorCallback, undefined, true);
2365 resolve_root_location(on_resolve_success);
2368 // WAC-FILESYSTEM-104
2369 // Parameters: recursive = undefined, others = valid
2370 // Result: Test passes.
2371 function test_file_deleteDirectory_error_104() {
2372 function on_resolve_success(root) {
2373 var dir = createDirForParent(root);
2374 function on_deleteDirectory_error(err) {
2375 TestEngine.test("deleteDirectory()", false);
2376 deleteDirectory(root, dir);
2378 function on_deleteDirectory_success() {
2379 TestEngine.test("deleteDirectory()", true);
2382 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2383 root.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, undefined);
2385 resolve_root_location(on_resolve_success);
2388 // WAC-FILESYSTEM-105: Call deleteDirectory() with directory parameter pointing to a file.
2389 function test_file_deleteDirectory_error_105() {
2390 function on_resolve_success(root) {
2391 var file = createFileForParent(root);
2392 function on_deleteDirectory_error(err) {
2393 TestEngine.test("deleteDirectory() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2394 deleteFile(root, file);
2396 function on_deleteDirectory_success() {
2397 TestEngine.test("deleteDirectory()", false);
2398 deleteFile(root, file);
2400 var cb = TestEngine.registerCallback("deleteDirectory", on_deleteDirectory_success, on_deleteDirectory_error);
2401 root.deleteDirectory(cb.successCallback, cb.errorCallback, file.fullPath, true);
2403 resolve_root_location(on_resolve_success);
2406 // WAC-FILESYSTEM-106: Call deleteFile() with error callback set to null.
2407 function test_file_deleteFile_106() {
2408 function on_resolve_success(root) {
2409 var file = createFileForParent(root);
2410 function on_deleteFile_success() {
2411 TestEngine.test("deleteFile()", true);
2413 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, null);
2414 root.deleteFile(cb.successCallback, null, file.fullPath);
2416 resolve_root_location(on_resolve_success);
2419 // WAC-FILESYSTEM-107: Call deleteFile() with error callback set to null
2420 // and file set to invalid value.
2421 function test_file_deleteFile_error_107() {
2422 function on_resolve_success(root) {
2423 function on_deleteFile_success() {
2424 TestEngine.test("deleteFile()", false);
2426 testNoExceptionWithMessage("deleteFile()", function() {
2427 // Pass callbacks directly to prevent "widget run timeout".
2428 root.deleteFile(on_deleteFile_success, null, "../");
2431 resolve_root_location(on_resolve_success);
2434 // WAC-FILESYSTEM-108: Call deleteFile() with success callback set to null.
2435 function test_file_deleteFile_error_108() {
2436 function on_resolve_success(root) {
2437 var file = createFileForParent(root);
2438 function on_deleteFile_error(err) {
2439 TestEngine.test("deleteFile() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2440 deleteFile(root, file);
2442 var cb = TestEngine.registerCallback("deleteFile", null, on_deleteFile_error);
2443 root.deleteFile(null, cb.errorCallback, file.fullPath);
2445 resolve_root_location(on_resolve_success);
2448 // WAC-FILESYSTEM-109
2449 // Parameters: successCallback = undefined, others valid
2450 // Result: INVALID_VALUES_ERR thrown via error callback.
2451 function test_file_deleteFile_error_109() {
2452 function on_resolve_success(root) {
2453 var file = createFileForParent(root);
2454 function on_deleteFile_error(err) {
2455 TestEngine.test("deleteFile()", (err.code == INVALID_VALUES_ERR));
2456 deleteFile(root, file);
2458 var cb = TestEngine.registerCallback("deleteFile", undefined, on_deleteFile_error);
2459 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
2461 resolve_root_location(on_resolve_success);
2464 // WAC-FILESYSTEM-110
2465 // Parameters: file = undefined, others = valid
2466 // Result: INVALID_VALUES_ERR thrown via error callback.
2467 function test_file_deleteFile_error_110() {
2468 function on_resolve_success(root) {
2469 function on_deleteFile_error(err) {
2470 TestEngine.test("deleteFile()", (err.code == INVALID_VALUES_ERR));
2472 function on_deleteFile_success() {
2473 TestEngine.test("deleteFile()", false);
2475 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, on_deleteFile_error);
2476 root.deleteFile(cb.successCallback, cb.errorCallback, undefined);
2478 resolve_root_location(on_resolve_success);
2481 // WAC-FILESYSTEM-111
2482 // Parameters: errorCallback = undefined, others = valid
2483 // Result: Test passes.
2484 function test_file_deleteFile_error_111() {
2485 function on_resolve_success(root) {
2486 var file = createFileForParent(root);
2487 function on_deleteFile_success() {
2488 TestEngine.test("deleteFile()", true);
2490 var cb = TestEngine.registerCallback("deleteFile", on_deleteFile_success, undefined);
2491 root.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
2493 resolve_root_location(on_resolve_success);
2496 // WAC-FILESYSTEM-112
2497 // Parameters: mode = undefined, others = valid
2498 // Result: Test passes.
2499 function test_filesystem_resolve_112() {
2500 function on_resolve_error(err) {
2501 TestEngine.test("resolve() [" + err.code + "]", false);
2503 function on_resolve_success(root) {
2504 TestEngine.test("resolve()", true);
2506 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
2507 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION, undefined);
2510 // WAC-FILESYSTEM-113
2511 // Parameters: encoding = undefined, others = valid
2512 // Result: Test passes.
2513 function test_file_readAsText_113() {
2514 var test_content = "Ala ma kota";
2515 function on_resolve_success(root) {
2516 var file = createFileForParent(root)
2518 function on_openStream_success(stream) {
2519 TestEngine.test("openStream()", isFilestream(stream));
2520 stream.write(test_content);
2523 function on_readAsText_error(err) {
2524 TestEngine.test("readAsText() [" + err.code + "]", false);
2525 deleteFile(root, file);
2527 function on_readAsText_success(str) {
2528 TestEngine.test("readAsText()", (str === test_content));
2529 deleteFile(root, file);
2531 var cb = TestEngine.registerCallback("readAsText", on_readAsText_success, on_readAsText_error);
2532 file.readAsText(cb.successCallback, cb.errorCallback, undefined);
2534 function on_openStream_error(err) {
2535 TestEngine.test("openStream() [" + err.code + "]", false);
2536 deleteFile(root, file);
2538 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2539 file.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
2541 resolve_root_location(on_resolve_success);
2544 // WAC-FILESYSTEM-114
2545 // Parameters: encoding = undefined, others = valid
2546 // Result: INVALID_VALUES_ERR thrown via error callback.
2547 function test_file_open_114() {
2548 function on_resolve_success(root) {
2549 var file = createFileForParent(root);
2550 function on_openStream_error(err) {
2551 TestEngine.test("openStream()", (err.code == INVALID_VALUES_ERR));
2552 deleteFile(root, file);
2554 function on_openStream_success(stream) {
2555 TestEngine.test("openStream()", false);
2557 deleteFile(root, file);
2559 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
2560 var stream = file.openStream(cb.successCallback, cb.errorCallback, "r", undefined);
2562 resolve_root_location(on_resolve_success);
2565 // WAC-FILESYSTEM-115
2566 // Parameters: originFilePath = (empty) directory, overwrite = false
2567 // Result: Test passes.
2568 function test_file_copyTo_115() {
2569 function on_resolve_success(root) {
2570 var dir = createDirForParent(root);
2571 function on_copyTo_error(err) {
2572 TestEngine.test("copyTo() [" + err.code + "]", false);
2573 deleteDirectory(root, dir);
2575 function on_copyTo_success(copy) {
2576 TestEngine.test("copyTo()", isDir(copy));
2577 deleteDirectory(root, copy);
2578 deleteDirectory(root, dir);
2580 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2581 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, root.fullPath + "/" + getDirName(), false);
2583 resolve_root_location(on_resolve_success);
2586 // WAC-FILESYSTEM-116
2587 // Parameters: originFilePath = (non-empty) directory, overwrite = false
2588 // Result: Test passes.
2589 function test_file_copyTo_116() {
2590 function on_resolve_success(root) {
2591 var dir = createDirForParent(root);
2592 var file = createFileForParent(dir);
2593 function on_copyTo_error(err) {
2594 TestEngine.test("copyTo() [" + err.code + "]", false);
2595 deleteDirectory(root, dir);
2597 function on_copyTo_success(copy) {
2598 TestEngine.test("copyTo()", isDir(copy));
2599 var child = copy.resolve(file.name);
2600 TestEngine.test("copyTo()", isFile(child));
2601 deleteDirectory(root, copy);
2602 deleteDirectory(root, dir);
2604 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2605 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, root.fullPath + "/" + getDirName(), false);
2607 resolve_root_location(on_resolve_success);
2610 // WAC-FILESYSTEM-117
2611 // Parameters: originFilePath = undefined, other params = valid.
2612 // Result: INVALID_VALUES_ERR thrown via errorCallback.
2613 function test_file_copyTo_error_117() {
2614 function on_resolve_success(root) {
2615 function on_copyTo_error(err) {
2616 TestEngine.test("copyTo()", (err.code == INVALID_VALUES_ERR));
2618 function on_copyTo_success(copy) {
2619 TestEngine.test("copyTo()", false);
2620 deleteDirectory(root, copy);
2622 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2623 root.copyTo(cb.successCallback, cb.errorCallback, undefined, root.fullPath + "/" + getDirName(), false);
2625 resolve_root_location(on_resolve_success);
2628 // WAC-FILESYSTEM-118
2629 // Parameters: originFilePath = invalid path, overwrite = false
2630 // Result: INVALID_VALUES_ERR returned by error callback.
2631 function test_file_copyTo_error_118() {
2632 function on_resolve_success(root) {
2633 function on_copyTo_error(err) {
2634 TestEngine.test("copyTo() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2636 function on_copyTo_success(copy) {
2637 TestEngine.test("copyTo()", false);
2638 deleteDirectory(root, copy);
2640 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2641 root.copyTo(cb.successCallback, cb.errorCallback, "../", root.fullPath + "/" + getDirName(), false);
2643 resolve_root_location(on_resolve_success);
2646 // WAC-FILESYSTEM-119
2647 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = true
2648 // Result: Test passes (replacing destination directory with a origin file).
2649 function test_file_copyTo_119() {
2650 function on_resolve_success(root) {
2651 var file = createFileForParent(root);
2652 var dir = createDirForParent(root);
2653 function on_copyTo_error(err) {
2654 TestEngine.test("copyTo() [" + err.code + "]", false);
2655 deleteDirectory(root, dir);
2656 deleteFile(root, file);
2658 function on_copyTo_success(copy) {
2659 TestEngine.test("copyTo()", (copy.fullPath == dir.fullPath) && isFile(copy));
2660 deleteFile(root, copy);
2661 deleteFile(root, file);
2663 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2664 root.copyTo(cb.successCallback, cb.errorCallback, file.fullPath, dir.fullPath, true);
2666 resolve_root_location(on_resolve_success);
2669 // WAC-FILESYSTEM-120
2670 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = false
2671 // Result: IO_ERR passed via error callback.
2672 function test_file_copyTo_error_120() {
2673 function on_resolve_success(root) {
2674 var file = createFileForParent(root);
2675 var dir = createDirForParent(root);
2676 function on_copyTo_error(err) {
2677 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2678 deleteDirectory(root, dir);
2679 deleteFile(root, file);
2681 function on_copyTo_success(copy) {
2682 TestEngine.test("copyTo()", false);
2683 deleteFile(root, copy);
2684 deleteFile(root, file);
2686 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2687 root.copyTo(cb.successCallback, cb.errorCallback, file.fullPath, dir.fullPath, false);
2689 resolve_root_location(on_resolve_success);
2692 // WAC-FILESYSTEM-121
2693 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = true
2694 // Result: Test passes (replacing destination file with a origin directory).
2695 function test_file_copyTo_121() {
2696 function on_resolve_success(root) {
2697 var file = createFileForParent(root);
2698 var dir = createDirForParent(root);
2699 var child = createFileForParent(dir);
2700 function on_copyTo_error(err) {
2701 TestEngine.test("copyTo() [" + err.code + "]", false);
2702 deleteDirectory(root, dir);
2703 deleteFile(root, file);
2705 function on_copyTo_success(copy) {
2706 TestEngine.test("copyTo()", (copy.fullPath == file.fullPath) && isDir(copy));
2707 TestEngine.test("resolve()", isFile(copy.resolve(child.name)));
2708 deleteDirectory(root, copy);
2709 deleteDirectory(root, dir);
2711 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2712 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, file.fullPath, true);
2714 resolve_root_location(on_resolve_success);
2717 // WAC-FILESYSTEM-122
2718 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = false
2719 // Result: IO_ERR passed via error callback.
2720 function test_file_copyTo_error_122() {
2721 function on_resolve_success(root) {
2722 var file = createFileForParent(root);
2723 var dir = createDirForParent(root);
2724 function on_copyTo_error(err) {
2725 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2726 deleteDirectory(root, dir);
2727 deleteFile(root, file);
2729 function on_copyTo_success(copy) {
2730 TestEngine.test("copyTo()", false);
2731 deleteDirectory(root, copy);
2732 deleteDirectory(root, dir);
2734 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2735 root.copyTo(cb.successCallback, cb.errorCallback, dir.fullPath, file.fullPath, false);
2737 resolve_root_location(on_resolve_success);
2740 // WAC-FILESYSTEM-123
2741 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = true
2742 // Result: Test passes (replacing destination directory with a origin directory).
2743 function test_file_copyTo_123() {
2744 function on_resolve_success(root) {
2745 var src = createDirForParent(root);
2746 var dest = createDirForParent(root);
2747 var child = createFileForParent(src);
2748 function on_copyTo_error(err) {
2749 TestEngine.test("copyTo() [" + err.code + "]", false);
2750 deleteDirectory(root, src);
2751 deleteDirectory(root, dest);
2753 function on_copyTo_success(copy) {
2754 TestEngine.test("copyTo()", (copy.fullPath == dest.fullPath) && isDir(copy));
2755 TestEngine.test("resolve()", isFile(copy.resolve(child.name)));
2756 deleteDirectory(root, copy);
2757 deleteDirectory(root, src);
2759 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2760 root.copyTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2762 resolve_root_location(on_resolve_success);
2765 // WAC-FILESYSTEM-124
2766 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = false
2767 // Result: IO_ERR passed via error callback.
2768 function test_file_copyTo_error_124() {
2769 function on_resolve_success(root) {
2770 var src = createDirForParent(root);
2771 var dest = createDirForParent(root);
2772 function on_copyTo_error(err) {
2773 TestEngine.test("copyTo() [" + err.code + "]", (err.code == IO_ERR));
2774 deleteDirectory(root, src);
2775 deleteDirectory(root, dest);
2777 function on_copyTo_success(copy) {
2778 TestEngine.test("copyTo()", false);
2779 deleteDirectory(root, copy);
2780 deleteDirectory(root, src);
2782 var cb = TestEngine.registerCallback("copyTo", on_copyTo_success, on_copyTo_error);
2783 root.copyTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2785 resolve_root_location(on_resolve_success);
2788 // WAC-FILESYSTEM-125
2789 // Parameters: originFilePath = (empty) directory, overwrite = false
2790 // Result: Test passes.
2791 function test_file_moveTo_125() {
2792 function on_resolve_success(root) {
2793 var src = createDirForParent(root);
2794 var dest = root.fullPath + "/" + getDirName();
2795 function on_moveTo_error(err) {
2796 TestEngine.test("moveTo() [" + err.code + "]", false);
2797 deleteDirectory(root, src);
2799 function on_moveTo_success(result) {
2800 TestEngine.test("moveTo()", isDir(result));
2801 TestEngine.testPresetError(
2802 "resolve() [NOT_FOUND_ERR]",
2803 function() { root.resolve(src.name) },
2806 deleteDirectory(root, result);
2808 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2809 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest, false);
2811 resolve_root_location(on_resolve_success);
2814 // WAC-FILESYSTEM-126
2815 // Parameters: originFilePath = (non-empty) directory, overwrite = false
2816 // Result: Test passes.
2817 function test_file_moveTo_126() {
2818 function on_resolve_success(root) {
2819 var src = createDirForParent(root);
2820 var file = createFileForParent(src);
2821 var dest = root.fullPath + "/" + getDirName();
2822 function on_moveTo_error(err) {
2823 TestEngine.test("moveTo() [" + err.code + "]", false);
2824 deleteDirectory(root, src);
2826 function on_moveTo_success(result) {
2827 TestEngine.test("moveTo()", isDir(result));
2828 var child = result.resolve(file.name);
2829 TestEngine.test("resolve()", isFile(child));
2830 TestEngine.testPresetError(
2831 "resolve() [NOT_FOUND_ERR]",
2832 function() { root.resolve(src.name) },
2835 deleteDirectory(root, result);
2837 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2838 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest, false);
2840 resolve_root_location(on_resolve_success);
2843 // WAC-FILESYSTEM-127
2844 // Parameters: originFilePath = undefined, other params = valid.
2845 // Result: INVALID_VALUES_ERR thrown via errorCallback.
2846 function test_file_moveTo_error_127() {
2847 function on_resolve_success(root) {
2848 var dest = root.fullPath + "/" + getDirName();
2849 function on_moveTo_error(err) {
2850 TestEngine.test("moveTo()", (err.code == INVALID_VALUES_ERR));
2852 function on_moveTo_success(result) {
2853 TestEngine.test("moveTo()", false);
2855 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2856 root.moveTo(cb.successCallback, cb.errorCallback, undefined, dest, false);
2858 resolve_root_location(on_resolve_success);
2861 // WAC-FILESYSTEM-128
2862 // Parameters: originFilePath = invalid path, overwrite = false
2863 // Result: INVALID_VALUES_ERR returned by error callback.
2864 function test_file_moveTo_error_128() {
2865 function on_resolve_success(root) {
2867 var dest = root.fullPath + "/" + getDirName();
2868 function on_moveTo_error(err) {
2869 TestEngine.test("moveTo() [" + err.code + "]", (err.code == INVALID_VALUES_ERR));
2871 function on_moveTo_success(result) {
2872 TestEngine.test("moveTo()", false);
2874 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2875 root.moveTo(cb.successCallback, cb.errorCallback, src, dest, false);
2877 resolve_root_location(on_resolve_success);
2880 // WAC-FILESYSTEM-129
2881 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = true
2882 // Result: IO_ERR passed via error callback.
2883 function test_file_moveTo_129() {
2884 function on_resolve_success(root) {
2885 var src = createFileForParent(root);
2886 var dest = createDirForParent(root);
2887 function on_moveTo_error(err) {
2888 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2889 deleteFile(root, src);
2890 deleteDirectory(root, dest);
2892 function on_moveTo_success(result) {
2893 TestEngine.test("moveTo()", false);
2894 deleteFile(root, result);
2896 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2897 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2899 resolve_root_location(on_resolve_success);
2902 // WAC-FILESYSTEM-130
2903 // Parameters: originFilePath = valid file, destinationFilePath = valid directory, overwrite = false
2904 // Result: IO_ERR passed via error callback.
2905 function test_file_moveTo_error_130() {
2906 function on_resolve_success(root) {
2907 var src = createFileForParent(root);
2908 var dest = createDirForParent(root);
2909 function on_moveTo_error(err) {
2910 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2911 deleteFile(root, src);
2912 deleteDirectory(root, dest);
2914 function on_moveTo_success(result) {
2915 TestEngine.test("moveTo()", false);
2916 deleteFile(root, result);
2918 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2919 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2921 resolve_root_location(on_resolve_success);
2924 // WAC-FILESYSTEM-131
2925 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = true
2926 // Result: IO_ERR passed via error callback.
2927 function test_file_moveTo_131() {
2928 function on_resolve_success(root) {
2929 var src = createDirForParent(root);
2930 var child = createFileForParent(src);
2931 var dest = createFileForParent(root);
2932 function on_moveTo_error(err) {
2933 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2934 deleteDirectory(root, src);
2935 deleteFile(root, dest);
2937 function on_moveTo_success(result) {
2938 TestEngine.test("moveTo()", false);
2939 deleteFile(root, result);
2941 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2942 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2944 resolve_root_location(on_resolve_success);
2947 // WAC-FILESYSTEM-132
2948 // Parameters: originFilePath = valid directory, destinationFilePath = valid file, overwrite = false
2949 // Result: IO_ERR passed via error callback.
2950 function test_file_moveTo_error_132() {
2951 function on_resolve_success(root) {
2952 var src = createDirForParent(root);
2953 var child = createFileForParent(src);
2954 var dest = createFileForParent(root);
2955 function on_moveTo_error(err) {
2956 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
2957 deleteDirectory(root, src);
2958 deleteFile(root, dest);
2960 function on_moveTo_success(result) {
2961 TestEngine.test("moveTo()", false);
2962 deleteDirectory(root, result);
2964 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2965 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
2967 resolve_root_location(on_resolve_success);
2970 // WAC-FILESYSTEM-133
2971 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = true
2972 // Result: Test passes (replacing destination directory with a origin directory).
2973 function test_file_moveTo_133() {
2974 function on_resolve_success(root) {
2975 var src = createDirForParent(root);
2976 var child = createFileForParent(src);
2977 var dest = createDirForParent(root);
2978 function on_moveTo_error(err) {
2979 TestEngine.test("moveTo() [" + err.code + "]", false);
2980 deleteDirectory(root, src);
2981 deleteDirectory(root, dest);
2983 function on_moveTo_success(result) {
2984 TestEngine.test("moveTo()", (result.fullPath == dest.fullPath) && isDir(result));
2985 TestEngine.test("resolve()", isFile(result.resolve(child.name)));
2986 TestEngine.testPresetError(
2987 "resolve() [NOT_FOUND_ERR]",
2988 function() { root.resolve(src.name); },
2991 deleteDirectory(root, result);
2993 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
2994 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, true);
2996 resolve_root_location(on_resolve_success);
2999 // WAC-FILESYSTEM-134
3000 // Parameters: originFilePath = valid directory, destinationFilePath = valid directory, overwrite = false
3001 // Result: IO_ERR passed via error callback.
3002 function test_file_moveTo_error_134() {
3003 function on_resolve_success(root) {
3004 var src = createDirForParent(root);
3005 var child = createFileForParent(src);
3006 var dest = createDirForParent(root);
3007 function on_moveTo_error(err) {
3008 TestEngine.test("moveTo() [" + err.code + "]", (err.code == IO_ERR));
3009 deleteDirectory(root, src);
3010 deleteDirectory(root, dest);
3012 function on_moveTo_success(result) {
3013 TestEngine.test("moveTo()", false);
3014 deleteDirectory(root, result);
3016 var cb = TestEngine.registerCallback("moveTo", on_moveTo_success, on_moveTo_error);
3017 root.moveTo(cb.successCallback, cb.errorCallback, src.fullPath, dest.fullPath, false);
3019 resolve_root_location(on_resolve_success);
3022 // WAC-FILESYSTEM-135
3023 // Parameters: filePath = valid path to an existing file
3024 // Result: Test passes.
3025 function test_file_resolve_135() {
3026 function on_resolve_success(root) {
3027 var file = createFileForParent(root);
3028 var resolved = root.resolve(file.name);
3029 TestEngine.test("resolve()", isFile(resolved) && (file.fullPath == resolved.fullPath));
3030 deleteFile(root, file);
3032 resolve_root_location(on_resolve_success);
3035 // WAC-FILESYSTEM-136
3036 // Parameters: filePath = valid path to non-existing file
3037 // Result: NOT_FOUND_ERR thrown in place.
3038 function test_file_resolve_error_136() {
3039 function on_resolve_success(root) {
3040 var fileNotExist = getFileName();
3041 TestEngine.testPresetError(
3042 "resolve() [NOT_FOUND_ERR]",
3043 function() { root.resolve(fileNotExist); },
3047 resolve_root_location(on_resolve_success);
3050 // WAC-FILESYSTEM-137
3051 // Parameters: filePath = invalid path
3052 // Result: NOT_FOUND_ERR thrown in place.
3053 function test_file_resolve_error_137() {
3054 function on_resolve_success(root) {
3055 var invalidPath = "../";
3056 TestEngine.testPresetError(
3057 "resolve() [INVALID_VALUES_ERR]",
3058 function() { root.resolve(invalidPath); },
3062 resolve_root_location(on_resolve_success);
3065 // WAC-FILESYSTEM-138: Open file in append mode and test append mode.
3066 function test_file_append_behaviour_138() {
3067 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3068 function on_resolve_success(file) {
3069 var file2 = file.createFile(getFileName());
3070 TestEngine.test("createFile()", isFile(file2));
3071 function on_openStream_success(stream) {
3072 function on_openStream_success2(stream) {
3073 function on_openStream_success3(stream) {
3074 var array = stream.readBytes(4);
3075 TestEngine.test("readBytes(4)", array.length === 4);
3076 TestEngine.test("array[0]", array[0] === 1);
3077 TestEngine.test("array[1]", array[1] === 2);
3078 TestEngine.test("array[2]", array[2] === 3);
3079 TestEngine.test("array[3]", array[3] === 4);
3081 deleteFile(file, file2);
3083 TestEngine.test("openStream()", isFilestream(stream));
3084 stream.writeBytes([3, 4]);
3086 //reopen in read mode
3087 var cb = TestEngine.registerCallback("openStream", on_openStream_success3, on_openStream_error);
3088 file2.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
3090 TestEngine.test("openStream()", isFilestream(stream));
3091 stream.writeBytes([1, 2]);
3093 //reopen again in append mode
3094 var cb = TestEngine.registerCallback("openStream", on_openStream_success2, on_openStream_error);
3095 file2.openStream(cb.successCallback, cb.errorCallback, "a", "UTF-8");
3097 function on_openStream_error(err) {
3098 TestEngine.test("openStream() [" + err.code + "]", false);
3100 var cb = TestEngine.registerCallback("openStream", on_openStream_success, on_openStream_error);
3101 file2.openStream(cb.successCallback, cb.errorCallback, "a", "UTF-8");
3103 resolve_root(on_resolve_success, on_resolve_error);
3106 // WAC-FILESYSTEM-139: Set postion.
3107 function test_file_set_position_139() {
3108 function on_resolve_error(err) {
3109 TestEngine.test("resolve() [" + err.code + "]", false);
3111 function on_resolve_success(file) {
3112 function on_openStream_success(stream) {
3113 function on_openStream_success2(stream) {
3114 TestEngine.test("Correct postion after opening",
3115 stream.position === 0);
3116 var array = stream.readBytes(5);
3117 TestEngine.test("Correct number of bytes read", array.length === 4);
3118 TestEngine.test("Correct values of bytes read", array[0] === 5 &&
3119 array[1] === 6 && array[2] === 7 && array[3] === 8);
3120 stream.position = 2;
3121 array = stream.readBytes(1);
3122 TestEngine.test("Correct values of bytes read at pos 2",
3123 array.length === 1 && array[0] === 7);
3124 stream.position = 1;
3125 array = stream.readBytes(1);
3126 TestEngine.test("Correct values of bytes read at pos 1",
3127 array.length === 1 && array[0] === 6);
3128 stream.position = 0;
3129 array = stream.readBytes(1);
3130 TestEngine.test("Correct values of bytes read at pos 0",
3131 array.length === 1 && array[0] === 5);
3132 stream.position = 3;
3133 array = stream.readBytes(1);
3134 TestEngine.test("Correct values of bytes read at pos 3",
3135 array.length === 1 && array[0] === 8);
3137 deleteFile(file, file2);
3139 TestEngine.test("openStream()", isFilestream(stream));
3140 TestEngine.test("Correct postion after opening",
3141 stream.position === 0);
3142 stream.writeBytes([1, 2, 3, 4]);
3143 TestEngine.test("Correct postion after write ", stream.position === 4);
3144 stream.position = 0;
3145 TestEngine.test("Correct postion after setting postion",
3146 stream.position === 0);
3147 stream.writeBytes([5, 6, 7, 8]);
3149 var cb = TestEngine.registerCallback("openStream",
3150 on_openStream_success2, on_openStream_error);
3151 file2.openStream(cb.successCallback, cb.errorCallback, "r", "UTF-8");
3153 function on_openStream_error(err) {
3154 TestEngine.test("openStream() [" + err.code + "]", false);
3156 var file2 = file.createFile(getFileName());
3157 TestEngine.test("createFile()", isFile(file2));
3158 var cb = TestEngine.registerCallback("openStream",
3159 on_openStream_success, on_openStream_error);
3160 file2.openStream(cb.successCallback, cb.errorCallback, "w", "UTF-8");
3162 resolve_root(on_resolve_success, on_resolve_error);
3165 // WAC2-FILESYSTEM-140: Resolve wgt-package in rw mode.
3166 // Result: UNKNOWN_ERR thrown via error callback.
3167 function test_filesystem_resolve_error_140() {
3168 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", (err.code == UNKNOWN_ERR)); }
3169 function on_resolve_success(file) { TestEngine.test("resolve()", false);}
3170 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3171 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package', 'rw');
3174 // WAC2-FILESYSTEM-141: Resolve wgt-package/config.xml in rw mode.
3175 // Result: UNKNOWN_ERR thrown via error callback.
3176 function test_filesystem_resolve_error_141() {
3177 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", (err.code == UNKNOWN_ERR)); }
3178 function on_resolve_success(file) { TestEngine.test("resolve()", false);}
3179 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3180 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package/config.xml', 'rw');
3183 // WAC2-FILESYSTEM-142: Resolve wgt-package in r mode.
3185 function test_filesystem_resolve_142() {
3186 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3187 function on_resolve_success(file) { TestEngine.test("resolve()", isFileObject(file));}
3188 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3189 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package', 'r');
3192 // WAC2-FILESYSTEM-143: Resolve wgt-package/config.xml in r mode.
3194 function test_filesystem_resolve_143() {
3195 function on_resolve_error(err) { TestEngine.test("resolve() [" + err.code + "]", false); }
3196 function on_resolve_success(file) { TestEngine.test("resolve()", isFileObject(file));}
3197 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3198 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, 'wgt-package/config.xml', 'r');
3201 //=============================================================================
3202 TestEngine.setTestSuiteName("[WAC2.0][Filesystem]");
3203 //TestEngine.addTest(true, test_filesystem_properties_001, "WAC-FILESYSTEM-001");
3204 //TestEngine.addTest(true, test_filesystem_resolve_002, "WAC-FILESYSTEM-002");
3205 //TestEngine.addTest(true, test_filesystem_resolve_003, "WAC-FILESYSTEM-003");
3206 //TestEngine.addTest(true, test_file_listFiles_004, "WAC-FILESYSTEM-004");
3207 //TestEngine.addTest(true, test_file_open_005, "WAC-FILESYSTEM-005");
3208 //TestEngine.addTest(true, test_file_open_006, "WAC-FILESYSTEM-006");
3209 //TestEngine.addTest(true, test_file_open_007, "WAC-FILESYSTEM-007");
3210 //TestEngine.addTest(true, test_file_open_error_008, "WAC-FILESYSTEM-008");
3211 //TestEngine.addTest(true, test_file_open_error_009, "WAC-FILESYSTEM-009");
3212 //TestEngine.addTest(true, test_file_copyTo_010, "WAC-FILESYSTEM-010");
3213 //TestEngine.addTest(true, test_file_copyTo_error_011, "WAC-FILESYSTEM-011");
3214 //TestEngine.addTest(true, test_file_copyTo_012, "WAC-FILESYSTEM-012");
3215 //TestEngine.addTest(true, test_file_createFile_013, "WAC-FILESYSTEM-013");
3216 //TestEngine.addTest(true, test_file_createFile_error_014, "WAC-FILESYSTEM-014");
3217 //TestEngine.addTest(true, test_file_createFile_error_015, "WAC-FILESYSTEM-015");
3218 //TestEngine.addTest(true, test_file_createFile_error_016, "WAC-FILESYSTEM-016");
3219 //TestEngine.addTest(true, test_file_createFile_error_017, "WAC-FILESYSTEM-017");
3220 //TestEngine.addTest(true, test_file_createDirectory_018, "WAC-FILESYSTEM-018");
3221 //TestEngine.addTest(true, test_file_createDirectory_error_019, "WAC-FILESYSTEM-019");
3222 //TestEngine.addTest(true, test_file_createDirectory_error_020, "WAC-FILESYSTEM-020");
3223 //TestEngine.addTest(true, test_file_createDirectory_error_021, "WAC-FILESYSTEM-021");
3224 //TestEngine.addTest(true, test_file_createDirectory_error_022, "WAC-FILESYSTEM-022");
3225 //TestEngine.addTest(true, test_file_moveTo_023, "WAC-FILESYSTEM-023");
3226 //TestEngine.addTest(true, test_file_moveTo_error_024, "WAC-FILESYSTEM-024");
3227 //TestEngine.addTest(true, test_file_moveTo_025, "WAC-FILESYSTEM-025");
3228 //TestEngine.addTest(true, test_file_deleteFile_026, "WAC-FILESYSTEM-026");
3229 //TestEngine.addTest(true, test_file_deleteFile_error_027, "WAC-FILESYSTEM-027");
3230 //TestEngine.addTest(true, test_file_deleteFile_error_028, "WAC-FILESYSTEM-028");
3231 //TestEngine.addTest(true, test_file_deleteFile_error_029, "WAC-FILESYSTEM-029");
3232 //TestEngine.addTest(true, test_file_deleteFile_error_030, "WAC-FILESYSTEM-030");
3233 //TestEngine.addTest(true, test_file_deleteDirectory_031, "WAC-FILESYSTEM-031");
3234 //TestEngine.addTest(true, test_file_deleteDirectory_error_032, "WAC-FILESYSTEM-032");
3235 //TestEngine.addTest(true, test_file_deleteDirectory_error_033, "WAC-FILESYSTEM-033");
3236 //TestEngine.addTest(true, test_file_deleteDirectory_error_034, "WAC-FILESYSTEM-034");
3237 //TestEngine.addTest(true, test_filestream_write_read_035, "WAC-FILESYSTEM-035");
3238 TestEngine.addTest(true, test_filestream_read_error_036, "WAC-FILESYSTEM-036");
3239 //TestEngine.addTest(true, test_filestream_read_error_037, "WAC-FILESYSTEM-037");
3240 //TestEngine.addTest(true, test_file_open_error_038, "WAC-FILESYSTEM-038");
3241 //TestEngine.addTest(true, test_filestream_read_error_040, "WAC-FILESYSTEM-040");
3242 //TestEngine.addTest(true, test_filestream_write_error_041, "WAC-FILESYSTEM-041");
3243 //TestEngine.addTest(true, test_filestream_write_error_042, "WAC-FILESYSTEM-042");
3244 //TestEngine.addTest(true, test_filestream_write_error_043, "WAC-FILESYSTEM-043");
3245 //TestEngine.addTest(true, test_filestream_write_error_044, "WAC-FILESYSTEM-044");
3246 //TestEngine.addTest(true, test_filestream_read_error_045, "WAC-FILESYSTEM-045");
3247 //TestEngine.addTest(true, test_filestream_read_error_046, "WAC-FILESYSTEM-046");
3248 //TestEngine.addTest(true, test_filestream_writeBytes_readBytes_047, "WAC-FILESYSTEM-047");
3249 //TestEngine.addTest(true, test_filestream_readBytes_error_048, "WAC-FILESYSTEM-048");
3250 //TestEngine.addTest(true, test_filestream_readBytes_error_049, "WAC-FILESYSTEM-049");
3251 //TestEngine.addTest(true, test_filestream_readBytes_error_051, "WAC-FILESYSTEM-051");
3252 //TestEngine.addTest(true, test_filestream_readBytes_error_052, "WAC-FILESYSTEM-052");
3253 //TestEngine.addTest(true, test_filestream_readBytes_error_053, "WAC-FILESYSTEM-053");
3254 //TestEngine.addTest(true, test_filestream_writeBytes_error_054, "WAC-FILESYSTEM-054");
3255 //TestEngine.addTest(true, test_filestream_writeBytes_error_055, "WAC-FILESYSTEM-055");
3256 //TestEngine.addTest(true, test_filestream_writeBytes_error_056, "WAC-FILESYSTEM-056");
3257 //TestEngine.addTest(true, test_filestream_writeBytes_057, "WAC-FILESYSTEM-057");
3258 //TestEngine.addTest(true, test_filestream_writeBase64_readBase64_058, "WAC-FILESYSTEM-058");
3259 //TestEngine.addTest(true, test_filestream_writeBase64_read_059, "WAC-FILESYSTEM-059");
3260 //TestEngine.addTest(true, test_filestream_write_readBase64_060, "WAC-FILESYSTEM-060");
3261 //TestEngine.addTest(true, test_filestream_readBase64_error_061, "WAC-FILESYSTEM-061");
3262 //TestEngine.addTest(true, test_filestream_readBase64_error_062, "WAC-FILESYSTEM-062");
3263 //TestEngine.addTest(true, test_filestream_readBase64_error_064, "WAC-FILESYSTEM-064");
3264 //TestEngine.addTest(true, test_filestream_readBase64_error_065, "WAC-FILESYSTEM-065");
3265 //TestEngine.addTest(true, test_filestream_readBase64_error_066, "WAC-FILESYSTEM-066");
3266 //TestEngine.addTest(true, test_filestream_writeBase64_error_067, "WAC-FILESYSTEM-067");
3267 //TestEngine.addTest(true, test_filestream_writeBase64_error_068, "WAC-FILESYSTEM-068");
3268 //TestEngine.addTest(true, test_filestream_writeBase64_error_069, "WAC-FILESYSTEM-069");
3269 //TestEngine.addTest(true, test_filestream_writeBase64_error_070, "WAC-FILESYSTEM-070");
3270 //TestEngine.addTest(true, test_file_createFile_error_071, "WAC-FILESYSTEM-071");
3271 //TestEngine.addTest(true, test_file_deleteFile_error_072, "WAC-FILESYSTEM-072");
3272 //TestEngine.addTest(true, test_file_deleteDirectory_error_073, "WAC-FILESYSTEM-073");
3273 //TestEngine.addTest(true, test_file_moveTo_error_074, "WAC-FILESYSTEM-074");
3274 //TestEngine.addTest(true, test_file_openStream_error_075, "WAC-FILESYSTEM-075");
3275 //TestEngine.addTest(true, test_file_readAsText_076, "WAC-FILESYSTEM-076");
3276 //TestEngine.addTest(true, test_file_readAsText_error_077, "WAC-FILESYSTEM-077");
3277 //TestEngine.addTest(true, test_file_readAsText_error_078, "WAC-FILESYSTEM-078");
3278 //TestEngine.addTest(true, test_file_toUri_079, "WAC-FILESYSTEM-079");
3279 //TestEngine.addTest(true, test_filesystem_resolve_080, "WAC-FILESYSTEM-080");
3280 //TestEngine.addTest(true, test_file_listFiles_081, "WAC-FILESYSTEM-081");
3281 //TestEngine.addTest(true, test_file_listFiles_082, "WAC-FILESYSTEM-082");
3282 //TestEngine.addTest(true, test_file_listFiles_error_083, "WAC-FILESYSTEM-083");
3283 //TestEngine.addTest(true, test_file_listFiles_error_084, "WAC-FILESYSTEM-084");
3284 //TestEngine.addTest(true, test_file_listFiles_error_085, "WAC-FILESYSTEM-085");
3285 //TestEngine.addTest(true, test_file_listFiles_error_086, "WAC-FILESYSTEM-086");
3286 //TestEngine.addTest(true, test_file_open_087, "WAC-FILESYSTEM-087");
3287 //TestEngine.addTest(true, test_file_open_error_088, "WAC-FILESYSTEM-088");
3288 //TestEngine.addTest(true, test_file_open_error_089, "WAC-FILESYSTEM-089");
3289 //TestEngine.addTest(true, test_file_open_error_090, "WAC-FILESYSTEM-090");
3290 //TestEngine.addTest(true, test_file_readAsText_091, "WAC-FILESYSTEM-091");
3291 //TestEngine.addTest(true, test_file_readAsText_092, "WAC-FILESYSTEM-092");
3292 //TestEngine.addTest(true, test_file_readAsText_093, "WAC-FILESYSTEM-093");
3293 //TestEngine.addTest(true, test_file_readAsText_094, "WAC-FILESYSTEM-094");
3294 //TestEngine.addTest(true, test_file_readAsText_error_095, "WAC-FILESYSTEM-095");
3295 //TestEngine.addTest(true, test_file_readAsText_error_096, "WAC-FILESYSTEM-096");
3296 //TestEngine.addTest(true, test_file_readAsText_error_097, "WAC-FILESYSTEM-097");
3297 //TestEngine.addTest(true, test_file_readAsText_error_098, "WAC-FILESYSTEM-098");
3298 //TestEngine.addTest(true, test_file_deleteDirectory_099, "WAC-FILESYSTEM-099");
3299 //TestEngine.addTest(true, test_file_deleteDirectory_error_100, "WAC-FILESYSTEM-100");
3300 //TestEngine.addTest(true, test_file_deleteDirectory_error_101, "WAC-FILESYSTEM-101");
3301 //TestEngine.addTest(true, test_file_deleteDirectory_error_102, "WAC-FILESYSTEM-102");
3302 //TestEngine.addTest(true, test_file_deleteDirectory_error_103, "WAC-FILESYSTEM-103");
3303 //TestEngine.addTest(true, test_file_deleteDirectory_error_104, "WAC-FILESYSTEM-104");
3304 //TestEngine.addTest(true, test_file_deleteDirectory_error_105, "WAC-FILESYSTEM-105");
3305 //TestEngine.addTest(true, test_file_deleteFile_106, "WAC-FILESYSTEM-106");
3306 //TestEngine.addTest(true, test_file_deleteFile_error_107, "WAC-FILESYSTEM-107");
3307 //TestEngine.addTest(true, test_file_deleteFile_error_108, "WAC-FILESYSTEM-108");
3308 //TestEngine.addTest(true, test_file_deleteFile_error_109, "WAC-FILESYSTEM-109");
3309 //TestEngine.addTest(true, test_file_deleteFile_error_110, "WAC-FILESYSTEM-110");
3310 //TestEngine.addTest(true, test_file_deleteFile_error_111, "WAC-FILESYSTEM-111");
3311 //TestEngine.addTest(true, test_filesystem_resolve_112, "WAC-FILESYSTEM-112");
3312 //TestEngine.addTest(true, test_file_readAsText_113, "WAC-FILESYSTEM-113");
3313 //TestEngine.addTest(true, test_file_open_114, "WAC-FILESYSTEM-114");
3314 //TestEngine.addTest(true, test_file_copyTo_115, "WAC-FILESYSTEM-115");
3315 //TestEngine.addTest(true, test_file_copyTo_116, "WAC-FILESYSTEM-116");
3316 //TestEngine.addTest(true, test_file_copyTo_error_117, "WAC-FILESYSTEM-117");
3317 //TestEngine.addTest(true, test_file_copyTo_error_118, "WAC-FILESYSTEM-118");
3318 //TestEngine.addTest(true, test_file_copyTo_119, "WAC-FILESYSTEM-119");
3319 //TestEngine.addTest(true, test_file_copyTo_error_120, "WAC-FILESYSTEM-120");
3320 //TestEngine.addTest(true, test_file_copyTo_121, "WAC-FILESYSTEM-121");
3321 //TestEngine.addTest(true, test_file_copyTo_error_122, "WAC-FILESYSTEM-122");
3322 //TestEngine.addTest(true, test_file_copyTo_123, "WAC-FILESYSTEM-123");
3323 //TestEngine.addTest(true, test_file_copyTo_error_124, "WAC-FILESYSTEM-124");
3324 //TestEngine.addTest(true, test_file_moveTo_125, "WAC-FILESYSTEM-125");
3325 //TestEngine.addTest(true, test_file_moveTo_126, "WAC-FILESYSTEM-126");
3326 //TestEngine.addTest(true, test_file_moveTo_error_127, "WAC-FILESYSTEM-127");
3327 //TestEngine.addTest(true, test_file_moveTo_error_128, "WAC-FILESYSTEM-128");
3328 //TestEngine.addTest(true, test_file_moveTo_129, "WAC-FILESYSTEM-129");
3329 //TestEngine.addTest(true, test_file_moveTo_error_130, "WAC-FILESYSTEM-130");
3330 //TestEngine.addTest(true, test_file_moveTo_131, "WAC-FILESYSTEM-131");
3331 //TestEngine.addTest(true, test_file_moveTo_error_132, "WAC-FILESYSTEM-132");
3332 //TestEngine.addTest(true, test_file_moveTo_133, "WAC-FILESYSTEM-133");
3333 //TestEngine.addTest(true, test_file_moveTo_error_134, "WAC-FILESYSTEM-134");
3334 //TestEngine.addTest(true, test_file_resolve_135, "WAC-FILESYSTEM-135");
3335 //TestEngine.addTest(true, test_file_resolve_error_136, "WAC-FILESYSTEM-136");
3336 //TestEngine.addTest(true, test_file_resolve_error_137, "WAC-FILESYSTEM-137");
3337 //TestEngine.addTest(true, test_file_append_behaviour_138, "WAC-FILESYSTEM-138");
3338 //TestEngine.addTest(true, test_file_set_position_139, "WAC-FILESYSTEM-139");
3339 //TestEngine.addTest(true, test_filesystem_resolve_error_140, "WAC-FILESYSTEM-140");
3340 //TestEngine.addTest(true, test_filesystem_resolve_error_141, "WAC-FILESYSTEM-141");
3341 //TestEngine.addTest(true, test_filesystem_resolve_142, "WAC-FILESYSTEM-142");
3342 //TestEngine.addTest(true, test_filesystem_resolve_143, "WAC-FILESYSTEM-143");
3344 //=============================================================================
3345 // --------------------------| Utilities
3347 function isFileObject(obj) {
3348 return (obj instanceof deviceapis.filesystem.File);
3351 function isFile(obj) {
3352 return (isFileObject(obj) && !obj.isDirectory);
3355 function isDir(obj) {
3356 return (isFileObject(obj) && obj.isDirectory);
3359 function isFilestream(obj) {
3360 return (obj instanceof deviceapis.filesystem.FileStream);
3363 function deleteDirectory(parent, dir) {
3364 function on_error(err) {
3365 TestEngine.test("deleteDirectory() [" + err.code + "]", false);
3367 function on_success() {
3368 TestEngine.test("deleteDirectory()", true);
3370 var cb = TestEngine.registerCallback("deleteDirectory", on_success, on_error);
3371 parent.deleteDirectory(cb.successCallback, cb.errorCallback, dir.fullPath, true);
3374 function deleteFile(parent, file) {
3375 function on_error(err) {
3376 TestEngine.test("deleteFile() [" + err.code + "]", false);
3378 function on_success() {
3379 TestEngine.test("deleteFile()", true);
3381 var cb = TestEngine.registerCallback("deleteFile", on_success, on_error);
3382 parent.deleteFile(cb.successCallback, cb.errorCallback, file.fullPath);
3385 // For common behaviour use resolve_root_location
3386 function resolve_root(on_success_callback, on_error_callback) {
3387 var cb = TestEngine.registerCallback("resolve", on_success_callback, on_error_callback);
3388 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION);
3391 function resolve_root_location(handler) {
3392 function on_resolve_error(err) {
3393 TestEngine.test("resolve() [" + err.code + "]", false);
3395 function on_resolve_success(file) {
3396 TestEngine.test("resolve()", isFileObject(file));
3399 var cb = TestEngine.registerCallback("resolve", on_resolve_success, on_resolve_error);
3400 deviceapis.filesystem.resolve(cb.successCallback, cb.errorCallback, TEST_ROOT_LOCATION);
3405 function getFileName() {
3406 var nr = Math.floor(Math.random() * 1000);
3407 var date = new Date();
3408 return "test_wac20_filesystem_file_" + nr + "_" + (counter++) + "_"
3409 + date.getMinutes() + date.getSeconds() + date.getMilliseconds();
3412 function getDirName() {
3413 var nr = Math.floor(Math.random() * 1000);
3414 var date = new Date();
3415 return "test_wac20_filesystem_dir_" + nr + "_" + (counter++) + "_"
3416 + date.getMinutes() + date.getSeconds() + date.getMilliseconds();
3419 function createFileForParent(parent) {
3420 var result = parent.createFile(getFileName());
3421 TestEngine.test("createFile()", isFile(result));
3425 function createDirForParent(parent) {
3426 var result = parent.createDirectory(getDirName());
3427 TestEngine.test("createDirectory()", isDir(result));
3431 function testNoExceptionWithMessage(message, fun) {
3432 var testResult = true;
3439 TestEngine.test(message, testResult);