Revision d0d62244432d329aa22e9278d3e83184301c3e7f authored by Chris Nardi on 07 April 2018, 01:36:26 UTC, committed by Xidorn Quan on 07 April 2018, 02:05:46 UTC
See https://github.com/w3c/csswg-drafts/issues/2509#issuecomment-379152590 for the change to target9. Also remove the extra whitespace in target8 and target1 which causes these tests to fail in Chrome and Firefox.

Also remove testcase.propertyName from each test's name as this doesn't exist and just outputs undefined.
1 parent 6e68c44
Raw File
idlharness-manual.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>File API manual 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 manual IDL tests</h1>

    <div>
      <p>Test steps:</p>
      <ol>
        <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>
      </ol>
    </div>

    <form name="uploadData">
      <input type="file" id="fileChooser">
    </form>

    <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">
[Constructor,
 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;

  //slice Blob into byte-ranged chunks

  Blob slice([Clamp] optional long long start,
             [Clamp] optional long long end,
             optional DOMString contentType);
};

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 DOMException? 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 void revokeObjectURL(DOMString url);

};
    </pre>

    <script>
      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();
        idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
        idl_array.add_idls(document.getElementById("idl").textContent);

        idl_array.add_objects({
          FileList: [fileInput.files],
          File: [fileInput.files[0]],
        });
        idl_array.test();

        done();
      });
    </script>
  </body>
</html>
back to top