1 Test the Blob constructor.
3 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
6 PASS (new Blob()) instanceof window.Blob is true
7 PASS (new Blob([])) instanceof window.Blob is true
8 PASS (new Blob(['hello'])) instanceof window.Blob is true
9 PASS (new Blob(['hello'], {})) instanceof window.Blob is true
10 PASS (new Blob(['hello'], {type:'text/html'})) instanceof window.Blob is true
11 PASS (new Blob(['hello'], {type:'text/html', endings:'native'})) instanceof window.Blob is true
12 PASS (new Blob(['hello'], {type:'text/html', endings:'transparent'})) instanceof window.Blob is true
13 PASS new Blob('hello') threw exception TypeError: Failed to construct 'Blob': The 1st argument is neither an array, nor does it have indexed properties..
14 PASS new Blob(0) threw exception TypeError: Failed to construct 'Blob': The 1st argument is neither an array, nor does it have indexed properties..
15 PASS new Blob(null) threw exception TypeError: Failed to construct 'Blob': The 1st argument is neither an array, nor does it have indexed properties..
16 PASS (new Blob([])) instanceof window.Blob is true
17 PASS (new Blob(['stringPrimitive'])) instanceof window.Blob is true
18 PASS (new Blob([String('stringObject')])) instanceof window.Blob is true
19 PASS (new Blob([new Blob])) instanceof window.Blob is true
20 PASS (new Blob([new Blob([new Blob])])) instanceof window.Blob is true
21 PASS (new Blob([12])).size is 2
22 PASS (new Blob([[]])).size is 0
23 PASS (new Blob([{}])).size is 15
24 PASS (new Blob([document])).size is 21
25 PASS (new Blob([toStringingObj])).size is 8
26 PASS new Blob([throwingObj]) threw exception Error.
27 PASS (new Blob([], {unknownKey:'value'})) instanceof window.Blob is true
28 PASS new Blob([], {endings:'illegalValue'}) threw exception TypeError: Failed to construct 'Blob': The provided value 'illegalValue' is not a valid enum value of type NormalizeLineEndings..
29 PASS new Blob([], {endings:throwingObj}) threw exception Error.
30 PASS new Blob([], {type:throwingObj}) threw exception Error.
31 PASS new Blob([], {type:'helloĆ®'}) threw exception SyntaxError: Failed to construct 'Blob': The 'type' property must consist of ASCII characters..
32 PASS new Blob([], {endings:throwingObj1, type:throwingObj2}) threw exception Error 1.
33 PASS new Blob([], {type:throwingObj2, endings:throwingObj1}) threw exception Error 1.
34 PASS new Blob([], {type:throwingObj2, endings:'illegal'}) threw exception TypeError: Failed to construct 'Blob': The provided value 'illegal' is not a valid enum value of type NormalizeLineEndings..
35 PASS (new Blob([], null)) instanceof window.Blob is true
36 PASS (new Blob([], undefined)) instanceof window.Blob is true
37 PASS (new Blob([], 123)) instanceof window.Blob threw exception TypeError: Failed to construct 'Blob': parameter 2 ('options') is not an object..
38 PASS (new Blob([], 123.4)) instanceof window.Blob threw exception TypeError: Failed to construct 'Blob': parameter 2 ('options') is not an object..
39 PASS (new Blob([], true)) instanceof window.Blob threw exception TypeError: Failed to construct 'Blob': parameter 2 ('options') is not an object..
40 PASS (new Blob([], 'abc')) instanceof window.Blob threw exception TypeError: Failed to construct 'Blob': parameter 2 ('options') is not an object..
41 PASS (new Blob([], [])) instanceof window.Blob is true
42 PASS (new Blob([], /abc/)) instanceof window.Blob is true
43 PASS (new Blob([], function () {})) instanceof window.Blob is true
44 PASS (new Blob([], {type:'text/html'})).type is 'text/html'
45 PASS (new Blob([], {type:'text/html'})).size is 0
46 PASS (new Blob([], {type:'text/plain;charset=UTF-8'})).type is 'text/plain;charset=utf-8'
47 PASS (new Blob([])).lastModified is undefined
48 PASS (new Blob([], {})).lastModified is undefined
49 PASS (new Blob([], {lastModified: new Date()})).lastModified is undefined
50 PASS window.Blob.length is 0
51 PASS new Blob([new DataView(new ArrayBuffer(100))]).size is 100
52 PASS new Blob([new Uint8Array(100)]).size is 100
53 PASS new Blob([new Uint8ClampedArray(100)]).size is 100
54 PASS new Blob([new Uint16Array(100)]).size is 200
55 PASS new Blob([new Uint32Array(100)]).size is 400
56 PASS new Blob([new Int8Array(100)]).size is 100
57 PASS new Blob([new Int16Array(100)]).size is 200
58 PASS new Blob([new Int32Array(100)]).size is 400
59 PASS new Blob([new Float32Array(100)]).size is 400
60 PASS new Blob([new Float64Array(100)]).size is 800
61 PASS new Blob([new Float64Array(100), new Int32Array(100), new Uint8Array(100), new DataView(new ArrayBuffer(100))]).size is 1400
62 PASS new Blob([new Blob([new Int32Array(100)]), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))]).size is 1000
63 PASS new Blob([(new DataView(new ArrayBuffer(100))).buffer]).size is 100
64 PASS new Blob([(new Uint8Array(100)).buffer]).size is 100
65 PASS new Blob([(new Uint8ClampedArray(100)).buffer]).size is 100
66 PASS new Blob([(new Uint16Array(100)).buffer]).size is 200
67 PASS new Blob([(new Uint32Array(100)).buffer]).size is 400
68 PASS new Blob([(new Int8Array(100)).buffer]).size is 100
69 PASS new Blob([(new Int16Array(100)).buffer]).size is 200
70 PASS new Blob([(new Int32Array(100)).buffer]).size is 400
71 PASS new Blob([(new Float32Array(100)).buffer]).size is 400
72 PASS new Blob([(new Float64Array(100)).buffer]).size is 800
73 PASS new Blob([(new Float64Array(100)).buffer, (new Int32Array(100)).buffer, (new Uint8Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size is 1400
74 PASS new Blob([new Blob([(new Int32Array(100)).buffer]), (new Uint8Array(100)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size is 1000
75 PASS new Blob({length: 0}).size is 0
76 PASS new Blob({length: 1, 0: 'string'}).size is 6
77 PASS OMICRON_WITH_OXIA.charCodeAt(0) is 0x1F79
78 PASS reader.result.charCodeAt(0) is 0x1F79
79 PASS successfullyParsed is true