Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: LayoutTests/fast/files/script-tests/blob-constructor.js

Issue 57483002: Implement File constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressed most feedback. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/fast/files/script-tests/blob-constructor.js
diff --git a/LayoutTests/fast/files/script-tests/blob-constructor.js b/LayoutTests/fast/files/script-tests/blob-constructor.js
deleted file mode 100644
index 77ad34a230d817f574df278bd20c1e4a3d3f60b3..0000000000000000000000000000000000000000
--- a/LayoutTests/fast/files/script-tests/blob-constructor.js
+++ /dev/null
@@ -1,114 +0,0 @@
-description("Test the Blob constructor.");
-
-// Test the diffrent ways you can construct a Blob.
-shouldBeTrue("(new Blob()) instanceof window.Blob");
-shouldBeTrue("(new Blob([])) instanceof window.Blob");
-shouldBeTrue("(new Blob(['hello'])) instanceof window.Blob");
-shouldBeTrue("(new Blob(['hello'], {})) instanceof window.Blob");
-shouldBeTrue("(new Blob(['hello'], {type:'text/html'})) instanceof window.Blob");
-shouldBeTrue("(new Blob(['hello'], {type:'text/html', endings:'native'})) instanceof window.Blob");
-shouldBeTrue("(new Blob(['hello'], {type:'text/html', endings:'transparent'})) instanceof window.Blob");
-
-// 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."');
-
-// Test valid blob parts.
-shouldBeTrue("(new Blob([])) instanceof window.Blob");
-shouldBeTrue("(new Blob(['stringPrimitive'])) instanceof window.Blob");
-shouldBeTrue("(new Blob([String('stringObject')])) instanceof window.Blob");
-shouldBeTrue("(new Blob([new Blob])) instanceof window.Blob");
-shouldBeTrue("(new Blob([new Blob([new Blob])])) instanceof window.Blob");
-
-// Test some conversions to string in the parts array.
-shouldBe("(new Blob([12])).size", "2");
-shouldBe("(new Blob([[]])).size", "0"); // [].toString() is the empty string
-shouldBe("(new Blob([{}])).size", "15");; // {}.toString() is the string "[object Object]"
-shouldBe("(new Blob([document])).size", "21"); // document.toString() is the string "[object HTMLDocument]"
-
-var toStringingObj = { toString: function() { return "A string"; } };
-shouldBe("(new Blob([toStringingObj])).size", "8");
-
-var throwingObj = { toString: function() { throw "Error"; } };
-shouldThrow("new Blob([throwingObj])", "'Error'");
-
-// Test some invalid property bags
-shouldBeTrue("(new Blob([], {unknownKey:'value'})) instanceof window.Blob"); // Ignore invalid keys
-shouldThrow("new Blob([], {endings:'illegalValue'})", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument\\'s \"endings\" property must be either \"transparent\" or \"native\".'");
-shouldThrow("new Blob([], {endings:throwingObj})", "'Error'");
-shouldThrow("new Blob([], {type:throwingObj})", "'Error'");
-shouldThrow("new Blob([], {type:'hello\u00EE'})", "'SyntaxError: Failed to construct \\'Blob\\': The 2nd argument\\'s \"type\" property must consist of ASCII characters.'");
-
-// Test that order of property bag evaluation is lexigraphical
-var throwingObj1 = { toString: function() { throw "Error 1"; } };
-var throwingObj2 = { toString: function() { throw "Error 2"; } };
-shouldThrow("new Blob([], {endings:throwingObj1, type:throwingObj2})", "'Error 1'");
-shouldThrow("new Blob([], {type:throwingObj2, endings:throwingObj1})", "'Error 1'");
-shouldThrow("new Blob([], {type:throwingObj2, endings:'illegal'})", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument\\'s \"endings\" property must be either \"transparent\" or \"native\".'");
-
-// Test various non-object literals being used as property bags
-shouldThrow("(new Blob([], null)) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldThrow("(new Blob([], undefined)) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldThrow("(new Blob([], 123)) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldThrow("(new Blob([], 123.4)) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldThrow("(new Blob([], true)) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldThrow("(new Blob([], 'abc')) instanceof window.Blob", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument is not of type Object.'");
-shouldBeTrue("(new Blob([], [])) instanceof window.Blob");
-shouldBeTrue("(new Blob([], /abc/)) instanceof window.Blob");
-shouldBeTrue("(new Blob([], function () {})) instanceof window.Blob");
-
-// Test that the type/size is correctly added to the Blob
-shouldBe("(new Blob([], {type:'text/html'})).type", "'text/html'");
-shouldBe("(new Blob([], {type:'text/html'})).size", "0");
-shouldBe("(new Blob([], {type:'text/plain;charset=UTF-8'})).type", "'text/plain;charset=utf-8'");
-
-// Odds and ends
-shouldBe("window.Blob.length", "2");
-
-// Test ArrayBufferView Parameters
-shouldBe("new Blob([new DataView(new ArrayBuffer(100))]).size", "100");
-shouldBe("new Blob([new Uint8Array(100)]).size", "100");
-shouldBe("new Blob([new Uint8ClampedArray(100)]).size", "100");
-shouldBe("new Blob([new Uint16Array(100)]).size", "200");
-shouldBe("new Blob([new Uint32Array(100)]).size", "400");
-shouldBe("new Blob([new Int8Array(100)]).size", "100");
-shouldBe("new Blob([new Int16Array(100)]).size", "200");
-shouldBe("new Blob([new Int32Array(100)]).size", "400");
-shouldBe("new Blob([new Float32Array(100)]).size", "400");
-shouldBe("new Blob([new Float64Array(100)]).size", "800");
-shouldBe("new Blob([new Float64Array(100), new Int32Array(100), new Uint8Array(100), new DataView(new ArrayBuffer(100))]).size", "1400");
-shouldBe("new Blob([new Blob([new Int32Array(100)]), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))]).size", "1000");
-
-// Test ArrayBuffer Parameters
-shouldBe("new Blob([(new DataView(new ArrayBuffer(100))).buffer]).size", "100");
-shouldBe("new Blob([(new Uint8Array(100)).buffer]).size", "100");
-shouldBe("new Blob([(new Uint8ClampedArray(100)).buffer]).size", "100");
-shouldBe("new Blob([(new Uint16Array(100)).buffer]).size", "200");
-shouldBe("new Blob([(new Uint32Array(100)).buffer]).size", "400");
-shouldBe("new Blob([(new Int8Array(100)).buffer]).size", "100");
-shouldBe("new Blob([(new Int16Array(100)).buffer]).size", "200");
-shouldBe("new Blob([(new Int32Array(100)).buffer]).size", "400");
-shouldBe("new Blob([(new Float32Array(100)).buffer]).size", "400");
-shouldBe("new Blob([(new Float64Array(100)).buffer]).size", "800");
-shouldBe("new Blob([(new Float64Array(100)).buffer, (new Int32Array(100)).buffer, (new Uint8Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size", "1400");
-shouldBe("new Blob([new Blob([(new Int32Array(100)).buffer]), (new Uint8Array(100)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size", "1000");
-
-// Test passing blob parts in sequences.
-shouldBeTrue("new Blob({length: 0}) instanceof window.Blob");
-shouldBe("new Blob({length: 0}).size", "0");
-shouldBe("new Blob({length: 1, 0: 'string'}).size", "6");
-shouldBe("new Blob({length: 2, 0: new Uint8Array(100), 1: new Int16Array(100)}).size", "300");
-shouldBe("new Blob({length: 1, 0: 'string'}, {type: 'text/html'}).type", "'text/html'");
-shouldThrow("new Blob({length: 0}, {endings:'illegal'})", "'TypeError: Failed to construct \\'Blob\\': The 2nd argument\\'s \"endings\" property must be either \"transparent\" or \"native\".'");
-
-// Test passing blog parts in a sequence-like object that throws on property access.
-var throwingSequence = {length: 4, 0: 'hello', 3: 'world'};
-Object.defineProperty(throwingSequence, "1", {
- get: function() { throw new Error("Misbehaving property"); },
- enumerable: true, configurable: true
-});
-Object.defineProperty(throwingSequence, "2", {
- get: function() { throw new Error("This should not be thrown"); },
- enumerable: true, configurable: true
-});
-shouldThrow("new Blob(throwingSequence)", "'Error: Misbehaving property'");

Powered by Google App Engine
This is Rietveld 408576698