1// META: title=Blob Array Buffer 2// META: script=../support/Blob.js 3'use strict'; 4 5promise_test(async () => { 6 const input_arr = new TextEncoder().encode("PASS"); 7 const blob = new Blob([input_arr]); 8 const array_buffer = await blob.arrayBuffer(); 9 assert_true(array_buffer instanceof ArrayBuffer); 10 assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); 11}, "Blob.arrayBuffer()") 12 13promise_test(async () => { 14 const input_arr = new TextEncoder().encode(""); 15 const blob = new Blob([input_arr]); 16 const array_buffer = await blob.arrayBuffer(); 17 assert_true(array_buffer instanceof ArrayBuffer); 18 assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); 19}, "Blob.arrayBuffer() empty Blob data") 20 21promise_test(async () => { 22 const input_arr = new TextEncoder().encode("\u08B8\u000a"); 23 const blob = new Blob([input_arr]); 24 const array_buffer = await blob.arrayBuffer(); 25 assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); 26}, "Blob.arrayBuffer() non-ascii input") 27 28promise_test(async () => { 29 const input_arr = [8, 241, 48, 123, 151]; 30 const typed_arr = new Uint8Array(input_arr); 31 const blob = new Blob([typed_arr]); 32 const array_buffer = await blob.arrayBuffer(); 33 assert_equals_typed_array(new Uint8Array(array_buffer), typed_arr); 34}, "Blob.arrayBuffer() non-unicode input") 35 36promise_test(async () => { 37 const input_arr = new TextEncoder().encode("PASS"); 38 const blob = new Blob([input_arr]); 39 const array_buffer_results = await Promise.all([blob.arrayBuffer(), 40 blob.arrayBuffer(), blob.arrayBuffer()]); 41 for (let array_buffer of array_buffer_results) { 42 assert_true(array_buffer instanceof ArrayBuffer); 43 assert_equals_typed_array(new Uint8Array(array_buffer), input_arr); 44 } 45}, "Blob.arrayBuffer() concurrent reads") 46