| <!DOCTYPE html> | |
| <meta charset=utf-8> | |
| <title>Entries API: FileSystemDirectoryEntry.getFile() manual test</title> | |
| <link rel=help href="https://wicg.github.io/entries-api/#dom-filesystemdirectoryentry-getfile"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="support.js"></script> | |
| <script> | |
| entry_test((t, entry) => { | |
| assert_idl_attribute(entry, 'getFile', 'FileSystemDirectoryEntry has getFile'); | |
| assert_equals(typeof entry.getFile, 'function', 'getFile() is a method'); | |
| t.done(); | |
| }, 'FileSystemDirectoryEntry - getFile()'); | |
| INVALID_PATHS.forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {}, | |
| t.unreached_func('getFile should fail'), | |
| t.step_func(error => { | |
| assert_equals(error.name, 'TypeMismatchError', | |
| 'getFile() should fail if given invalid path'); | |
| t.done(); | |
| })); | |
| }, 'FileSystemDirectoryEntry.getFile() - invalid path: ' + JSON.stringify(path)); | |
| }); | |
| EMPTY_PATHS.forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {}, | |
| t.unreached_func('getFile should fail'), | |
| t.step_func(error => { | |
| assert_equals(error.name, 'TypeMismatchError', | |
| 'getFile() on empty path should fail because the ' + | |
| 'path resolves to the directory itself'); | |
| t.done(); | |
| })); | |
| }, 'FileSystemDirectoryEntry.getFile() - empty path: ' + JSON.stringify(path) || 'undefined'); | |
| }); | |
| FILE_PATHS.forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {create: true}, | |
| t.unreached_func('getFile should fail'), | |
| t.step_func(error => { | |
| assert_equals(error.name, 'SecurityError', | |
| 'getFile() should fail with security error if ' + | |
| 'create option is set'); | |
| t.done(); | |
| })); | |
| }, 'FileSystemDirectoryEntry.getFile() - {create:true}: ' + path); | |
| }); | |
| NOT_FOUND_PATHS.forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {}, | |
| t.unreached_func('getFile should fail'), | |
| t.step_func(error => { | |
| assert_equals(error.name, 'NotFoundError', | |
| 'getFile() should fail with not found'); | |
| t.done(); | |
| })); | |
| }, 'FileSystemDirectoryEntry.getFile() - not found: ' + path); | |
| }); | |
| DIR_PATHS.concat(['/', '.']).forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {}, | |
| t.unreached_func('getFile should fail'), | |
| t.step_func(error => { | |
| assert_equals(error.name, 'TypeMismatchError', | |
| 'getFile() should fail if type is directory'); | |
| t.done(); | |
| })); | |
| }, 'FileSystemDirectoryEntry.getFile() - directory: ' + path); | |
| }); | |
| FILE_PATHS.forEach(path => { | |
| entry_test((t, entry) => { | |
| entry.getFile( | |
| path, | |
| {}, | |
| t.step_func(e => { | |
| assert_true(e.isFile); | |
| assert_false(e.isDirectory); | |
| assert_equals(e.name, 'file.txt'); | |
| t.done(); | |
| }), | |
| t.unreached_func('getFile should not fail') | |
| ); | |
| }, 'FileSystemDirectoryEntry.getFile() - file: ' + path); | |
| }); | |
| entry_test((t, entry) => { | |
| entry.getFile(FILE_PATHS[0], {}, t.step_func(e1 => { | |
| entry.getFile(FILE_PATHS[0], {}, t.step_func(e2 => { | |
| assert_equals(e1.name, e2.name, 'names should match'); | |
| assert_equals(e1.fullPath, e2.fullPath, 'names should match'); | |
| assert_not_equals(e1, e2, 'objects should be distinct'); | |
| t.done(); | |
| }), t.unreached_func('getFile should not fail')); | |
| }), t.unreached_func('getFile should not fail')); | |
| }, 'FileSystemDirectoryEntry.getFile() - object identity'); | |
| </script> |