mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
This commit is contained in:
parent
b2a5225831
commit
1a81b18b9f
12321 changed files with 544385 additions and 6 deletions
214
tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice.html
Normal file
214
tests/wpt/web-platform-tests/FileAPI/blob/Blob-slice.html
Normal file
|
@ -0,0 +1,214 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
<title>Blob slice</title>
|
||||
<link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#slice-method-algo">
|
||||
<link rel=author title="Saurabh Anand" href="mailto:saurabhanandiit@gmail.com">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../support/Blob.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test_blob(function() {
|
||||
var blobTemp = new Blob(["PASS"]);
|
||||
return blobTemp.slice();
|
||||
}, {
|
||||
expected: "PASS",
|
||||
type: "",
|
||||
desc: "no-argument Blob slice"
|
||||
});
|
||||
|
||||
test(function() {
|
||||
var blob1, blob2;
|
||||
|
||||
test_blob(function() {
|
||||
return blob1 = new Blob(["squiggle"]);
|
||||
}, {
|
||||
expected: "squiggle",
|
||||
type: "",
|
||||
desc: "blob1."
|
||||
});
|
||||
|
||||
test_blob(function() {
|
||||
return blob2 = new Blob(["steak"], {type: "content/type"});
|
||||
}, {
|
||||
expected: "steak",
|
||||
type: "content/type",
|
||||
desc: "blob2."
|
||||
});
|
||||
|
||||
var arrayBuffer = new ArrayBuffer(16);
|
||||
var int8View = new Int8Array(arrayBuffer);
|
||||
for (var i = 0; i < 16; i++) {
|
||||
int8View[i] = i + 65;
|
||||
}
|
||||
|
||||
var testData = [
|
||||
[
|
||||
["PASSSTRING"],
|
||||
[{start: -6, contents: "STRING"},
|
||||
{start: -12, contents: "PASSSTRING"},
|
||||
{start: 4, contents: "STRING"},
|
||||
{start: 12, contents: ""},
|
||||
{start: 0, end: -6, contents: "PASS"},
|
||||
{start: 0, end: -12, contents: ""},
|
||||
{start: 0, end: 4, contents: "PASS"},
|
||||
{start: 0, end: 12, contents: "PASSSTRING"},
|
||||
{start: 7, end: 4, contents: ""}]
|
||||
],
|
||||
|
||||
// Test 3 strings
|
||||
[
|
||||
["foo", "bar", "baz"],
|
||||
[{start: 0, end: 9, contents: "foobarbaz"},
|
||||
{start: 0, end: 3, contents: "foo"},
|
||||
{start: 3, end: 9, contents: "barbaz"},
|
||||
{start: 6, end: 9, contents: "baz"},
|
||||
{start: 6, end: 12, contents: "baz"},
|
||||
{start: 0, end: 9, contents: "foobarbaz"},
|
||||
{start: 0, end: 11, contents: "foobarbaz"},
|
||||
{start: 10, end: 15, contents: ""}]
|
||||
],
|
||||
|
||||
// Test string, Blob, string
|
||||
[
|
||||
["foo", blob1, "baz"],
|
||||
[{start: 0, end: 3, contents: "foo"},
|
||||
{start: 3, end: 11, contents: "squiggle"},
|
||||
{start: 2, end: 4, contents: "os"},
|
||||
{start: 10, end: 12, contents: "eb"}]
|
||||
],
|
||||
|
||||
// Test blob, string, blob
|
||||
[
|
||||
[blob1, "foo", blob1],
|
||||
[{start: 0, end: 8, contents: "squiggle"},
|
||||
{start: 7, end: 9, contents: "ef"},
|
||||
{start: 10, end: 12, contents: "os"},
|
||||
{start: 1, end: 4, contents: "qui"},
|
||||
{start: 12, end: 15, contents: "qui"},
|
||||
{start: 40, end: 60, contents: ""}]
|
||||
],
|
||||
|
||||
// Test blobs all the way down
|
||||
[
|
||||
[blob2, blob1, blob2],
|
||||
[{start: 0, end: 5, contents: "steak"},
|
||||
{start: 5, end: 13, contents: "squiggle"},
|
||||
{start: 13, end: 18, contents: "steak"},
|
||||
{start: 1, end: 3, contents: "te"},
|
||||
{start: 6, end: 10, contents: "quig"}]
|
||||
],
|
||||
|
||||
// Test an ArrayBufferView
|
||||
[
|
||||
[int8View, blob1, "foo"],
|
||||
[{start: 0, end: 8, contents: "ABCDEFGH"},
|
||||
{start: 8, end: 18, contents: "IJKLMNOPsq"},
|
||||
{start: 17, end: 20, contents: "qui"},
|
||||
{start: 4, end: 12, contents: "EFGHIJKL"}]
|
||||
],
|
||||
|
||||
// Test a partial ArrayBufferView
|
||||
[
|
||||
[new Uint8Array(arrayBuffer, 3, 5), blob1, "foo"],
|
||||
[{start: 0, end: 8, contents: "DEFGHsqu"},
|
||||
{start: 8, end: 18, contents: "igglefoo"},
|
||||
{start: 4, end: 12, contents: "Hsquiggl"}]
|
||||
],
|
||||
|
||||
// Test type coercion of a number
|
||||
[
|
||||
[3, int8View, "foo"],
|
||||
[{start: 0, end: 8, contents: "3ABCDEFG"},
|
||||
{start: 8, end: 18, contents: "HIJKLMNOPf"},
|
||||
{start: 17, end: 21, contents: "foo"},
|
||||
{start: 4, end: 12, contents: "DEFGHIJK"}]
|
||||
],
|
||||
|
||||
[
|
||||
[(new Uint8Array([0, 255, 0])).buffer,
|
||||
new Blob(['abcd']),
|
||||
'efgh',
|
||||
'ijklmnopqrstuvwxyz'],
|
||||
[{start: 1, end: 4, contents: "\uFFFD\u0000a"},
|
||||
{start: 4, end: 8, contents: "bcde"},
|
||||
{start: 8, end: 12, contents: "fghi"},
|
||||
{start: 1, end: 12, contents: "\uFFFD\u0000abcdefghi"}]
|
||||
]
|
||||
];
|
||||
|
||||
testData.forEach(function(data, i) {
|
||||
var blobs = data[0];
|
||||
var tests = data[1];
|
||||
tests.forEach(function(expectations, j) {
|
||||
test(function() {
|
||||
var blob = new Blob(blobs);
|
||||
assert_true(blob instanceof Blob);
|
||||
assert_false(blob instanceof File);
|
||||
|
||||
test_blob(function() {
|
||||
return expectations.end === undefined
|
||||
? blob.slice(expectations.start)
|
||||
: blob.slice(expectations.start, expectations.end);
|
||||
}, {
|
||||
expected: expectations.contents,
|
||||
type: "",
|
||||
desc: "Slicing test: slice (" + i + "," + j + ")."
|
||||
});
|
||||
}, "Slicing test (" + i + "," + j + ").");
|
||||
});
|
||||
});
|
||||
}, "Slices");
|
||||
|
||||
var invalidTypes = [
|
||||
"\xFF",
|
||||
"te(xt/plain",
|
||||
"te)xt/plain",
|
||||
"te<xt/plain",
|
||||
"te>xt/plain",
|
||||
"te@xt/plain",
|
||||
"te,xt/plain",
|
||||
"te;xt/plain",
|
||||
"te:xt/plain",
|
||||
"te\\xt/plain",
|
||||
"te\"xt/plain",
|
||||
"te/xt/plain",
|
||||
"te[xt/plain",
|
||||
"te]xt/plain",
|
||||
"te?xt/plain",
|
||||
"te=xt/plain",
|
||||
"te{xt/plain",
|
||||
"te}xt/plain",
|
||||
"te\x20xt/plain",
|
||||
"te\x09xt/plain",
|
||||
"te\x00xt/plain",
|
||||
"te\x1Fxt/plain",
|
||||
"te\x7Fxt/plain"
|
||||
];
|
||||
invalidTypes.forEach(function(type) {
|
||||
test_blob(function() {
|
||||
var blob = new Blob(["PASS"]);
|
||||
return blob.slice(0, 4, type);
|
||||
}, {
|
||||
expected: "PASS",
|
||||
type: "",
|
||||
desc: "Invalid contentType (" + format_value(type) + ")"
|
||||
});
|
||||
});
|
||||
|
||||
var validTypes = [
|
||||
"TEXT/PLAIN",
|
||||
"text/plain;charset = UTF-8",
|
||||
"text/plain;charset=UTF-8"
|
||||
];
|
||||
validTypes.forEach(function(type) {
|
||||
test_blob(function() {
|
||||
var blob = new Blob(["PASS"]);
|
||||
return blob.slice(0, 4, type);
|
||||
}, {
|
||||
expected: "PASS",
|
||||
type: type.toLowerCase(),
|
||||
desc: "Valid contentType (" + format_value(type) + ")"
|
||||
});
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue