115 lines
3.6 KiB
HTML
115 lines
3.6 KiB
HTML
<!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>
|