<!DOCTYPE html>
<meta charset="utf-8">
<title>FileAPI Test: Creating Blob URL via XMLHttpRequest</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="author" title="JunChen Xia" href="mailto:xjconlyme@gmail.com">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

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

<script>
  async_test(function () {
    var http = new XMLHttpRequest();
    http.open("GET", "/images/blue96x96.png", true);
    http.responseType = "blob";
    http.onloadend = this.step_func(function(evt) {
      var blobURI = window.URL.createObjectURL(http.response);
      assert_true(http.response instanceof Blob, "XMLHttpRequest returns instanceof Blob");
      assert_equals(typeof blobURI, "string", "Blob URI is typeof string");
      assert_equals(blobURI.indexOf("blob"), 0, "Blob URI starts with 'blob'");
      assert_equals(http.status, 200, "The status is 200");
      assert_equals(http.statusText, "OK", "The status text is OK when XMLHttpRequest returns correct blob");
      assert_equals(http.getResponseHeader("Content-Type"), "image/png", "The content type is image/png when set the respnose blob");
      this.done();
    });
    http.send();
  });
</script>

