<!DOCTYPE html>
<meta charset="utf-8">
<title>FileAPI Test: filereader_readAsBinaryString</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://w3c.github.io/FileAPI/#readAsBinaryString">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>

async_test(t => {
  const blob = new Blob(["σ"]);
  const reader = new FileReader();

  reader.onload = t.step_func_done(() => {
    assert_equals(typeof reader.result, "string", "The result is string");
    assert_equals(reader.result.length, 2, "The result length is 2");
    assert_equals(reader.result, "\xcf\x83", "The result is \xcf\x83");
    assert_equals(reader.readyState, reader.DONE);
  });

  reader.onloadstart = t.step_func(() => {
    assert_equals(reader.readyState, reader.LOADING);
  });

  reader.onprogress = t.step_func(() => {
    assert_equals(reader.readyState, reader.LOADING);
  });

  reader.readAsBinaryString(blob);
});

</script>
