blob: 40aaa493acebef69f88a1baad8e03b5cd6bc379b [file] [log] [blame]
<!doctype html>
<title>Entries API IDL tests</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
<h1>Entries API IDL tests</h1>
<div id=log></div>
<form>
<input type="file" id="fileChooser">
</form>
<script type=text/plain>
partial interface File {
readonly attribute USVString webkitRelativePath;
};
partial interface HTMLInputElement {
attribute boolean webkitdirectory;
readonly attribute FrozenArray<FileSystemEntry> webkitEntries;
};
partial interface DataTransferItem {
FileSystemEntry? webkitGetAsEntry();
};
callback interface ErrorCallback {
void handleEvent(DOMException err);
};
interface FileSystemEntry {
readonly attribute boolean isFile;
readonly attribute boolean isDirectory;
readonly attribute USVString name;
readonly attribute USVString fullPath;
readonly attribute FileSystem filesystem;
void getParent(optional FileSystemEntryCallback successCallback,
optional ErrorCallback errorCallback);
};
interface FileSystemDirectoryEntry : FileSystemEntry {
FileSystemDirectoryReader createReader();
void getFile(optional USVString? path,
optional FileSystemFlags options,
optional FileSystemEntryCallback successCallback,
optional ErrorCallback errorCallback);
void getDirectory(optional USVString? path,
optional FileSystemFlags options,
optional FileSystemEntryCallback successCallback,
optional ErrorCallback errorCallback);
};
dictionary FileSystemFlags {
boolean create = false;
boolean exclusive = false;
};
callback interface FileSystemEntryCallback {
void handleEvent(FileSystemEntry entry);
};
interface FileSystemDirectoryReader {
void readEntries(FileSystemEntriesCallback successCallback,
optional ErrorCallback errorCallback);
};
callback interface FileSystemEntriesCallback {
void handleEvent(sequence<FileSystemEntry> entries);
};
interface FileSystemFileEntry : FileSystemEntry {
void file(FileCallback successCallback,
optional ErrorCallback errorCallback);
};
callback interface FileCallback {
void handleEvent(File file);
};
interface FileSystem {
readonly attribute USVString name;
readonly attribute FileSystemDirectoryEntry root;
};
</script>
<script>
"use strict";
var idlArray;
var file_input;
setup(function() {
idlArray = new IdlArray();
[].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) {
if (node.className == "untested") {
idlArray.add_untested_idls(node.textContent);
} else {
idlArray.add_idls(node.textContent);
}
idlArray.add_untested_idls("interface File {};");
idlArray.add_untested_idls("interface HTMLInputElement {};");
idlArray.add_untested_idls("interface DataTransferItem {};");
file_input = document.getElementById("fileChooser");
idlArray.add_objects({
File: ['new File(["myFileBits"], "myFileName")'],
HTMLInputElement: ['file_input'],
});
});
}, {explicit_done:true});
window.onload = function() {
idlArray.test();
done();
};
</script>