blob: 8fb0dfb784ac85b4e56f8974d6889424c1b3994f [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>File API manual IDL tests</title>
<link rel="author" title="Intel" href="">
<link rel="help" href="">
<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>File API manual IDL tests</h1>
<p>Test steps:</p>
<li>Download <a href="support/upload.txt">upload.txt</a> to local.</li>
<li>Select the local upload.txt file to run the test.</li>
<form name="uploadData">
<input type="file" id="fileChooser">
<div id="log"></div>
<pre id="untested_idl" style="display: none">
interface ArrayBuffer {
interface ArrayBufferView {
interface URL {
interface EventTarget {
interface Event {
callback EventHandlerNonNull = any (Event event);
typedef EventHandlerNonNull? EventHandler;
<pre id="idl" style="display: none">
Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window,Worker]
interface Blob {
readonly attribute unsigned long long size;
readonly attribute DOMString type;
readonly attribute boolean isClosed;
//slice Blob into byte-ranged chunks
Blob slice([Clamp] optional long long start,
[Clamp] optional long long end,
optional DOMString contentType);
void close();
dictionary BlobPropertyBag {
DOMString type = "";
[Constructor(sequence<(Blob or DOMString or ArrayBufferView or ArrayBuffer)> fileBits,
[EnsureUTF16] DOMString fileName, optional FilePropertyBag options), Exposed=Window,Worker]
interface File : Blob {
readonly attribute DOMString name;
readonly attribute long long lastModified;
dictionary FilePropertyBag {
DOMString type = "";
long long lastModified;
[Exposed=Window,Worker] interface FileList {
getter File? item(unsigned long index);
readonly attribute unsigned long length;
[Constructor, Exposed=Window,Worker]
interface FileReader: EventTarget {
// async read methods
void readAsArrayBuffer(Blob blob);
void readAsText(Blob blob, optional DOMString label);
void readAsDataURL(Blob blob);
void abort();
// states
const unsigned short EMPTY = 0;
const unsigned short LOADING = 1;
const unsigned short DONE = 2;
readonly attribute unsigned short readyState;
// File or Blob data
readonly attribute (DOMString or ArrayBuffer)? result;
readonly attribute DOMError? error;
// event handler attributes
attribute EventHandler onloadstart;
attribute EventHandler onprogress;
attribute EventHandler onload;
attribute EventHandler onabort;
attribute EventHandler onerror;
attribute EventHandler onloadend;
[Constructor, Exposed=Worker]
interface FileReaderSync {
// Synchronously return strings
ArrayBuffer readAsArrayBuffer(Blob blob);
DOMString readAsText(Blob blob, optional DOMString label);
DOMString readAsDataURL(Blob blob);
partial interface URL {
static DOMString createObjectURL(Blob blob);
static DOMString createFor(Blob blob);
static void revokeObjectURL(DOMString url);
var fileInput;
setup(function() {
fileInput = document.querySelector("#fileChooser")
}, {explicit_done: true, explicit_timeout: true});
on_event(fileInput, "change", function(evt) {
var idl_array = new IdlArray();
FileList: [fileInput.files],
File: [fileInput.files[0]],