Revision eb65ce50adc526ed94774ef036d44da567fc440e authored by Ms2ger on 01 April 2014, 11:46:24 UTC, committed by Ms2ger on 01 April 2014, 11:46:24 UTC
1 parent 41a3aef
Raw File
idlharness.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>File API automated IDL tests</title>
    <link rel="author" title="Intel" href="http://www.intel.com">
    <link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#conformance">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/resources/WebIDLParser.js"></script>
    <script src="/resources/idlharness.js"></script>
  </head>
  <body>
    <h1>File API automated IDL tests</h1>

    <div id="log"></div>

    <pre id="untested_idl" style="display: none">
      interface ArrayBuffer {
      };

      interface ArrayBufferView {
      };

      interface URL {
      };

      interface EventTarget {
      };

      interface Event {
      };

      [TreatNonCallableAsNull]
      callback EventHandlerNonNull = any (Event event);
      typedef EventHandlerNonNull? EventHandler;
    </pre>

    <pre id="idl" style="display: none">
      interface FileList {
        getter File? item(unsigned long index);
        readonly attribute unsigned long length;
      };

      [Constructor,
       Constructor(sequence<(ArrayBuffer or ArrayBufferView or Blob or DOMString)> blobParts, optional BlobPropertyBag options)]
      interface Blob {
        readonly attribute unsigned long long size;
        readonly attribute DOMString type;

        //slice Blob into byte-ranged chunks

        Blob slice(optional long long start,
                   optional long long end,
                   optional DOMString contentType);
        void close();
      };

      dictionary BlobPropertyBag {
        DOMString type = "";
      };

      [Constructor(Blob fileBits, DOMString fileName)]
      interface File : Blob {
        readonly attribute DOMString name;
        readonly attribute Date lastModifiedDate;
      };

      [Constructor]
      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;
      };

      partial interface URL {
        static DOMString? createObjectURL(Blob blob);
        static DOMString? createFor(Blob blob); // static DOMString? createFor()Blob blob);
        static void revokeObjectURL(DOMString url);
      };
    </pre>

    <script>
      var idl_array;

      setup(function() {
        idl_array = new IdlArray();
        idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
        idl_array.add_idls(document.getElementById("idl").textContent);

        idl_array.add_objects({
          Blob: [new Blob(["TEST"])],
          FileReader: [new FileReader()]
        });
      });

      idl_array.test();
    </script>
  </body>
</html>
back to top