<!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>