| Index: third_party/WebKit/LayoutTests/fast/files/blob-constructor.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/files/blob-constructor.html b/third_party/WebKit/LayoutTests/fast/files/blob-constructor.html
|
| index df34b9cd2bb8a728c2ea63e433bf538128942e61..7ceae69c30c1c371694470f17cb651deab4943a4 100644
|
| --- a/third_party/WebKit/LayoutTests/fast/files/blob-constructor.html
|
| +++ b/third_party/WebKit/LayoutTests/fast/files/blob-constructor.html
|
| @@ -22,9 +22,9 @@ shouldBeEqualToString("(new Blob()).type", "");
|
| shouldBeEqualToString("(new Blob(undefined)).type", "");
|
|
|
| // Test invalid blob parts.
|
| -shouldThrow("new Blob('hello')", '"TypeError: Failed to construct \'Blob\': The 1st argument is neither an array, nor does it have indexed properties."');
|
| -shouldThrow("new Blob(0)", '"TypeError: Failed to construct \'Blob\': The 1st argument is neither an array, nor does it have indexed properties."');
|
| -shouldThrow("new Blob(null)", '"TypeError: Failed to construct \'Blob\': The 1st argument is neither an array, nor does it have indexed properties."');
|
| +shouldThrow("new Blob('hello')", '"TypeError: Failed to construct \'Blob\': The provided value cannot be converted to a sequence."');
|
| +shouldThrow("new Blob(0)", '"TypeError: Failed to construct \'Blob\': The provided value cannot be converted to a sequence."');
|
| +shouldThrow("new Blob(null)", '"TypeError: Failed to construct \'Blob\': The provided value cannot be converted to a sequence."');
|
|
|
| // Test valid blob parts.
|
| shouldBeTrue("(new Blob([])) instanceof window.Blob");
|
| @@ -128,37 +128,44 @@ if (window.SharedArrayBuffer) {
|
| shouldThrow("new Blob([new Uint8Array(new SharedArrayBuffer(4))])", '"TypeError: Failed to construct \'Blob\': The provided ArrayBufferView value must not be shared."');
|
| }
|
|
|
| -// Test passing blob parts in objects with indexed properties.
|
| -// (This depends on the bindings code handling of sequence<T>)
|
| -shouldBe("new Blob({length: 0}).size", "0");
|
| -shouldBe("new Blob({length: 1, 0: 'string'}).size", "6");
|
| +// Custom iterators, converted via the bindings code to sequence<T>.
|
| +function createIterable(iterations) {
|
| + return {
|
| + [Symbol.iterator]() {
|
| + var i = 0;
|
| + return {next: () => iterations[i++]};
|
| + },
|
| + };
|
| +}
|
| +shouldBe("new Blob(createIterable([{done:true}])).size", "0");
|
| +shouldBe("new Blob(createIterable([{done:false, value:'string'},{done:true}])).size", "6");
|
|
|
| testNormalization();
|
|
|
| function testNormalization() {
|
| - // Test that strings are not NFC normalized
|
| - OMICRON_WITH_OXIA = '\u1F79'; // NFC normalized to U+3CC
|
| - shouldBe("OMICRON_WITH_OXIA.charCodeAt(0)", "0x1F79");
|
| - reader = new FileReader();
|
| - reader.readAsText(new Blob([OMICRON_WITH_OXIA]));
|
| - reader.onload = function() {
|
| - shouldBe("reader.result.charCodeAt(0)", "0x1F79");
|
| - testEncodingReplacements();
|
| - };
|
| + // Test that strings are not NFC normalized
|
| + OMICRON_WITH_OXIA = '\u1F79'; // NFC normalized to U+3CC
|
| + shouldBe("OMICRON_WITH_OXIA.charCodeAt(0)", "0x1F79");
|
| + reader = new FileReader();
|
| + reader.readAsText(new Blob([OMICRON_WITH_OXIA]));
|
| + reader.onload = function() {
|
| + shouldBe("reader.result.charCodeAt(0)", "0x1F79");
|
| + testEncodingReplacements();
|
| + };
|
| }
|
|
|
| function testEncodingReplacements() {
|
| - // Test that invalid UTF-16 code units are replaced.
|
| - CONTAINS_UNPAIRED_SURROGATES = 'abc\uDC00def\uD800ghi';
|
| - shouldBe("CONTAINS_UNPAIRED_SURROGATES.charCodeAt(3)", "0xDC00");
|
| - shouldBe("CONTAINS_UNPAIRED_SURROGATES.charCodeAt(7)", "0xD800");
|
| - reader = new FileReader();
|
| - reader.readAsText(new Blob([CONTAINS_UNPAIRED_SURROGATES]));
|
| - reader.onload = function() {
|
| - shouldBe("reader.result.charCodeAt(3)", "0xFFFD");
|
| - shouldBe("reader.result.charCodeAt(7)", "0xFFFD");
|
| - finishJSTest();
|
| - };
|
| + // Test that invalid UTF-16 code units are replaced.
|
| + CONTAINS_UNPAIRED_SURROGATES = 'abc\uDC00def\uD800ghi';
|
| + shouldBe("CONTAINS_UNPAIRED_SURROGATES.charCodeAt(3)", "0xDC00");
|
| + shouldBe("CONTAINS_UNPAIRED_SURROGATES.charCodeAt(7)", "0xD800");
|
| + reader = new FileReader();
|
| + reader.readAsText(new Blob([CONTAINS_UNPAIRED_SURROGATES]));
|
| + reader.onload = function() {
|
| + shouldBe("reader.result.charCodeAt(3)", "0xFFFD");
|
| + shouldBe("reader.result.charCodeAt(7)", "0xFFFD");
|
| + finishJSTest();
|
| + };
|
| }
|
|
|
| </script>
|
|
|