diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html.ini new file mode 100644 index 00000000000..0a475462eca --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-1.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-1] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html.ini new file mode 100644 index 00000000000..315f1b77815 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-2.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-2] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html.ini new file mode 100644 index 00000000000..6d0c4fe4879 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-3.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-3] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html.ini new file mode 100644 index 00000000000..f13a1878cb0 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-4.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-4] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html.ini new file mode 100644 index 00000000000..b3b4fa258ea --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-5.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-5] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html.ini new file mode 100644 index 00000000000..979b13418d2 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-6.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-6] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html.ini new file mode 100644 index 00000000000..346881a91d3 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-7.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-7] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html.ini new file mode 100644 index 00000000000..77331fbc02a --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-8.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-8] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html.ini new file mode 100644 index 00000000000..f06dce0fa82 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsl-9.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsl-9] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html.ini new file mode 100644 index 00000000000..07eff7c118c --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-1.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-1] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html.ini new file mode 100644 index 00000000000..2074d83d9c5 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-2.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-2] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html.ini new file mode 100644 index 00000000000..629b598de19 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-3.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-3] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html.ini new file mode 100644 index 00000000000..5ecb867f752 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-4.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-4] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html.ini new file mode 100644 index 00000000000..73ec9374c24 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-5.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-5] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html.ini new file mode 100644 index 00000000000..2a9e01d706c --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-6.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-6] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html.ini new file mode 100644 index 00000000000..84cb1a69296 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-7.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-7] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html.ini new file mode 100644 index 00000000000..5736436b063 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-8.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-8] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html.ini new file mode 100644 index 00000000000..684d29b06c4 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-hsla-9.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-hsla-9] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html.ini new file mode 100644 index 00000000000..ccef8774341 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-1.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-1] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html.ini new file mode 100644 index 00000000000..01bb5fd598c --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-2.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-2] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html.ini new file mode 100644 index 00000000000..4f27a04d6ec --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-3.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-3] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html.ini new file mode 100644 index 00000000000..25e2f86c36e --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-4.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-4] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html.ini new file mode 100644 index 00000000000..0c9af172107 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-5.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-5] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html.ini new file mode 100644 index 00000000000..2e9d183a6ee --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgb-6.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgb-6] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html.ini new file mode 100644 index 00000000000..774515ed0f0 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgba-1.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgba-1] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html.ini new file mode 100644 index 00000000000..2059cb3cdc8 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgba-3.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgba-3] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html.ini new file mode 100644 index 00000000000..66054fea435 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgba-4.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgba-4] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html.ini new file mode 100644 index 00000000000..f1886f1771a --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgba-5.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgba-5] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html.ini new file mode 100644 index 00000000000..a45a7f41e47 --- /dev/null +++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html.ini @@ -0,0 +1,5 @@ +[2d.fillStyle.parse.css-color-4-rgba-6.html] + type: testharness + [Canvas test: 2d.fillStyle.parse.css-color-4-rgba-6] + expected: FAIL + diff --git a/tests/wpt/metadata/2dcontext/line-styles/setLineDash.html.ini b/tests/wpt/metadata/2dcontext/line-styles/setLineDash.html.ini new file mode 100644 index 00000000000..8ed6b0a36ab --- /dev/null +++ b/tests/wpt/metadata/2dcontext/line-styles/setLineDash.html.ini @@ -0,0 +1,8 @@ +[setLineDash.html] + type: testharness + [Invalid arguments to setLineDash()] + expected: FAIL + + [setLineDash] + expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini b/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini index 249873f6547..4643890d804 100644 --- a/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini +++ b/tests/wpt/metadata/FileAPI/FileReaderSync.worker.js.ini @@ -1,4 +1,4 @@ -[FileReaderSync.worker] +[FileReaderSync.worker.html] type: testharness [readAsText] expected: FAIL diff --git a/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini b/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini index 8e58f76bca3..fc33de592fa 100644 --- a/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini +++ b/tests/wpt/metadata/FileAPI/idlharness.worker.js.ini @@ -1,39 +1,9 @@ -[idlharness.worker] +[idlharness.worker.html] type: testharness - [URL interface: operation createFor(Blob)] - expected: FAIL - - [FileReaderSync interface: operation readAsArrayBuffer(Blob)] - expected: FAIL - - [FileReaderSync interface: operation readAsText(Blob,DOMString)] - expected: FAIL - - [FileReaderSync interface: operation readAsDataURL(Blob)] - expected: FAIL - - [FileReaderSync interface: new FileReaderSync() must inherit property "readAsArrayBuffer" with the proper type (0)] - expected: FAIL - - [FileReaderSync interface: calling readAsArrayBuffer(Blob) on new FileReaderSync() with too few arguments must throw TypeError] - expected: FAIL - - [FileReaderSync interface: new FileReaderSync() must inherit property "readAsText" with the proper type (1)] - expected: FAIL - - [FileReaderSync interface: calling readAsText(Blob,DOMString) on new FileReaderSync() with too few arguments must throw TypeError] - expected: FAIL - - [FileReaderSync interface: new FileReaderSync() must inherit property "readAsDataURL" with the proper type (2)] - expected: FAIL - - [FileReaderSync interface: calling readAsDataURL(Blob) on new FileReaderSync() with too few arguments must throw TypeError] - expected: FAIL - [ArrayBuffer interface: existence and properties of interface object] expected: FAIL - [URL interface: existence and properties of interface object] + [URL interface: operation createFor(Blob)] expected: FAIL [EventTarget interface: existence and properties of interface object] @@ -51,9 +21,24 @@ [FileReader interface: calling readAsBinaryString(Blob) on new FileReader() with too few arguments must throw TypeError] expected: FAIL + [FileReaderSync interface: operation readAsArrayBuffer(Blob)] + expected: FAIL + [FileReaderSync interface: operation readAsBinaryString(Blob)] expected: FAIL + [FileReaderSync interface: operation readAsText(Blob,DOMString)] + expected: FAIL + + [FileReaderSync interface: operation readAsDataURL(Blob)] + expected: FAIL + + [FileReaderSync interface: new FileReaderSync() must inherit property "readAsArrayBuffer" with the proper type (0)] + expected: FAIL + + [FileReaderSync interface: calling readAsArrayBuffer(Blob) on new FileReaderSync() with too few arguments must throw TypeError] + expected: FAIL + [FileReaderSync interface: new FileReaderSync() must inherit property "readAsBinaryString" with the proper type (1)] expected: FAIL @@ -63,6 +48,12 @@ [FileReaderSync interface: new FileReaderSync() must inherit property "readAsText" with the proper type (2)] expected: FAIL + [FileReaderSync interface: calling readAsText(Blob,DOMString) on new FileReaderSync() with too few arguments must throw TypeError] + expected: FAIL + [FileReaderSync interface: new FileReaderSync() must inherit property "readAsDataURL" with the proper type (3)] expected: FAIL + [FileReaderSync interface: calling readAsDataURL(Blob) on new FileReaderSync() with too few arguments must throw TypeError] + expected: FAIL + diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index fe62fb8536a..ec8882320d8 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -113,6 +113,22 @@ "path": "annotation-model/annotations/annotationsAgentOptionals-manual.html", "url": "/annotation-model/annotations/annotationsAgentOptionals-manual.html" }, + { + "path": "annotation-model/collections/collectionMusts-manual.html", + "url": "/annotation-model/collections/collectionMusts-manual.html" + }, + { + "path": "annotation-model/collections/collectionOptionals-manual.html", + "url": "/annotation-model/collections/collectionOptionals-manual.html" + }, + { + "path": "annotation-model/collections/pages/pageMusts-manual.html", + "url": "/annotation-model/collections/pages/pageMusts-manual.html" + }, + { + "path": "annotation-model/collections/pages/pageOptionals-manual.html", + "url": "/annotation-model/collections/pages/pageOptionals-manual.html" + }, { "path": "annotation-protocol/server/server-manual.html", "url": "/annotation-protocol/server/server-manual.html" @@ -137,6 +153,82 @@ "path": "battery-status/battery-unplugging-manual.html", "url": "/battery-status/battery-unplugging-manual.html" }, + { + "path": "fullscreen/api/document-exit-fullscreen-manual.html", + "url": "/fullscreen/api/document-exit-fullscreen-manual.html" + }, + { + "path": "fullscreen/api/document-fullscreen-element-manual.html", + "url": "/fullscreen/api/document-fullscreen-element-manual.html" + }, + { + "path": "fullscreen/api/document-onfullscreenchange-manual.html", + "url": "/fullscreen/api/document-onfullscreenchange-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-containing-iframe-manual.html", + "url": "/fullscreen/api/element-ready-check-containing-iframe-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-enabled-flag-not-set-manual.html", + "url": "/fullscreen/api/element-ready-check-enabled-flag-not-set-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html", + "url": "/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html", + "url": "/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-iframe-child-manual.html", + "url": "/fullscreen/api/element-ready-check-iframe-child-manual.html" + }, + { + "path": "fullscreen/api/element-ready-check-not-in-document-manual.html", + "url": "/fullscreen/api/element-ready-check-not-in-document-manual.html" + }, + { + "path": "fullscreen/api/element-request-fullscreen-manual.html", + "url": "/fullscreen/api/element-request-fullscreen-manual.html" + }, + { + "path": "fullscreen/api/element-request-fullscreen-non-top-manual.html", + "url": "/fullscreen/api/element-request-fullscreen-non-top-manual.html" + }, + { + "path": "fullscreen/api/element-request-fullscreen-svg-rect-manual.html", + "url": "/fullscreen/api/element-request-fullscreen-svg-rect-manual.html" + }, + { + "path": "fullscreen/api/element-request-fullscreen-svg-svg-manual.html", + "url": "/fullscreen/api/element-request-fullscreen-svg-svg-manual.html" + }, + { + "path": "fullscreen/api/element-request-fullscreen-top-manual.html", + "url": "/fullscreen/api/element-request-fullscreen-top-manual.html" + }, + { + "path": "fullscreen/model/remove-child-manual.html", + "url": "/fullscreen/model/remove-child-manual.html" + }, + { + "path": "fullscreen/model/remove-first-manual.html", + "url": "/fullscreen/model/remove-first-manual.html" + }, + { + "path": "fullscreen/model/remove-last-manual.html", + "url": "/fullscreen/model/remove-last-manual.html" + }, + { + "path": "fullscreen/model/remove-parent-manual.html", + "url": "/fullscreen/model/remove-parent-manual.html" + }, + { + "path": "fullscreen/model/remove-single-manual.html", + "url": "/fullscreen/model/remove-single-manual.html" + }, { "path": "gamepad/events-manual.html", "url": "/gamepad/events-manual.html" @@ -293,6 +385,10 @@ "path": "html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_2-manual.html", "url": "/html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_2-manual.html" }, + { + "path": "html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual.html", + "url": "/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual.html" + }, { "path": "html/browsers/history/the-location-interface/non-automated/manual_click_assign_during_load-manual.html", "url": "/html/browsers/history/the-location-interface/non-automated/manual_click_assign_during_load-manual.html" @@ -413,10 +509,22 @@ "path": "html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html", "url": "/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html" }, + { + "path": "html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html", + "url": "/html/browsers/windows/noreferrer-cross-origin-close-manual.sub.html" + }, { "path": "html/browsers/windows/noreferrer-cross-origin-manual.html", "url": "/html/browsers/windows/noreferrer-cross-origin-manual.html" }, + { + "path": "html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html", + "url": "/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html" + }, + { + "path": "html/editing/activation/click-manual.html", + "url": "/html/editing/activation/click-manual.html" + }, { "path": "html/editing/dnd/datastore/015-manual.html", "url": "/html/editing/dnd/datastore/015-manual.html" @@ -833,6 +941,14 @@ "path": "html/webappapis/system-state-and-capabilities/the-navigator-object/get-navigatorlanguage-manual.html", "url": "/html/webappapis/system-state-and-capabilities/the-navigator-object/get-navigatorlanguage-manual.html" }, + { + "path": "mathml/relations/html5-tree/href-manual.html", + "url": "/mathml/relations/html5-tree/href-manual.html" + }, + { + "path": "mediacapture-streams/MediaStream-id-manual.https.html", + "url": "/mediacapture-streams/MediaStream-id-manual.https.html" + }, { "path": "notifications/body-basic-manual.html", "url": "/notifications/body-basic-manual.html" @@ -1081,6 +1197,10 @@ "path": "pointerevents/pointerevent_element_haspointercapture-manual.html", "url": "/pointerevents/pointerevent_element_haspointercapture-manual.html" }, + { + "path": "pointerevents/pointerevent_element_haspointercapture_release_pending_capture-manual.html", + "url": "/pointerevents/pointerevent_element_haspointercapture_release_pending_capture-manual.html" + }, { "path": "pointerevents/pointerevent_gotpointercapture_before_first_pointerevent-manual.html", "url": "/pointerevents/pointerevent_gotpointercapture_before_first_pointerevent-manual.html" @@ -1137,6 +1257,10 @@ "path": "pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html", "url": "/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html" }, + { + "path": "pointerevents/pointerevent_pointermove_on_chorded_mouse_button-manual.html", + "url": "/pointerevents/pointerevent_pointermove_on_chorded_mouse_button-manual.html" + }, { "path": "pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html", "url": "/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html" @@ -1165,6 +1289,10 @@ "path": "pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual.html", "url": "/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual.html" }, + { + "path": "pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html", + "url": "/pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html" + }, { "path": "pointerevents/pointerevent_setpointercapture_disconnected-manual.html", "url": "/pointerevents/pointerevent_setpointercapture_disconnected-manual.html" @@ -1177,10 +1305,18 @@ "path": "pointerevents/pointerevent_setpointercapture_invalid_pointerid-manual.html", "url": "/pointerevents/pointerevent_setpointercapture_invalid_pointerid-manual.html" }, + { + "path": "pointerevents/pointerevent_setpointercapture_override_pending_capture_element-manual.html", + "url": "/pointerevents/pointerevent_setpointercapture_override_pending_capture_element-manual.html" + }, { "path": "pointerevents/pointerevent_setpointercapture_relatedtarget-manual.html", "url": "/pointerevents/pointerevent_setpointercapture_relatedtarget-manual.html" }, + { + "path": "pointerevents/pointerevent_setpointercapture_to_same_element_twice-manual.html", + "url": "/pointerevents/pointerevent_setpointercapture_to_same_element_twice-manual.html" + }, { "path": "pointerevents/pointerevent_suppress_compat_events_on_click-manual.html", "url": "/pointerevents/pointerevent_suppress_compat_events_on_click-manual.html" @@ -1309,6 +1445,10 @@ "path": "pointerlock/pointerlock_remove_target-manual.html", "url": "/pointerlock/pointerlock_remove_target-manual.html" }, + { + "path": "pointerlock/pointerlock_shadow-manual.html", + "url": "/pointerlock/pointerlock_shadow-manual.html" + }, { "path": "presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html", "url": "/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html" @@ -1322,20 +1462,32 @@ "url": "/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html" }, { - "path": "presentation-api/controlling-ua/defaultRequest_success-manual.html", - "url": "/presentation-api/controlling-ua/defaultRequest_success-manual.html" + "path": "presentation-api/controlling-ua/PresentationRequest_onconnectionavailable-manual.html", + "url": "/presentation-api/controlling-ua/PresentationRequest_onconnectionavailable-manual.html" }, { - "path": "presentation-api/controlling-ua/reconnectToPresentation_error-manual.html", - "url": "/presentation-api/controlling-ua/reconnectToPresentation_error-manual.html" + "path": "presentation-api/controlling-ua/defaultRequest_success-manual.html", + "url": "/presentation-api/controlling-ua/defaultRequest_success-manual.html" }, { "path": "presentation-api/controlling-ua/reconnectToPresentation_success-manual.html", "url": "/presentation-api/controlling-ua/reconnectToPresentation_success-manual.html" }, { - "path": "presentation-api/controlling-ua/startNewPresentation_error-manual.html", - "url": "/presentation-api/controlling-ua/startNewPresentation_error-manual.html" + "path": "presentation-api/controlling-ua/startNewPresentation_displaynotallowed-manual.html", + "url": "/presentation-api/controlling-ua/startNewPresentation_displaynotallowed-manual.html" + }, + { + "path": "presentation-api/controlling-ua/startNewPresentation_displaynotfound-manual.html", + "url": "/presentation-api/controlling-ua/startNewPresentation_displaynotfound-manual.html" + }, + { + "path": "presentation-api/controlling-ua/startNewPresentation_mixedcontent-manual.https.html", + "url": "/presentation-api/controlling-ua/startNewPresentation_mixedcontent-manual.https.html" + }, + { + "path": "presentation-api/controlling-ua/startNewPresentation_mixedcontent_multiple-manual.https.html", + "url": "/presentation-api/controlling-ua/startNewPresentation_mixedcontent_multiple-manual.https.html" }, { "path": "presentation-api/controlling-ua/startNewPresentation_sandboxing_error-manual.html", @@ -1349,6 +1501,10 @@ "path": "presentation-api/controlling-ua/startNewPresentation_success-manual.html", "url": "/presentation-api/controlling-ua/startNewPresentation_success-manual.html" }, + { + "path": "presentation-api/controlling-ua/startNewPresentation_unsettledpromise-manual.html", + "url": "/presentation-api/controlling-ua/startNewPresentation_unsettledpromise-manual.html" + }, { "path": "quirks-mode/active-and-hover-manual.html", "url": "/quirks-mode/active-and-hover-manual.html" @@ -2761,10 +2917,6 @@ "path": "svg/import/shapes-polyline-02-t-manual.svg", "url": "/svg/import/shapes-polyline-02-t-manual.svg" }, - { - "path": "svg/import/shapes-rect-01-t-manual.svg", - "url": "/svg/import/shapes-rect-01-t-manual.svg" - }, { "path": "svg/import/shapes-rect-02-t-manual.svg", "url": "/svg/import/shapes-rect-02-t-manual.svg" @@ -3477,6 +3629,10 @@ "path": "uievents/keyboard/key-manual.js", "url": "/uievents/keyboard/key-manual.js" }, + { + "path": "uievents/order-of-events/focus-events/focus-contained-manual.html", + "url": "/uievents/order-of-events/focus-events/focus-contained-manual.html" + }, { "path": "uievents/order-of-events/focus-events/focus-manual.html", "url": "/uievents/order-of-events/focus-events/focus-manual.html" @@ -3485,6 +3641,10 @@ "path": "uievents/order-of-events/focus-events/legacy-manual.html", "url": "/uievents/order-of-events/focus-events/legacy-manual.html" }, + { + "path": "uievents/order-of-events/mouse-events/click-cancel-manual.html", + "url": "/uievents/order-of-events/mouse-events/click-cancel-manual.html" + }, { "path": "uievents/order-of-events/mouse-events/click-on-body-manual.html", "url": "/uievents/order-of-events/mouse-events/click-on-body-manual.html" @@ -3497,10 +3657,22 @@ "path": "uievents/order-of-events/mouse-events/click-on-html-manual.html", "url": "/uievents/order-of-events/mouse-events/click-on-html-manual.html" }, + { + "path": "uievents/order-of-events/mouse-events/click-order-manual.html", + "url": "/uievents/order-of-events/mouse-events/click-order-manual.html" + }, { "path": "uievents/order-of-events/mouse-events/mouseevents-mousemove-manual.htm", "url": "/uievents/order-of-events/mouse-events/mouseevents-mousemove-manual.htm" }, + { + "path": "uievents/order-of-events/mouse-events/mousemove-across-manual.html", + "url": "/uievents/order-of-events/mouse-events/mousemove-across-manual.html" + }, + { + "path": "uievents/order-of-events/mouse-events/mousemove-between-manual.html", + "url": "/uievents/order-of-events/mouse-events/mousemove-between-manual.html" + }, { "path": "uievents/order-of-events/mouse-events/mouseover-out-manual.html", "url": "/uievents/order-of-events/mouse-events/mouseover-out-manual.html" @@ -4015,6 +4187,26 @@ ], "url": "/compat/webkit-text-fill-color-property-006.html" }, + { + "path": "content-security-policy/font-src/font-blacklisted.html", + "references": [ + [ + "/content-security-policy/font-src/font-blacklisted-ref.html", + "!=" + ] + ], + "url": "/content-security-policy/font-src/font-blacklisted.html" + }, + { + "path": "content-security-policy/font-src/font-whitelisted.html", + "references": [ + [ + "/content-security-policy/font-src/font-whitelisted-ref.html", + "==" + ] + ], + "url": "/content-security-policy/font-src/font-whitelisted.html" + }, { "path": "custom-elements/v0/registering/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html", "references": [ @@ -5535,6 +5727,26 @@ ], "url": "/html/rendering/replaced-elements/images/space.html" }, + { + "path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html", + "references": [ + [ + "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html", + "==" + ] + ], + "url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html" + }, + { + "path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html", + "references": [ + [ + "/html/semantics/document-metadata/the-link-element/stylesheet-media-ref.html", + "==" + ] + ], + "url": "/html/semantics/document-metadata/the-link-element/stylesheet-media.html" + }, { "path": "html/semantics/document-metadata/the-link-element/stylesheet-with-base.html", "references": [ @@ -5745,6 +5957,106 @@ ], "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html" }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html" + }, + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html" + }, { "path": "html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html", "references": [ @@ -5805,6 +6117,56 @@ ], "url": "/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html" }, + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1a.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1a.html" + }, + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1b.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1b.html" + }, + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1c.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1c.html" + }, + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1d.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1d.html" + }, + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1e.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1e.html" + }, { "path": "html/semantics/grouping-content/the-ol-element/reversed-2.html", "references": [ @@ -6115,6 +6477,356 @@ ], "url": "/http/basic-auth-cache-test.html" }, + { + "path": "mathml/presentation-markup/spaces/space-2.html", + "references": [ + [ + "/mathml/presentation-markup/spaces/space-2-ref.html", + "==" + ] + ], + "url": "/mathml/presentation-markup/spaces/space-2.html" + }, + { + "path": "mathml/relations/css-styling/color-1.html", + "references": [ + [ + "/mathml/relations/css-styling/color-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/color-1.html" + }, + { + "path": "mathml/relations/css-styling/display-1.html", + "references": [ + [ + "/mathml/relations/css-styling/display-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/display-1.html" + }, + { + "path": "mathml/relations/css-styling/lengths-1.html", + "references": [ + [ + "/mathml/relations/css-styling/lengths-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/lengths-1.html" + }, + { + "path": "mathml/relations/css-styling/lengths-2.html", + "references": [ + [ + "/mathml/relations/css-styling/lengths-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/lengths-2.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-bold-fraktur.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-fraktur-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-fraktur.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-bold-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-italic.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-bold-sans-serif.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-sans-serif.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-bold-script.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-script-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-script.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-bold.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-double-struck.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-double-struck-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-double-struck.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-fraktur.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-fraktur-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-fraktur.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-initial.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-initial-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-initial.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-italic.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-looped.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-looped-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-looped.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-monospace.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-monospace-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-monospace.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif-italic.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-script.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-script-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-script.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-stretched.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-stretched-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-stretched.html" + }, + { + "path": "mathml/relations/css-styling/mathvariant-tailed.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-tailed-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-tailed.html" + }, + { + "path": "mathml/relations/css-styling/visibility-1.html", + "references": [ + [ + "/mathml/relations/css-styling/visibility-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/visibility-1.html" + }, + { + "path": "mathml/relations/html5-tree/class-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/class-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/class-1.html" + }, + { + "path": "mathml/relations/html5-tree/color-attributes-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/color-attributes-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/color-attributes-1.html" + }, + { + "path": "mathml/relations/html5-tree/dynamic-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/dynamic-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/dynamic-1.html" + }, + { + "path": "mathml/relations/html5-tree/href-click-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/href-click-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/href-click-1.html" + }, + { + "path": "mathml/relations/html5-tree/href-click-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/href-click-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/href-click-2.html" + }, + { + "path": "mathml/relations/html5-tree/integration-point-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-1.html" + }, + { + "path": "mathml/relations/html5-tree/integration-point-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-2.html" + }, + { + "path": "mathml/relations/html5-tree/integration-point-3.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-3-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-3.html" + }, + { + "path": "mathml/relations/html5-tree/required-extensions-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/required-extensions-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/required-extensions-2.html" + }, + { + "path": "mathml/relations/html5-tree/unique-identifier-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/unique-identifier-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/unique-identifier-1.html" + }, + { + "path": "mathml/relations/html5-tree/unique-identifier-3.html", + "references": [ + [ + "/mathml/relations/html5-tree/unique-identifier-3-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/unique-identifier-3.html" + }, + { + "path": "mathml/relations/text-and-math/use-typo-metrics-1.html", + "references": [ + [ + "/mathml/relations/text-and-math/use-typo-metrics-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/text-and-math/use-typo-metrics-1.html" + }, { "path": "quirks-mode/historical/list-item-bullet-size.html", "references": [ @@ -6185,6 +6897,126 @@ ], "url": "/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html" }, + { + "path": "svg/linking/reftests/href-a-element-attr-change.html", + "references": [ + [ + "/svg/linking/reftests/href-a-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-a-element-attr-change.html" + }, + { + "path": "svg/linking/reftests/href-feImage-element.html", + "references": [ + [ + "/svg/linking/reftests/href-feImage-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-feImage-element.html" + }, + { + "path": "svg/linking/reftests/href-filter-element.html", + "references": [ + [ + "/svg/linking/reftests/href-filter-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-filter-element.html" + }, + { + "path": "svg/linking/reftests/href-gradient-element.html", + "references": [ + [ + "/svg/linking/reftests/href-gradient-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-gradient-element.html" + }, + { + "path": "svg/linking/reftests/href-image-element.html", + "references": [ + [ + "/svg/linking/reftests/href-image-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-image-element.html" + }, + { + "path": "svg/linking/reftests/href-pattern-element.html", + "references": [ + [ + "/svg/linking/reftests/href-pattern-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-pattern-element.html" + }, + { + "path": "svg/linking/reftests/href-textPath-element.html", + "references": [ + [ + "/svg/linking/reftests/href-textPath-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-textPath-element.html" + }, + { + "path": "svg/linking/reftests/href-use-element.html", + "references": [ + [ + "/svg/linking/reftests/href-use-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-use-element.html" + }, + { + "path": "svg/shapes/rect-01.svg", + "references": [ + [ + "/svg/shapes/rect-01-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-01.svg" + }, + { + "path": "svg/shapes/rect-02.svg", + "references": [ + [ + "/svg/shapes/rect-02-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-02.svg" + }, + { + "path": "svg/shapes/rect-03.svg", + "references": [ + [ + "/svg/shapes/rect-03-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-03.svg" + }, + { + "path": "svg/shapes/rect-04.svg", + "references": [ + [ + "/svg/shapes/rect-04-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-04.svg" + }, { "path": "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html", "references": [ @@ -8691,6 +9523,10 @@ "path": "2dcontext/compositing/2d.composite.globalAlpha.canvas.html", "url": "/2dcontext/compositing/2d.composite.globalAlpha.canvas.html" }, + { + "path": "2dcontext/compositing/2d.composite.globalAlpha.canvascopy.html", + "url": "/2dcontext/compositing/2d.composite.globalAlpha.canvascopy.html" + }, { "path": "2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html", "url": "/2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html" @@ -9395,6 +10231,126 @@ "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.invalidtype.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.invalidtype.html" }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html" + }, { "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html" @@ -9503,6 +10459,70 @@ "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.html4.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.html4.html" }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html" + }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html" + }, { "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html" @@ -9567,6 +10587,10 @@ "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html" }, + { + "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html", + "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html" + }, { "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html" @@ -9599,22 +10623,6 @@ "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html" }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-4.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-4.html" - }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-5.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-5.html" - }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-6.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-6.html" - }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-7.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-7.html" - }, { "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html" @@ -9635,14 +10643,6 @@ "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html" }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-6.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-6.html" - }, - { - "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-7.html", - "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-7.html" - }, { "path": "2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html", "url": "/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html" @@ -10263,6 +11263,10 @@ "path": "2dcontext/line-styles/2d.line.width.valid.html", "url": "/2dcontext/line-styles/2d.line.width.valid.html" }, + { + "path": "2dcontext/line-styles/setLineDash.html", + "url": "/2dcontext/line-styles/setLineDash.html" + }, { "path": "2dcontext/path-objects/2d.path.arc.angle.1.html", "url": "/2dcontext/path-objects/2d.path.arc.angle.1.html" @@ -10623,6 +11627,10 @@ "path": "2dcontext/path-objects/2d.path.lineTo.nextpoint.html", "url": "/2dcontext/path-objects/2d.path.lineTo.nextpoint.html" }, + { + "path": "2dcontext/path-objects/2d.path.lineTo.nonfinite.details.html", + "url": "/2dcontext/path-objects/2d.path.lineTo.nonfinite.details.html" + }, { "path": "2dcontext/path-objects/2d.path.lineTo.nonfinite.html", "url": "/2dcontext/path-objects/2d.path.lineTo.nonfinite.html" @@ -11529,7 +12537,7 @@ }, { "path": "FileAPI/FileReaderSync.worker.js", - "url": "/FileAPI/FileReaderSync.worker" + "url": "/FileAPI/FileReaderSync.worker.html" }, { "path": "FileAPI/blob/Blob-XHR-revoke.html", @@ -11545,7 +12553,7 @@ }, { "path": "FileAPI/blob/Blob-in-worker.worker.js", - "url": "/FileAPI/blob/Blob-in-worker.worker" + "url": "/FileAPI/blob/Blob-in-worker.worker.html" }, { "path": "FileAPI/blob/Blob-slice-overflow.html", @@ -11561,7 +12569,7 @@ }, { "path": "FileAPI/file/Worker-read-file-constructor.worker.js", - "url": "/FileAPI/file/Worker-read-file-constructor.worker" + "url": "/FileAPI/file/Worker-read-file-constructor.worker.html" }, { "path": "FileAPI/fileReader.html", @@ -11581,7 +12589,7 @@ }, { "path": "FileAPI/idlharness.worker.js", - "url": "/FileAPI/idlharness.worker" + "url": "/FileAPI/idlharness.worker.html" }, { "path": "FileAPI/reading-data-section/Determining-Encoding.html", @@ -12123,6 +13131,18 @@ "path": "IndexedDB/idbindex-multientry.htm", "url": "/IndexedDB/idbindex-multientry.htm" }, + { + "path": "IndexedDB/idbindex-rename-abort.html", + "url": "/IndexedDB/idbindex-rename-abort.html" + }, + { + "path": "IndexedDB/idbindex-rename-errors.html", + "url": "/IndexedDB/idbindex-rename-errors.html" + }, + { + "path": "IndexedDB/idbindex-rename.html", + "url": "/IndexedDB/idbindex-rename.html" + }, { "path": "IndexedDB/idbindex_count.htm", "url": "/IndexedDB/idbindex_count.htm" @@ -12255,6 +13275,18 @@ "path": "IndexedDB/idbkeyrange_incorrect.htm", "url": "/IndexedDB/idbkeyrange_incorrect.htm" }, + { + "path": "IndexedDB/idbobjectstore-rename-abort.html", + "url": "/IndexedDB/idbobjectstore-rename-abort.html" + }, + { + "path": "IndexedDB/idbobjectstore-rename-errors.html", + "url": "/IndexedDB/idbobjectstore-rename-errors.html" + }, + { + "path": "IndexedDB/idbobjectstore-rename-store.html", + "url": "/IndexedDB/idbobjectstore-rename-store.html" + }, { "path": "IndexedDB/idbobjectstore_add.htm", "url": "/IndexedDB/idbobjectstore_add.htm" @@ -12581,7 +13613,7 @@ }, { "path": "IndexedDB/interfaces.worker.js", - "url": "/IndexedDB/interfaces.worker" + "url": "/IndexedDB/interfaces.worker.html" }, { "path": "IndexedDB/key_invalid.htm", @@ -12627,6 +13659,22 @@ "path": "IndexedDB/string-list-ordering.htm", "url": "/IndexedDB/string-list-ordering.htm" }, + { + "path": "IndexedDB/transaction-abort-generator-revert.html", + "url": "/IndexedDB/transaction-abort-generator-revert.html" + }, + { + "path": "IndexedDB/transaction-abort-index-metadata-revert.html", + "url": "/IndexedDB/transaction-abort-index-metadata-revert.html" + }, + { + "path": "IndexedDB/transaction-abort-multiple-metadata-revert.html", + "url": "/IndexedDB/transaction-abort-multiple-metadata-revert.html" + }, + { + "path": "IndexedDB/transaction-abort-object-store-metadata-revert.html", + "url": "/IndexedDB/transaction-abort-object-store-metadata-revert.html" + }, { "path": "IndexedDB/transaction-create_in_versionchange.htm", "url": "/IndexedDB/transaction-create_in_versionchange.htm" @@ -12661,131 +13709,131 @@ }, { "path": "WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js", - "url": "/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker" + "url": "/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.html" }, { "path": "WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js", - "url": "/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker" + "url": "/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.html" }, { "path": "WebCryptoAPI/derive_bits_keys/hkdf.worker.js", - "url": "/WebCryptoAPI/derive_bits_keys/hkdf.worker" + "url": "/WebCryptoAPI/derive_bits_keys/hkdf.worker.html" }, { "path": "WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js", - "url": "/WebCryptoAPI/derive_bits_keys/pbkdf2.worker" + "url": "/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.html" }, { "path": "WebCryptoAPI/digest/digest.worker.js", - "url": "/WebCryptoAPI/digest/digest.worker" + "url": "/WebCryptoAPI/digest/digest.worker.html" }, { "path": "WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js", - "url": "/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker" + "url": "/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.html" }, { "path": "WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js", - "url": "/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker" + "url": "/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.html" }, { "path": "WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js", - "url": "/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker" + "url": "/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.html" }, { "path": "WebCryptoAPI/encrypt_decrypt/rsa.worker.js", - "url": "/WebCryptoAPI/encrypt_decrypt/rsa.worker" + "url": "/WebCryptoAPI/encrypt_decrypt/rsa.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures.worker.js", - "url": "/WebCryptoAPI/generateKey/failures.worker" + "url": "/WebCryptoAPI/generateKey/failures.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_AES-CBC.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_AES-CBC.worker" + "url": "/WebCryptoAPI/generateKey/failures_AES-CBC.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_AES-CTR.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_AES-CTR.worker" + "url": "/WebCryptoAPI/generateKey/failures_AES-CTR.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_AES-GCM.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_AES-GCM.worker" + "url": "/WebCryptoAPI/generateKey/failures_AES-GCM.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_AES-KW.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_AES-KW.worker" + "url": "/WebCryptoAPI/generateKey/failures_AES-KW.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_ECDH.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_ECDH.worker" + "url": "/WebCryptoAPI/generateKey/failures_ECDH.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_ECDSA.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_ECDSA.worker" + "url": "/WebCryptoAPI/generateKey/failures_ECDSA.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_HMAC.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_HMAC.worker" + "url": "/WebCryptoAPI/generateKey/failures_HMAC.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker" + "url": "/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_RSA-PSS.worker" + "url": "/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.html" }, { "path": "WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js", - "url": "/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker" + "url": "/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes.worker.js", - "url": "/WebCryptoAPI/generateKey/successes.worker" + "url": "/WebCryptoAPI/generateKey/successes.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_AES-CBC.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_AES-CBC.worker" + "url": "/WebCryptoAPI/generateKey/successes_AES-CBC.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_AES-CTR.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_AES-CTR.worker" + "url": "/WebCryptoAPI/generateKey/successes_AES-CTR.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_AES-GCM.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_AES-GCM.worker" + "url": "/WebCryptoAPI/generateKey/successes_AES-GCM.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_AES-KW.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_AES-KW.worker" + "url": "/WebCryptoAPI/generateKey/successes_AES-KW.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_ECDH.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_ECDH.worker" + "url": "/WebCryptoAPI/generateKey/successes_ECDH.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_ECDSA.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_ECDSA.worker" + "url": "/WebCryptoAPI/generateKey/successes_ECDSA.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_HMAC.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_HMAC.worker" + "url": "/WebCryptoAPI/generateKey/successes_HMAC.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker" + "url": "/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_RSA-PSS.worker" + "url": "/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.html" }, { "path": "WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js", - "url": "/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker" + "url": "/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.html" }, { "path": "WebCryptoAPI/getRandomValues.worker.js", - "url": "/WebCryptoAPI/getRandomValues.worker" + "url": "/WebCryptoAPI/getRandomValues.worker.html" }, { "path": "WebCryptoAPI/idlharness.html", @@ -12793,19 +13841,19 @@ }, { "path": "WebCryptoAPI/idlharness.worker.js", - "url": "/WebCryptoAPI/idlharness.worker" + "url": "/WebCryptoAPI/idlharness.worker.html" }, { "path": "WebCryptoAPI/import_export/ec_importKey.worker.js", - "url": "/WebCryptoAPI/import_export/ec_importKey.worker" + "url": "/WebCryptoAPI/import_export/ec_importKey.worker.html" }, { "path": "WebCryptoAPI/import_export/rsa_importKey.worker.js", - "url": "/WebCryptoAPI/import_export/rsa_importKey.worker" + "url": "/WebCryptoAPI/import_export/rsa_importKey.worker.html" }, { "path": "WebCryptoAPI/import_export/symmetric_importKey.worker.js", - "url": "/WebCryptoAPI/import_export/symmetric_importKey.worker" + "url": "/WebCryptoAPI/import_export/symmetric_importKey.worker.html" }, { "path": "WebCryptoAPI/import_export/test_ec_importKey.html", @@ -12821,19 +13869,19 @@ }, { "path": "WebCryptoAPI/sign_verify/ecdsa.worker.js", - "url": "/WebCryptoAPI/sign_verify/ecdsa.worker" + "url": "/WebCryptoAPI/sign_verify/ecdsa.worker.html" }, { "path": "WebCryptoAPI/sign_verify/hmac.worker.js", - "url": "/WebCryptoAPI/sign_verify/hmac.worker" + "url": "/WebCryptoAPI/sign_verify/hmac.worker.html" }, { "path": "WebCryptoAPI/sign_verify/rsa_pkcs.worker.js", - "url": "/WebCryptoAPI/sign_verify/rsa_pkcs.worker" + "url": "/WebCryptoAPI/sign_verify/rsa_pkcs.worker.html" }, { "path": "WebCryptoAPI/sign_verify/rsa_pss.worker.js", - "url": "/WebCryptoAPI/sign_verify/rsa_pss.worker" + "url": "/WebCryptoAPI/sign_verify/rsa_pss.worker.html" }, { "path": "WebCryptoAPI/test_getRandomValues.html", @@ -12841,7 +13889,11 @@ }, { "path": "WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js", - "url": "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker" + "url": "/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.html" + }, + { + "path": "WebIDL/current-realm.html", + "url": "/WebIDL/current-realm.html" }, { "path": "WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.html", @@ -12857,7 +13909,7 @@ }, { "path": "WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js", - "url": "/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker" + "url": "/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.html" }, { "path": "WebIDL/ecmascript-binding/es-exceptions/exceptions.html", @@ -12881,7 +13933,7 @@ }, { "path": "XMLHttpRequest/XMLHttpRequest-withCredentials.any.js", - "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.any.worker" + "url": "/XMLHttpRequest/XMLHttpRequest-withCredentials.any.worker.html" }, { "path": "XMLHttpRequest/abort-after-receive.htm", @@ -12909,7 +13961,7 @@ }, { "path": "XMLHttpRequest/abort-during-open.worker.js", - "url": "/XMLHttpRequest/abort-during-open.worker" + "url": "/XMLHttpRequest/abort-during-open.worker.html" }, { "path": "XMLHttpRequest/abort-during-unsent.htm", @@ -12996,8 +14048,8 @@ "url": "/XMLHttpRequest/event-timeout.htm" }, { - "path": "XMLHttpRequest/event-upload-progress-crossorigin.sub.htm", - "url": "/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm" + "path": "XMLHttpRequest/event-upload-progress-crossorigin.htm", + "url": "/XMLHttpRequest/event-upload-progress-crossorigin.htm" }, { "path": "XMLHttpRequest/event-upload-progress.htm", @@ -13444,8 +14496,8 @@ "url": "/XMLHttpRequest/send-no-response-event-order.htm" }, { - "path": "XMLHttpRequest/send-non-same-origin.sub.htm", - "url": "/XMLHttpRequest/send-non-same-origin.sub.htm" + "path": "XMLHttpRequest/send-non-same-origin.htm", + "url": "/XMLHttpRequest/send-non-same-origin.htm" }, { "path": "XMLHttpRequest/send-receive-utf16.htm", @@ -13505,7 +14557,7 @@ }, { "path": "XMLHttpRequest/send-send.worker.js", - "url": "/XMLHttpRequest/send-send.worker" + "url": "/XMLHttpRequest/send-send.worker.html" }, { "path": "XMLHttpRequest/send-sync-blocks-async.htm", @@ -13541,7 +14593,7 @@ }, { "path": "XMLHttpRequest/send-usp.worker.js", - "url": "/XMLHttpRequest/send-usp.worker" + "url": "/XMLHttpRequest/send-usp.worker.html" }, { "path": "XMLHttpRequest/setrequestheader-after-send.htm", @@ -13679,6 +14731,18 @@ "path": "battery-status/battery-promise.html", "url": "/battery-status/battery-promise.html" }, + { + "path": "compat/webkit-text-fill-color-currentColor.html", + "url": "/compat/webkit-text-fill-color-currentColor.html" + }, + { + "path": "console/console-is-a-namespace.any.js", + "url": "/console/console-is-a-namespace.any.html" + }, + { + "path": "console/console-is-a-namespace.any.js", + "url": "/console/console-is-a-namespace.any.worker.html" + }, { "path": "content-security-policy/blink-contrib-2/base-uri-allow.sub.html", "url": "/content-security-policy/blink-contrib-2/base-uri-allow.sub.html" @@ -14279,6 +15343,10 @@ "path": "content-security-policy/meta/meta-modified.html", "url": "/content-security-policy/meta/meta-modified.html" }, + { + "path": "content-security-policy/navigation/to-javascript-url.html", + "url": "/content-security-policy/navigation/to-javascript-url.html" + }, { "path": "content-security-policy/reporting/securitypolicyviolation-idl.html", "url": "/content-security-policy/reporting/securitypolicyviolation-idl.html" @@ -14319,6 +15387,82 @@ "path": "content-security-policy/script-src/script-src-1_4_2.html", "url": "/content-security-policy/script-src/script-src-1_4_2.html" }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_eval.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_eval.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_hashes.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_hashes.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_new_function.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_new_function.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html" + }, + { + "path": "content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html", + "url": "/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html" + }, + { + "path": "content-security-policy/securitypolicyviolation/blockeduri-eval.html", + "url": "/content-security-policy/securitypolicyviolation/blockeduri-eval.html" + }, + { + "path": "content-security-policy/securitypolicyviolation/blockeduri-inline.html", + "url": "/content-security-policy/securitypolicyviolation/blockeduri-inline.html" + }, + { + "path": "content-security-policy/securitypolicyviolation/idl.html", + "url": "/content-security-policy/securitypolicyviolation/idl.html" + }, + { + "path": "content-security-policy/securitypolicyviolation/targeting.html", + "url": "/content-security-policy/securitypolicyviolation/targeting.html" + }, { "path": "content-security-policy/style-src/style-src-3_1.html", "url": "/content-security-policy/style-src/style-src-3_1.html" @@ -14351,6 +15495,70 @@ "path": "content-security-policy/svg/svg-policy-with-resource.html", "url": "/content-security-policy/svg/svg-policy-with-resource.html" }, + { + "path": "content-security-policy/worker-src/dedicated-child.sub.html", + "url": "/content-security-policy/worker-src/dedicated-child.sub.html" + }, + { + "path": "content-security-policy/worker-src/dedicated-fallback.sub.html", + "url": "/content-security-policy/worker-src/dedicated-fallback.sub.html" + }, + { + "path": "content-security-policy/worker-src/dedicated-list.sub.html", + "url": "/content-security-policy/worker-src/dedicated-list.sub.html" + }, + { + "path": "content-security-policy/worker-src/dedicated-none.sub.html", + "url": "/content-security-policy/worker-src/dedicated-none.sub.html" + }, + { + "path": "content-security-policy/worker-src/dedicated-self.sub.html", + "url": "/content-security-policy/worker-src/dedicated-self.sub.html" + }, + { + "path": "content-security-policy/worker-src/service-child.https.sub.html", + "url": "/content-security-policy/worker-src/service-child.https.sub.html" + }, + { + "path": "content-security-policy/worker-src/service-fallback.https.sub.html", + "url": "/content-security-policy/worker-src/service-fallback.https.sub.html" + }, + { + "path": "content-security-policy/worker-src/service-list.https.sub.html", + "url": "/content-security-policy/worker-src/service-list.https.sub.html" + }, + { + "path": "content-security-policy/worker-src/service-none.https.sub.html", + "url": "/content-security-policy/worker-src/service-none.https.sub.html" + }, + { + "path": "content-security-policy/worker-src/service-self.https.sub.html", + "url": "/content-security-policy/worker-src/service-self.https.sub.html" + }, + { + "path": "content-security-policy/worker-src/shared-child.sub.html", + "url": "/content-security-policy/worker-src/shared-child.sub.html" + }, + { + "path": "content-security-policy/worker-src/shared-fallback.sub.html", + "url": "/content-security-policy/worker-src/shared-fallback.sub.html" + }, + { + "path": "content-security-policy/worker-src/shared-list.sub.html", + "url": "/content-security-policy/worker-src/shared-list.sub.html" + }, + { + "path": "content-security-policy/worker-src/shared-none.sub.html", + "url": "/content-security-policy/worker-src/shared-none.sub.html" + }, + { + "path": "content-security-policy/worker-src/shared-self.sub.html", + "url": "/content-security-policy/worker-src/shared-self.sub.html" + }, + { + "path": "cookies/path/match.html", + "url": "/cookies/path/match.html" + }, { "path": "cookies/secure/set-from-dom.https.sub.html", "url": "/cookies/secure/set-from-dom.https.sub.html" @@ -14443,6 +15651,10 @@ "path": "cssom-view/HTMLBody-ScrollArea_quirksmode.html", "url": "/cssom-view/HTMLBody-ScrollArea_quirksmode.html" }, + { + "path": "cssom-view/MediaQueryList-with-empty-string.html", + "url": "/cssom-view/MediaQueryList-with-empty-string.html" + }, { "path": "cssom-view/elementFromPoint.html", "url": "/cssom-view/elementFromPoint.html" @@ -14467,18 +15679,194 @@ "path": "cssom-view/scrollingElement.html", "url": "/cssom-view/scrollingElement.html" }, + { + "path": "cssom/serialize-values.html", + "url": "/cssom/serialize-values.html" + }, + { + "path": "custom-elements/CustomElementRegistry.html", + "url": "/custom-elements/CustomElementRegistry.html" + }, + { + "path": "custom-elements/Document-createElement.html", + "url": "/custom-elements/Document-createElement.html" + }, { "path": "custom-elements/HTMLElement-constructor.html", "url": "/custom-elements/HTMLElement-constructor.html" }, + { + "path": "custom-elements/adopted-callback.html", + "url": "/custom-elements/adopted-callback.html" + }, + { + "path": "custom-elements/attribute-changed-callback.html", + "url": "/custom-elements/attribute-changed-callback.html" + }, + { + "path": "custom-elements/connected-callbacks.html", + "url": "/custom-elements/connected-callbacks.html" + }, + { + "path": "custom-elements/custom-element-reaction-queue.html", + "url": "/custom-elements/custom-element-reaction-queue.html" + }, { "path": "custom-elements/custom-element-registry/define.html", "url": "/custom-elements/custom-element-registry/define.html" }, + { + "path": "custom-elements/disconnected-callbacks.html", + "url": "/custom-elements/disconnected-callbacks.html" + }, { "path": "custom-elements/htmlconstructor/newtarget.html", "url": "/custom-elements/htmlconstructor/newtarget.html" }, + { + "path": "custom-elements/parser/parser-constructs-custom-element-in-document-write.html", + "url": "/custom-elements/parser/parser-constructs-custom-element-in-document-write.html" + }, + { + "path": "custom-elements/parser/parser-constructs-custom-element-synchronously.html", + "url": "/custom-elements/parser/parser-constructs-custom-element-synchronously.html" + }, + { + "path": "custom-elements/parser/parser-constructs-custom-elements.html", + "url": "/custom-elements/parser/parser-constructs-custom-elements.html" + }, + { + "path": "custom-elements/parser/parser-fallsback-to-unknown-element.html", + "url": "/custom-elements/parser/parser-fallsback-to-unknown-element.html" + }, + { + "path": "custom-elements/parser/parser-sets-attributes-and-children.html", + "url": "/custom-elements/parser/parser-sets-attributes-and-children.html" + }, + { + "path": "custom-elements/parser/parser-uses-constructed-element.html", + "url": "/custom-elements/parser/parser-uses-constructed-element.html" + }, + { + "path": "custom-elements/parser/parser-uses-registry-of-owner-document.html", + "url": "/custom-elements/parser/parser-uses-registry-of-owner-document.html" + }, + { + "path": "custom-elements/reaction-timing.html", + "url": "/custom-elements/reaction-timing.html" + }, + { + "path": "custom-elements/reactions/Attr.html", + "url": "/custom-elements/reactions/Attr.html" + }, + { + "path": "custom-elements/reactions/CSSStyleDeclaration.html", + "url": "/custom-elements/reactions/CSSStyleDeclaration.html" + }, + { + "path": "custom-elements/reactions/ChildNode.html", + "url": "/custom-elements/reactions/ChildNode.html" + }, + { + "path": "custom-elements/reactions/DOMStringMap.html", + "url": "/custom-elements/reactions/DOMStringMap.html" + }, + { + "path": "custom-elements/reactions/DOMTokenList.html", + "url": "/custom-elements/reactions/DOMTokenList.html" + }, + { + "path": "custom-elements/reactions/Document.html", + "url": "/custom-elements/reactions/Document.html" + }, + { + "path": "custom-elements/reactions/Element.html", + "url": "/custom-elements/reactions/Element.html" + }, + { + "path": "custom-elements/reactions/ElementContentEditable.html", + "url": "/custom-elements/reactions/ElementContentEditable.html" + }, + { + "path": "custom-elements/reactions/HTMLAnchorElement.html", + "url": "/custom-elements/reactions/HTMLAnchorElement.html" + }, + { + "path": "custom-elements/reactions/HTMLElement.html", + "url": "/custom-elements/reactions/HTMLElement.html" + }, + { + "path": "custom-elements/reactions/HTMLOptionElement.html", + "url": "/custom-elements/reactions/HTMLOptionElement.html" + }, + { + "path": "custom-elements/reactions/HTMLOptionsCollection.html", + "url": "/custom-elements/reactions/HTMLOptionsCollection.html" + }, + { + "path": "custom-elements/reactions/HTMLOutputElement.html", + "url": "/custom-elements/reactions/HTMLOutputElement.html" + }, + { + "path": "custom-elements/reactions/HTMLSelectElement.html", + "url": "/custom-elements/reactions/HTMLSelectElement.html" + }, + { + "path": "custom-elements/reactions/HTMLTableElement.html", + "url": "/custom-elements/reactions/HTMLTableElement.html" + }, + { + "path": "custom-elements/reactions/HTMLTableRowElement.html", + "url": "/custom-elements/reactions/HTMLTableRowElement.html" + }, + { + "path": "custom-elements/reactions/HTMLTableSectionElement.html", + "url": "/custom-elements/reactions/HTMLTableSectionElement.html" + }, + { + "path": "custom-elements/reactions/HTMLTitleElement.html", + "url": "/custom-elements/reactions/HTMLTitleElement.html" + }, + { + "path": "custom-elements/reactions/NamedNodeMap.html", + "url": "/custom-elements/reactions/NamedNodeMap.html" + }, + { + "path": "custom-elements/reactions/Node.html", + "url": "/custom-elements/reactions/Node.html" + }, + { + "path": "custom-elements/reactions/ParentNode.html", + "url": "/custom-elements/reactions/ParentNode.html" + }, + { + "path": "custom-elements/reactions/Range.html", + "url": "/custom-elements/reactions/Range.html" + }, + { + "path": "custom-elements/reactions/Selection.html", + "url": "/custom-elements/reactions/Selection.html" + }, + { + "path": "custom-elements/reactions/ShadowRoot.html", + "url": "/custom-elements/reactions/ShadowRoot.html" + }, + { + "path": "custom-elements/upgrading.html", + "url": "/custom-elements/upgrading.html" + }, + { + "path": "custom-elements/upgrading/Node-cloneNode.html", + "url": "/custom-elements/upgrading/Node-cloneNode.html" + }, + { + "path": "custom-elements/upgrading/upgrading-enqueue-reactions.html", + "url": "/custom-elements/upgrading/upgrading-enqueue-reactions.html" + }, + { + "path": "custom-elements/upgrading/upgrading-parser-created-element.html", + "url": "/custom-elements/upgrading/upgrading-parser-created-element.html" + }, { "path": "custom-elements/v0/concepts/custom-elements-type-naming.html", "url": "/custom-elements/v0/concepts/custom-elements-type-naming.html" @@ -14759,6 +16147,10 @@ "path": "dom/events/Event-dispatch-bubbles-true.html", "url": "/dom/events/Event-dispatch-bubbles-true.html" }, + { + "path": "dom/events/Event-dispatch-click.html", + "url": "/dom/events/Event-dispatch-click.html" + }, { "path": "dom/events/Event-dispatch-detached-click.html", "url": "/dom/events/Event-dispatch-detached-click.html" @@ -14779,6 +16171,10 @@ "path": "dom/events/Event-dispatch-order.html", "url": "/dom/events/Event-dispatch-order.html" }, + { + "path": "dom/events/Event-dispatch-other-document.html", + "url": "/dom/events/Event-dispatch-other-document.html" + }, { "path": "dom/events/Event-dispatch-propagation-stopped.html", "url": "/dom/events/Event-dispatch-propagation-stopped.html" @@ -15711,10 +17107,6 @@ "path": "domparsing/innerhtml-01.xhtml", "url": "/domparsing/innerhtml-01.xhtml" }, - { - "path": "domparsing/innerhtml-02.html", - "url": "/domparsing/innerhtml-02.html" - }, { "path": "domparsing/innerhtml-03.xhtml", "url": "/domparsing/innerhtml-03.xhtml" @@ -15787,6 +17179,10 @@ "path": "editing/other/delete.html", "url": "/editing/other/delete.html" }, + { + "path": "editing/other/restoration.html", + "url": "/editing/other/restoration.html" + }, { "path": "editing/run/backcolor.html", "url": "/editing/run/backcolor.html" @@ -15987,94 +17383,14 @@ "path": "encoding/textencoder-utf16-surrogates.html", "url": "/encoding/textencoder-utf16-surrogates.html" }, - { - "path": "encrypted-media/Google/encrypted-media-clear-key-invalid-license.html", - "url": "/encrypted-media/Google/encrypted-media-clear-key-invalid-license.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html", - "url": "/encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-onencrypted.html", - "url": "/encrypted-media/Google/encrypted-media-onencrypted.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html", - "url": "/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html", - "url": "/encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-session-closed-event.html", - "url": "/encrypted-media/Google/encrypted-media-session-closed-event.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-setmediakeys.html", - "url": "/encrypted-media/Google/encrypted-media-setmediakeys.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-syntax.html", - "url": "/encrypted-media/Google/encrypted-media-syntax.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-unique-origin.html", - "url": "/encrypted-media/Google/encrypted-media-unique-origin.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-update-disallowed-input.html", - "url": "/encrypted-media/Google/encrypted-media-update-disallowed-input.html" - }, - { - "path": "encrypted-media/Google/encrypted-media-waiting-for-a-key.html", - "url": "/encrypted-media/Google/encrypted-media-waiting-for-a-key.html" - }, - { - "path": "encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html", - "url": "/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html" - }, - { - "path": "encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html", - "url": "/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html" - }, - { - "path": "encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html", - "url": "/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html" - }, { "path": "encrypted-media/clearkey-check-initdata-type.html", "url": "/encrypted-media/clearkey-check-initdata-type.html" }, + { + "path": "encrypted-media/clearkey-events-session-closed-event.html", + "url": "/encrypted-media/clearkey-events-session-closed-event.html" + }, { "path": "encrypted-media/clearkey-events.html", "url": "/encrypted-media/clearkey-events.html" @@ -16083,6 +17399,10 @@ "path": "encrypted-media/clearkey-generate-request-disallowed-input.html", "url": "/encrypted-media/clearkey-generate-request-disallowed-input.html" }, + { + "path": "encrypted-media/clearkey-invalid-license.html", + "url": "/encrypted-media/clearkey-invalid-license.html" + }, { "path": "encrypted-media/clearkey-keystatuses-multiple-sessions.html", "url": "/encrypted-media/clearkey-keystatuses-multiple-sessions.html" @@ -16123,6 +17443,14 @@ "path": "encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html", "url": "/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html" }, + { + "path": "encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html", + "url": "/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html" + }, + { + "path": "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html", + "url": "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html" + }, { "path": "encrypted-media/clearkey-mp4-playback-temporary-events.html", "url": "/encrypted-media/clearkey-mp4-playback-temporary-events.html" @@ -16159,22 +17487,94 @@ "path": "encrypted-media/clearkey-mp4-playback-temporary.html", "url": "/encrypted-media/clearkey-mp4-playback-temporary.html" }, + { + "path": "encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html", + "url": "/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html" + }, + { + "path": "encrypted-media/clearkey-mp4-setmediakeys.html", + "url": "/encrypted-media/clearkey-mp4-setmediakeys.html" + }, + { + "path": "encrypted-media/clearkey-mp4-syntax-mediakeys.html", + "url": "/encrypted-media/clearkey-mp4-syntax-mediakeys.html" + }, + { + "path": "encrypted-media/clearkey-mp4-syntax-mediakeysession.html", + "url": "/encrypted-media/clearkey-mp4-syntax-mediakeysession.html" + }, + { + "path": "encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html", + "url": "/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html" + }, + { + "path": "encrypted-media/clearkey-mp4-unique-origin.html", + "url": "/encrypted-media/clearkey-mp4-unique-origin.html" + }, + { + "path": "encrypted-media/clearkey-mp4-update-disallowed-input.html", + "url": "/encrypted-media/clearkey-mp4-update-disallowed-input.html" + }, + { + "path": "encrypted-media/clearkey-mp4-waiting-for-a-key.html", + "url": "/encrypted-media/clearkey-mp4-waiting-for-a-key.html" + }, { "path": "encrypted-media/clearkey-not-callable-after-createsession.html", "url": "/encrypted-media/clearkey-not-callable-after-createsession.html" }, + { + "path": "encrypted-media/clearkey-update-non-ascii-input.html", + "url": "/encrypted-media/clearkey-update-non-ascii-input.html" + }, { "path": "encrypted-media/drm-check-initdata-type.html", "url": "/encrypted-media/drm-check-initdata-type.html" }, + { + "path": "encrypted-media/drm-events-session-closed-event.html", + "url": "/encrypted-media/drm-events-session-closed-event.html" + }, { "path": "encrypted-media/drm-events.html", "url": "/encrypted-media/drm-events.html" }, + { + "path": "encrypted-media/drm-expiration.html", + "url": "/encrypted-media/drm-expiration.html" + }, { "path": "encrypted-media/drm-generate-request-disallowed-input.html", "url": "/encrypted-media/drm-generate-request-disallowed-input.html" }, + { + "path": "encrypted-media/drm-invalid-license.html", + "url": "/encrypted-media/drm-invalid-license.html" + }, { "path": "encrypted-media/drm-keystatuses-multiple-sessions.html", "url": "/encrypted-media/drm-keystatuses-multiple-sessions.html" @@ -16183,6 +17583,10 @@ "path": "encrypted-media/drm-keystatuses.html", "url": "/encrypted-media/drm-keystatuses.html" }, + { + "path": "encrypted-media/drm-mp4-onencrypted.html", + "url": "/encrypted-media/drm-mp4-onencrypted.html" + }, { "path": "encrypted-media/drm-mp4-playback-destroy-persistent-license.html", "url": "/encrypted-media/drm-mp4-playback-destroy-persistent-license.html" @@ -16203,6 +17607,14 @@ "path": "encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html", "url": "/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html" }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html", + "url": "/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html" + }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html", + "url": "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html" + }, { "path": "encrypted-media/drm-mp4-playback-temporary-multikey.html", "url": "/encrypted-media/drm-mp4-playback-temporary-multikey.html" @@ -16239,10 +17651,66 @@ "path": "encrypted-media/drm-mp4-playback-temporary.html", "url": "/encrypted-media/drm-mp4-playback-temporary.html" }, + { + "path": "encrypted-media/drm-mp4-reset-src-after-setmediakeys.html", + "url": "/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-again-after-playback.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-at-same-time.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-at-same-time.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html", + "url": "/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html" + }, + { + "path": "encrypted-media/drm-mp4-setmediakeys.html", + "url": "/encrypted-media/drm-mp4-setmediakeys.html" + }, + { + "path": "encrypted-media/drm-mp4-syntax-mediakeys.html", + "url": "/encrypted-media/drm-mp4-syntax-mediakeys.html" + }, + { + "path": "encrypted-media/drm-mp4-syntax-mediakeysession.html", + "url": "/encrypted-media/drm-mp4-syntax-mediakeysession.html" + }, + { + "path": "encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html", + "url": "/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html" + }, + { + "path": "encrypted-media/drm-mp4-unique-origin.html", + "url": "/encrypted-media/drm-mp4-unique-origin.html" + }, + { + "path": "encrypted-media/drm-mp4-waiting-for-a-key.html", + "url": "/encrypted-media/drm-mp4-waiting-for-a-key.html" + }, { "path": "encrypted-media/drm-not-callable-after-createsession.html", "url": "/encrypted-media/drm-not-callable-after-createsession.html" }, + { + "path": "encrypted-media/drm-temporary-license-type.html", + "url": "/encrypted-media/drm-temporary-license-type.html" + }, { "path": "encrypted-media/idlharness.html", "url": "/encrypted-media/idlharness.html" @@ -16257,7 +17725,7 @@ }, { "path": "eventsource/dedicated-worker/eventsource-eventtarget.worker.js", - "url": "/eventsource/dedicated-worker/eventsource-eventtarget.worker" + "url": "/eventsource/dedicated-worker/eventsource-eventtarget.worker.html" }, { "path": "eventsource/dedicated-worker/eventsource-onmesage.htm", @@ -16307,6 +17775,10 @@ "path": "eventsource/eventsource-eventtarget.htm", "url": "/eventsource/eventsource-eventtarget.htm" }, + { + "path": "eventsource/eventsource-onmessage-realm.htm", + "url": "/eventsource/eventsource-onmessage-realm.htm" + }, { "path": "eventsource/eventsource-onmessage.htm", "url": "/eventsource/eventsource-onmessage.htm" @@ -16479,6 +17951,18 @@ "path": "fetch/api/basic/accept-header.html", "url": "/fetch/api/basic/accept-header.html" }, + { + "path": "fetch/api/basic/conditional-get.html", + "url": "/fetch/api/basic/conditional-get.html" + }, + { + "path": "fetch/api/basic/error-after-response.html", + "url": "/fetch/api/basic/error-after-response.html" + }, + { + "path": "fetch/api/basic/integrity-sharedworker.html", + "url": "/fetch/api/basic/integrity-sharedworker.html" + }, { "path": "fetch/api/basic/integrity-worker.html", "url": "/fetch/api/basic/integrity-worker.html" @@ -16539,6 +18023,14 @@ "path": "fetch/api/basic/request-referrer.html", "url": "/fetch/api/basic/request-referrer.html" }, + { + "path": "fetch/api/basic/request-upload-worker.html", + "url": "/fetch/api/basic/request-upload-worker.html" + }, + { + "path": "fetch/api/basic/request-upload.html", + "url": "/fetch/api/basic/request-upload.html" + }, { "path": "fetch/api/basic/response-url-worker.html", "url": "/fetch/api/basic/response-url-worker.html" @@ -16831,6 +18323,38 @@ "path": "fetch/api/redirect/redirect-to-dataurl.html", "url": "/fetch/api/redirect/redirect-to-dataurl.html" }, + { + "path": "fetch/api/request/multi-globals/url-parsing.html", + "url": "/fetch/api/request/multi-globals/url-parsing.html" + }, + { + "path": "fetch/api/request/request-cache-default-conditional.html", + "url": "/fetch/api/request/request-cache-default-conditional.html" + }, + { + "path": "fetch/api/request/request-cache-default.html", + "url": "/fetch/api/request/request-cache-default.html" + }, + { + "path": "fetch/api/request/request-cache-force-cache.html", + "url": "/fetch/api/request/request-cache-force-cache.html" + }, + { + "path": "fetch/api/request/request-cache-no-cache.html", + "url": "/fetch/api/request/request-cache-no-cache.html" + }, + { + "path": "fetch/api/request/request-cache-no-store.html", + "url": "/fetch/api/request/request-cache-no-store.html" + }, + { + "path": "fetch/api/request/request-cache-only-if-cached.html", + "url": "/fetch/api/request/request-cache-only-if-cached.html" + }, + { + "path": "fetch/api/request/request-cache-reload.html", + "url": "/fetch/api/request/request-cache-reload.html" + }, { "path": "fetch/api/request/request-clone.sub.html", "url": "/fetch/api/request/request-clone.sub.html" @@ -16875,6 +18399,10 @@ "path": "fetch/api/request/request-structure.html", "url": "/fetch/api/request/request-structure.html" }, + { + "path": "fetch/api/response/multi-globals/url-parsing.html", + "url": "/fetch/api/response/multi-globals/url-parsing.html" + }, { "path": "fetch/api/response/response-cancel-stream.html", "url": "/fetch/api/response/response-cancel-stream.html" @@ -17021,7 +18549,7 @@ }, { "path": "hr-time/basic.worker.js", - "url": "/hr-time/basic.worker" + "url": "/hr-time/basic.worker.html" }, { "path": "hr-time/idlharness.html", @@ -17435,6 +18963,10 @@ "path": "html/browsers/history/the-history-interface/history_go_plus.html", "url": "/html/browsers/history/the-history-interface/history_go_plus.html" }, + { + "path": "html/browsers/history/the-history-interface/history_go_to_uri.html", + "url": "/html/browsers/history/the-history-interface/history_go_to_uri.html" + }, { "path": "html/browsers/history/the-history-interface/history_go_undefined.html", "url": "/html/browsers/history/the-history-interface/history_go_undefined.html" @@ -17479,10 +19011,6 @@ "path": "html/browsers/history/the-history-interface/joint_session_history/002.html", "url": "/html/browsers/history/the-history-interface/joint_session_history/002.html" }, - { - "path": "html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html", - "url": "/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html" - }, { "path": "html/browsers/history/the-history-interface/traverse_the_history_1.html", "url": "/html/browsers/history/the-history-interface/traverse_the_history_1.html" @@ -17539,6 +19067,10 @@ "path": "html/browsers/history/the-location-interface/document_location.html", "url": "/html/browsers/history/the-location-interface/document_location.html" }, + { + "path": "html/browsers/history/the-location-interface/location-prototype-setting.html", + "url": "/html/browsers/history/the-location-interface/location-prototype-setting.html" + }, { "path": "html/browsers/history/the-location-interface/location-stringifier.html", "url": "/html/browsers/history/the-location-interface/location-stringifier.html" @@ -17624,8 +19156,8 @@ "url": "/html/browsers/history/the-location-interface/scripted_form_submit_assign_during_load.html" }, { - "path": "html/browsers/history/the-location-interface/security_location_0.sub.htm", - "url": "/html/browsers/history/the-location-interface/security_location_0.sub.htm" + "path": "html/browsers/history/the-location-interface/security_location_0.htm", + "url": "/html/browsers/history/the-location-interface/security_location_0.htm" }, { "path": "html/browsers/offline/application-cache-api/api_status_idle.html", @@ -17679,6 +19211,22 @@ "path": "html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html", "url": "/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain.html" }, + { + "path": "html/browsers/sandboxing/sandbox-allow-same-origin.html", + "url": "/html/browsers/sandboxing/sandbox-allow-same-origin.html" + }, + { + "path": "html/browsers/sandboxing/sandbox-allow-scripts.html", + "url": "/html/browsers/sandboxing/sandbox-allow-scripts.html" + }, + { + "path": "html/browsers/sandboxing/sandbox-disallow-same-origin.html", + "url": "/html/browsers/sandboxing/sandbox-disallow-same-origin.html" + }, + { + "path": "html/browsers/sandboxing/sandbox-disallow-scripts.html", + "url": "/html/browsers/sandboxing/sandbox-disallow-scripts.html" + }, { "path": "html/browsers/the-window-object/Document-defaultView.html", "url": "/html/browsers/the-window-object/Document-defaultView.html" @@ -17744,8 +19292,8 @@ "url": "/html/browsers/the-window-object/named-access-on-the-window-object/window-null-names.html" }, { - "path": "html/browsers/the-window-object/security-window/window-security.sub.html", - "url": "/html/browsers/the-window-object/security-window/window-security.sub.html" + "path": "html/browsers/the-window-object/security-window/window-security.html", + "url": "/html/browsers/the-window-object/security-window/window-security.html" }, { "path": "html/browsers/the-window-object/window-aliases.html", @@ -17763,6 +19311,10 @@ "path": "html/browsers/the-window-object/window-named-properties.html", "url": "/html/browsers/the-window-object/window-named-properties.html" }, + { + "path": "html/browsers/the-window-object/window-open-noopener.html", + "url": "/html/browsers/the-window-object/window-open-noopener.html" + }, { "path": "html/browsers/the-window-object/window-properties.html", "url": "/html/browsers/the-window-object/window-properties.html" @@ -17804,8 +19356,8 @@ "url": "/html/browsers/windows/browsing-context-names/browsing-context-default-name.html" }, { - "path": "html/browsers/windows/nested-browsing-contexts/frameElement.sub.html", - "url": "/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html" + "path": "html/browsers/windows/nested-browsing-contexts/frameElement.html", + "url": "/html/browsers/windows/nested-browsing-contexts/frameElement.html" }, { "path": "html/browsers/windows/nested-browsing-contexts/window-top-001.html", @@ -17820,16 +19372,16 @@ "url": "/html/browsers/windows/noreferrer.html" }, { - "path": "html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html", - "url": "/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html" + "path": "html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html", + "url": "/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html" }, { "path": "html/dom/documents/dom-tree-accessors/Document.body.html", "url": "/html/dom/documents/dom-tree-accessors/Document.body.html" }, { - "path": "html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html", - "url": "/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html" + "path": "html/dom/documents/dom-tree-accessors/Document.currentScript.html", + "url": "/html/dom/documents/dom-tree-accessors/Document.currentScript.html" }, { "path": "html/dom/documents/dom-tree-accessors/Document.getElementsByClassName-null-undef.html", @@ -18591,10 +20143,18 @@ "path": "html/editing/focus/focus-management/focus-events.html", "url": "/html/editing/focus/focus-management/focus-events.html" }, + { + "path": "html/editing/focus/processing-model/focus-fixup-rule-one-no-dialogs.html", + "url": "/html/editing/focus/processing-model/focus-fixup-rule-one-no-dialogs.html" + }, { "path": "html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-default-value.html", "url": "/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-default-value.html" }, + { + "path": "html/infrastructure/common-dom-interfaces/collections/historical.html", + "url": "/html/infrastructure/common-dom-interfaces/collections/historical.html" + }, { "path": "html/infrastructure/common-dom-interfaces/collections/htmlallcollection.html", "url": "/html/infrastructure/common-dom-interfaces/collections/htmlallcollection.html" @@ -18704,8 +20264,8 @@ "url": "/html/semantics/document-metadata/the-base-element/base_href_invalid.html" }, { - "path": "html/semantics/document-metadata/the-base-element/base_href_specified.sub.html", - "url": "/html/semantics/document-metadata/the-base-element/base_href_specified.sub.html" + "path": "html/semantics/document-metadata/the-base-element/base_href_specified.html", + "url": "/html/semantics/document-metadata/the-base-element/base_href_specified.html" }, { "path": "html/semantics/document-metadata/the-base-element/base_href_unspecified.html", @@ -19987,6 +21547,10 @@ "path": "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html", "url": "/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html" }, + { + "path": "html/semantics/embedded-content/the-embed-element/historical.html", + "url": "/html/semantics/embedded-content/the-embed-element/historical.html" + }, { "path": "html/semantics/embedded-content/the-iframe-element/change_parentage.html", "url": "/html/semantics/embedded-content/the-iframe-element/change_parentage.html" @@ -20003,6 +21567,10 @@ "path": "html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html", "url": "/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html" }, + { + "path": "html/semantics/embedded-content/the-iframe-element/iframe-append-to-child-document.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe-append-to-child-document.html" + }, { "path": "html/semantics/embedded-content/the-iframe-element/iframe-load-event.html", "url": "/html/semantics/embedded-content/the-iframe-element/iframe-load-event.html" @@ -20016,12 +21584,28 @@ "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html" }, { - "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html", - "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html" + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html" }, { - "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html", - "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html" + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html" + }, + { + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html" + }, + { + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html" + }, + { + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html" + }, + { + "path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html", + "url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html" }, { "path": "html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_01.html", @@ -20055,6 +21639,10 @@ "path": "html/semantics/embedded-content/the-img-element/current-pixel-density/error.html", "url": "/html/semantics/embedded-content/the-img-element/current-pixel-density/error.html" }, + { + "path": "html/semantics/embedded-content/the-img-element/data-url.html", + "url": "/html/semantics/embedded-content/the-img-element/data-url.html" + }, { "path": "html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html", "url": "/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html" @@ -20095,6 +21683,14 @@ "path": "html/semantics/embedded-content/the-img-element/update-the-source-set.html", "url": "/html/semantics/embedded-content/the-img-element/update-the-source-set.html" }, + { + "path": "html/semantics/embedded-content/the-img-element/usemap-casing.html", + "url": "/html/semantics/embedded-content/the-img-element/usemap-casing.html" + }, + { + "path": "html/semantics/embedded-content/the-object-element/historical.html", + "url": "/html/semantics/embedded-content/the-object-element/historical.html" + }, { "path": "html/semantics/embedded-content/the-object-element/object-attributes.html", "url": "/html/semantics/embedded-content/the-object-element/object-attributes.html" @@ -20111,6 +21707,10 @@ "path": "html/semantics/embedded-content/the-object-element/object-handler.html", "url": "/html/semantics/embedded-content/the-object-element/object-handler.html" }, + { + "path": "html/semantics/embedded-content/the-object-element/usemap-casing.html", + "url": "/html/semantics/embedded-content/the-object-element/usemap-casing.html" + }, { "path": "html/semantics/embedded-content/the-video-element/video-tabindex.html", "url": "/html/semantics/embedded-content/the-video-element/video-tabindex.html" @@ -20271,6 +21871,10 @@ "path": "html/semantics/forms/the-fieldset-element/disabled-002.xhtml", "url": "/html/semantics/forms/the-fieldset-element/disabled-002.xhtml" }, + { + "path": "html/semantics/forms/the-form-element/form-action-url.html", + "url": "/html/semantics/forms/the-form-element/form-action-url.html" + }, { "path": "html/semantics/forms/the-form-element/form-autocomplete.html", "url": "/html/semantics/forms/the-form-element/form-autocomplete.html" @@ -20503,6 +22107,10 @@ "path": "html/semantics/forms/the-progress-element/progress.html", "url": "/html/semantics/forms/the-progress-element/progress.html" }, + { + "path": "html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html", + "url": "/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html" + }, { "path": "html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html", "url": "/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html" @@ -20523,6 +22131,10 @@ "path": "html/semantics/forms/the-select-element/select-remove.html", "url": "/html/semantics/forms/the-select-element/select-remove.html" }, + { + "path": "html/semantics/forms/the-select-element/selected-index.html", + "url": "/html/semantics/forms/the-select-element/selected-index.html" + }, { "path": "html/semantics/forms/the-textarea-element/cloning-steps.html", "url": "/html/semantics/forms/the-textarea-element/cloning-steps.html" @@ -20619,6 +22231,10 @@ "path": "html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter.html", "url": "/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_getter.html" }, + { + "path": "html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html", + "url": "/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html" + }, { "path": "html/semantics/scripting-1/the-script-element/async_001.htm", "url": "/html/semantics/scripting-1/the-script-element/async_001.htm" @@ -20663,6 +22279,10 @@ "path": "html/semantics/scripting-1/the-script-element/async_011.htm", "url": "/html/semantics/scripting-1/the-script-element/async_011.htm" }, + { + "path": "html/semantics/scripting-1/the-script-element/data-url.html", + "url": "/html/semantics/scripting-1/the-script-element/data-url.html" + }, { "path": "html/semantics/scripting-1/the-script-element/fetch-src/alpha/base.html", "url": "/html/semantics/scripting-1/the-script-element/fetch-src/alpha/base.html" @@ -20739,6 +22359,18 @@ "path": "html/semantics/scripting-1/the-script-element/script-not-found-not-executed.html", "url": "/html/semantics/scripting-1/the-script-element/script-not-found-not-executed.html" }, + { + "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html", + "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html" + }, + { + "path": "html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html", + "url": "/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html" + }, + { + "path": "html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html", + "url": "/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html" + }, { "path": "html/semantics/scripting-1/the-script-element/script-onload-string.html", "url": "/html/semantics/scripting-1/the-script-element/script-onload-string.html" @@ -21223,6 +22855,34 @@ "path": "html/webappapis/atob/base64.html", "url": "/html/webappapis/atob/base64.html" }, + { + "path": "html/webappapis/idle-callbacks/callback-exception.html", + "url": "/html/webappapis/idle-callbacks/callback-exception.html" + }, + { + "path": "html/webappapis/idle-callbacks/callback-iframe.html", + "url": "/html/webappapis/idle-callbacks/callback-iframe.html" + }, + { + "path": "html/webappapis/idle-callbacks/callback-invoked.html", + "url": "/html/webappapis/idle-callbacks/callback-invoked.html" + }, + { + "path": "html/webappapis/idle-callbacks/callback-multiple-calls.html", + "url": "/html/webappapis/idle-callbacks/callback-multiple-calls.html" + }, + { + "path": "html/webappapis/idle-callbacks/callback-timeout.html", + "url": "/html/webappapis/idle-callbacks/callback-timeout.html" + }, + { + "path": "html/webappapis/idle-callbacks/cancel-invoked.html", + "url": "/html/webappapis/idle-callbacks/cancel-invoked.html" + }, + { + "path": "html/webappapis/idle-callbacks/idlharness.html", + "url": "/html/webappapis/idle-callbacks/idlharness.html" + }, { "path": "html/webappapis/scripting/event-loops/microtask_after_raf.html", "url": "/html/webappapis/scripting/event-loops/microtask_after_raf.html" @@ -21271,10 +22931,18 @@ "path": "html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-once.html", "url": "/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-once.html" }, + { + "path": "html/webappapis/scripting/events/messageevent-constructor.https.html", + "url": "/html/webappapis/scripting/events/messageevent-constructor.https.html" + }, { "path": "html/webappapis/scripting/events/onerroreventhandler.html", "url": "/html/webappapis/scripting/events/onerroreventhandler.html" }, + { + "path": "html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html", + "url": "/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html" + }, { "path": "html/webappapis/scripting/processing-model-2/addEventListener.html", "url": "/html/webappapis/scripting/processing-model-2/addEventListener.html" @@ -21409,7 +23077,7 @@ }, { "path": "html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.js", - "url": "/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker" + "url": "/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.html" }, { "path": "html/webappapis/system-state-and-capabilities/the-navigator-object/content.html", @@ -21483,6 +23151,30 @@ "path": "http/content_length.html", "url": "/http/content_length.html" }, + { + "path": "imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html", + "url": "/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html" + }, + { + "path": "imagebitmap-renderingcontext/context-creation-with-alpha.html", + "url": "/imagebitmap-renderingcontext/context-creation-with-alpha.html" + }, + { + "path": "imagebitmap-renderingcontext/context-creation.html", + "url": "/imagebitmap-renderingcontext/context-creation.html" + }, + { + "path": "imagebitmap-renderingcontext/context-preserves-canvas.html", + "url": "/imagebitmap-renderingcontext/context-preserves-canvas.html" + }, + { + "path": "imagebitmap-renderingcontext/tranferFromImageBitmap-null.html", + "url": "/imagebitmap-renderingcontext/tranferFromImageBitmap-null.html" + }, + { + "path": "imagebitmap-renderingcontext/transferFromImageBitmap-detached.html", + "url": "/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html" + }, { "path": "infrastructure/failing-test.html", "url": "/infrastructure/failing-test.html" @@ -21551,6 +23243,102 @@ "path": "js/builtins/WeakMap.prototype-properties.html", "url": "/js/builtins/WeakMap.prototype-properties.html" }, + { + "path": "mathml/presentation-markup/fractions/frac-1.html", + "url": "/mathml/presentation-markup/fractions/frac-1.html" + }, + { + "path": "mathml/presentation-markup/fractions/frac-parameters-1.html", + "url": "/mathml/presentation-markup/fractions/frac-parameters-1.html" + }, + { + "path": "mathml/presentation-markup/fractions/frac-parameters-2.html", + "url": "/mathml/presentation-markup/fractions/frac-parameters-2.html" + }, + { + "path": "mathml/presentation-markup/operators/mo-axis-height-1.html", + "url": "/mathml/presentation-markup/operators/mo-axis-height-1.html" + }, + { + "path": "mathml/presentation-markup/radicals/root-parameters-1.html", + "url": "/mathml/presentation-markup/radicals/root-parameters-1.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-1.html", + "url": "/mathml/presentation-markup/scripts/subsup-1.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-2.html", + "url": "/mathml/presentation-markup/scripts/subsup-2.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-3.html", + "url": "/mathml/presentation-markup/scripts/subsup-3.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-4.html", + "url": "/mathml/presentation-markup/scripts/subsup-4.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-5.html", + "url": "/mathml/presentation-markup/scripts/subsup-5.html" + }, + { + "path": "mathml/presentation-markup/scripts/subsup-parameters-1.html", + "url": "/mathml/presentation-markup/scripts/subsup-parameters-1.html" + }, + { + "path": "mathml/presentation-markup/scripts/underover-1.html", + "url": "/mathml/presentation-markup/scripts/underover-1.html" + }, + { + "path": "mathml/presentation-markup/scripts/underover-parameters-1.html", + "url": "/mathml/presentation-markup/scripts/underover-parameters-1.html" + }, + { + "path": "mathml/presentation-markup/scripts/underover-parameters-2.html", + "url": "/mathml/presentation-markup/scripts/underover-parameters-2.html" + }, + { + "path": "mathml/presentation-markup/scripts/underover-parameters-3.html", + "url": "/mathml/presentation-markup/scripts/underover-parameters-3.html" + }, + { + "path": "mathml/presentation-markup/scripts/underover-parameters-4.html", + "url": "/mathml/presentation-markup/scripts/underover-parameters-4.html" + }, + { + "path": "mathml/presentation-markup/spaces/space-1.html", + "url": "/mathml/presentation-markup/spaces/space-1.html" + }, + { + "path": "mathml/presentation-markup/tables/table-axis-height.html", + "url": "/mathml/presentation-markup/tables/table-axis-height.html" + }, + { + "path": "mathml/relations/css-styling/displaystyle-1.html", + "url": "/mathml/relations/css-styling/displaystyle-1.html" + }, + { + "path": "mathml/relations/css-styling/lengths-3.html", + "url": "/mathml/relations/css-styling/lengths-3.html" + }, + { + "path": "mathml/relations/html5-tree/class-2.html", + "url": "/mathml/relations/html5-tree/class-2.html" + }, + { + "path": "mathml/relations/html5-tree/display-1.html", + "url": "/mathml/relations/html5-tree/display-1.html" + }, + { + "path": "mathml/relations/html5-tree/required-extensions-1.html", + "url": "/mathml/relations/html5-tree/required-extensions-1.html" + }, + { + "path": "mathml/relations/html5-tree/unique-identifier-2.html", + "url": "/mathml/relations/html5-tree/unique-identifier-2.html" + }, { "path": "media-source/SourceBuffer-abort-removed.html", "url": "/media-source/SourceBuffer-abort-removed.html" @@ -21775,6 +23563,10 @@ "path": "media-source/mediasource-trackdefaultlist.html", "url": "/media-source/mediasource-trackdefaultlist.html" }, + { + "path": "mediacapture-record/BlobEvent-constructor.html", + "url": "/mediacapture-record/BlobEvent-constructor.html" + }, { "path": "mediacapture-streams/GUM-api.https.html", "url": "/mediacapture-streams/GUM-api.https.html" @@ -21835,10 +23627,6 @@ "path": "mediacapture-streams/MediaStream-gettrackid.https.html", "url": "/mediacapture-streams/MediaStream-gettrackid.https.html" }, - { - "path": "mediacapture-streams/MediaStream-id-manual.https.html", - "url": "/mediacapture-streams/MediaStream-id-manual.https.html" - }, { "path": "mediacapture-streams/MediaStream-idl.https.html", "url": "/mediacapture-streams/MediaStream-idl.https.html" @@ -23923,6 +25711,10 @@ "path": "payment-request/payment-request-in-iframe.html", "url": "/payment-request/payment-request-in-iframe.html" }, + { + "path": "performance-timeline/case-sensitivity.html", + "url": "/performance-timeline/case-sensitivity.html" + }, { "path": "performance-timeline/idlharness.html", "url": "/performance-timeline/idlharness.html" @@ -23955,10 +25747,6 @@ "path": "pointerevents/pointerevent_constructor.html", "url": "/pointerevents/pointerevent_constructor.html" }, - { - "path": "pointerevents/pointerevent_pointermove-on-chorded-mouse-button.html", - "url": "/pointerevents/pointerevent_pointermove-on-chorded-mouse-button.html" - }, { "path": "pointerevents/pointerevent_touch-action-illegal.html", "url": "/pointerevents/pointerevent_touch-action-illegal.html" @@ -24007,6 +25795,10 @@ "path": "presentation-api/controlling-ua/reconnectToPresentation_mixedcontent.https.html", "url": "/presentation-api/controlling-ua/reconnectToPresentation_mixedcontent.https.html" }, + { + "path": "presentation-api/controlling-ua/reconnectToPresentation_notfound_error.html", + "url": "/presentation-api/controlling-ua/reconnectToPresentation_notfound_error.html" + }, { "path": "presentation-api/controlling-ua/reconnectToPresentation_sandboxing_error.html", "url": "/presentation-api/controlling-ua/reconnectToPresentation_sandboxing_error.html" @@ -24019,14 +25811,6 @@ "path": "presentation-api/controlling-ua/startNewPresentation_error.html", "url": "/presentation-api/controlling-ua/startNewPresentation_error.html" }, - { - "path": "presentation-api/controlling-ua/startNewPresentation_mixedcontent-manual.https.html", - "url": "/presentation-api/controlling-ua/startNewPresentation_mixedcontent-manual.https.html" - }, - { - "path": "presentation-api/controlling-ua/startNewPresentation_mixedcontent_multiple-manual.https.html", - "url": "/presentation-api/controlling-ua/startNewPresentation_mixedcontent_multiple-manual.https.html" - }, { "path": "presentation-api/receiving-ua/idlharness.html", "url": "/presentation-api/receiving-ua/idlharness.html" @@ -29447,6 +31231,14 @@ "path": "screen-orientation/orientation-reading.html", "url": "/screen-orientation/orientation-reading.html" }, + { + "path": "secure-contexts/basic-dedicated-worker.html", + "url": "/secure-contexts/basic-dedicated-worker.html" + }, + { + "path": "secure-contexts/basic-dedicated-worker.https.html", + "url": "/secure-contexts/basic-dedicated-worker.https.html" + }, { "path": "secure-contexts/basic-popup-and-iframe-tests.html", "url": "/secure-contexts/basic-popup-and-iframe-tests.html" @@ -29455,6 +31247,22 @@ "path": "secure-contexts/basic-popup-and-iframe-tests.https.html", "url": "/secure-contexts/basic-popup-and-iframe-tests.https.html" }, + { + "path": "secure-contexts/basic-shared-worker.html", + "url": "/secure-contexts/basic-shared-worker.html" + }, + { + "path": "secure-contexts/basic-shared-worker.https.html", + "url": "/secure-contexts/basic-shared-worker.https.html" + }, + { + "path": "secure-contexts/shared-worker-insecure-first.https.html", + "url": "/secure-contexts/shared-worker-insecure-first.https.html" + }, + { + "path": "secure-contexts/shared-worker-secure-first.https.html", + "url": "/secure-contexts/shared-worker-secure-first.https.html" + }, { "path": "selection/Document-open.html", "url": "/selection/Document-open.html" @@ -29507,6 +31315,10 @@ "path": "selectors/attribute-selectors/attribute-case/syntax.html", "url": "/selectors/attribute-selectors/attribute-case/syntax.html" }, + { + "path": "selectors/child-indexed-pseudo-class.html", + "url": "/selectors/child-indexed-pseudo-class.html" + }, { "path": "service-workers/cache-storage/serviceworker/credentials.html", "url": "/service-workers/cache-storage/serviceworker/credentials.html" @@ -29799,6 +31611,10 @@ "path": "service-workers/service-worker/service-worker-csp-script.https.html", "url": "/service-workers/service-worker/service-worker-csp-script.https.html" }, + { + "path": "service-workers/service-worker/serviceworker-message-event-historical.https.html", + "url": "/service-workers/service-worker/serviceworker-message-event-historical.https.html" + }, { "path": "service-workers/service-worker/serviceworkerobject-scripturl.https.html", "url": "/service-workers/service-worker/serviceworkerobject-scripturl.https.html" @@ -30271,6 +32087,22 @@ "path": "svg/interfaces.html", "url": "/svg/interfaces.html" }, + { + "path": "svg/linking/scripted/href-animate-element.html", + "url": "/svg/linking/scripted/href-animate-element.html" + }, + { + "path": "svg/linking/scripted/href-mpath-element.html", + "url": "/svg/linking/scripted/href-mpath-element.html" + }, + { + "path": "svg/linking/scripted/href-script-element-markup.html", + "url": "/svg/linking/scripted/href-script-element-markup.html" + }, + { + "path": "svg/linking/scripted/href-script-element.html", + "url": "/svg/linking/scripted/href-script-element.html" + }, { "path": "touch-events/create-touch-touchlist.html", "url": "/touch-events/create-touch-touchlist.html" @@ -30357,7 +32189,7 @@ }, { "path": "url/historical.worker.js", - "url": "/url/historical.worker" + "url": "/url/historical.worker.html" }, { "path": "url/interfaces.html", @@ -30367,10 +32199,6 @@ "path": "url/url-constructor.html", "url": "/url/url-constructor.html" }, - { - "path": "url/url-domainToUnicode.html", - "url": "/url/url-domainToUnicode.html" - }, { "path": "url/url-setters.html", "url": "/url/url-setters.html" @@ -30507,6 +32335,10 @@ "path": "web-animations/interfaces/Animation/constructor.html", "url": "/web-animations/interfaces/Animation/constructor.html" }, + { + "path": "web-animations/interfaces/Animation/effect.html", + "url": "/web-animations/interfaces/Animation/effect.html" + }, { "path": "web-animations/interfaces/Animation/finish.html", "url": "/web-animations/interfaces/Animation/finish.html" @@ -30623,6 +32455,10 @@ "path": "web-animations/interfaces/KeyframeEffect/getComputedTiming.html", "url": "/web-animations/interfaces/KeyframeEffect/getComputedTiming.html" }, + { + "path": "web-animations/interfaces/KeyframeEffect/iterationComposite.html", + "url": "/web-animations/interfaces/KeyframeEffect/iterationComposite.html" + }, { "path": "web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument.html", "url": "/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument.html" @@ -30635,6 +32471,10 @@ "path": "web-animations/interfaces/KeyframeEffect/setTarget.html", "url": "/web-animations/interfaces/KeyframeEffect/setTarget.html" }, + { + "path": "web-animations/interfaces/KeyframeEffect/spacing.html", + "url": "/web-animations/interfaces/KeyframeEffect/spacing.html" + }, { "path": "web-animations/interfaces/KeyframeEffectReadOnly/spacing.html", "url": "/web-animations/interfaces/KeyframeEffectReadOnly/spacing.html" @@ -30663,6 +32503,10 @@ "path": "web-animations/timing-model/animations/set-the-animation-start-time.html", "url": "/web-animations/timing-model/animations/set-the-animation-start-time.html" }, + { + "path": "web-animations/timing-model/animations/set-the-target-effect-of-an-animation.html", + "url": "/web-animations/timing-model/animations/set-the-target-effect-of-an-animation.html" + }, { "path": "web-animations/timing-model/animations/set-the-timeline-of-an-animation.html", "url": "/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html" @@ -30695,6 +32539,10 @@ "path": "webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html", "url": "/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block.html" }, + { + "path": "webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html", + "url": "/webaudio/the-audio-api/the-constantsourcenode-interface/test-constantsourcenode.html" + }, { "path": "webaudio/the-audio-api/the-delaynode-interface/idl-test.html", "url": "/webaudio/the-audio-api/the-delaynode-interface/idl-test.html" @@ -30727,6 +32575,10 @@ "path": "webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html", "url": "/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests.html" }, + { + "path": "webauthn/interfaces.https.html", + "url": "/webauthn/interfaces.https.html" + }, { "path": "webdriver/interface.html", "url": "/webdriver/interface.html" @@ -33827,6 +35679,10 @@ "path": "webrtc/promises-call.html", "url": "/webrtc/promises-call.html" }, + { + "path": "webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html", + "url": "/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html" + }, { "path": "webrtc/rtcpeerconnection/rtcpeerconnection-idl.html", "url": "/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html" @@ -34149,7 +36005,7 @@ }, { "path": "websockets/Send-data.worker.js", - "url": "/websockets/Send-data.worker" + "url": "/websockets/Send-data.worker.html" }, { "path": "websockets/Send-null.htm", @@ -34959,6 +36815,10 @@ "path": "websockets/interfaces/WebSocket/url/resolve.html", "url": "/websockets/interfaces/WebSocket/url/resolve.html?wss" }, + { + "path": "websockets/multi-globals/message-received.html", + "url": "/websockets/multi-globals/message-received.html" + }, { "path": "websockets/opening-handshake/001.html", "url": "/websockets/opening-handshake/001.html" @@ -34969,7 +36829,7 @@ }, { "path": "websockets/opening-handshake/003-sets-origin.worker.js", - "url": "/websockets/opening-handshake/003-sets-origin.worker" + "url": "/websockets/opening-handshake/003-sets-origin.worker.html" }, { "path": "websockets/opening-handshake/003.html", @@ -35323,6 +37183,10 @@ "path": "workers/Worker_ErrorEvent_bubbles_cancelable.htm", "url": "/workers/Worker_ErrorEvent_bubbles_cancelable.htm" }, + { + "path": "workers/Worker_ErrorEvent_error.htm", + "url": "/workers/Worker_ErrorEvent_error.htm" + }, { "path": "workers/Worker_ErrorEvent_filename.htm", "url": "/workers/Worker_ErrorEvent_filename.htm" @@ -35461,7 +37325,7 @@ }, { "path": "workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js", - "url": "/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker" + "url": "/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.html" }, { "path": "workers/constructors/Worker/ctor-1.html", @@ -35477,7 +37341,7 @@ }, { "path": "workers/constructors/Worker/expected-self-properties.worker.js", - "url": "/workers/constructors/Worker/expected-self-properties.worker" + "url": "/workers/constructors/Worker/expected-self-properties.worker.html" }, { "path": "workers/constructors/Worker/no-arguments-ctor.html", @@ -35497,7 +37361,7 @@ }, { "path": "workers/constructors/Worker/unexpected-self-properties.worker.js", - "url": "/workers/constructors/Worker/unexpected-self-properties.worker" + "url": "/workers/constructors/Worker/unexpected-self-properties.worker.html" }, { "path": "workers/constructors/Worker/unresolvable-url.html", @@ -35507,17 +37371,25 @@ "path": "workers/constructors/Worker/use-base-url.html", "url": "/workers/constructors/Worker/use-base-url.html" }, + { + "path": "workers/data-url-shared.html", + "url": "/workers/data-url-shared.html" + }, + { + "path": "workers/data-url.html", + "url": "/workers/data-url.html" + }, { "path": "workers/interfaces.worker.js", - "url": "/workers/interfaces.worker" + "url": "/workers/interfaces.worker.html" }, { "path": "workers/interfaces/DedicatedWorkerGlobalScope/EventTarget.worker.js", - "url": "/workers/interfaces/DedicatedWorkerGlobalScope/EventTarget.worker" + "url": "/workers/interfaces/DedicatedWorkerGlobalScope/EventTarget.worker.html" }, { "path": "workers/interfaces/DedicatedWorkerGlobalScope/onmessage.worker.js", - "url": "/workers/interfaces/DedicatedWorkerGlobalScope/onmessage.worker" + "url": "/workers/interfaces/DedicatedWorkerGlobalScope/onmessage.worker.html" }, { "path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html", @@ -35533,7 +37405,7 @@ }, { "path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.worker.js", - "url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.worker" + "url": "/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/return-value.worker.html" }, { "path": "workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html", @@ -35645,11 +37517,11 @@ }, { "path": "workers/interfaces/WorkerUtils/importScripts/001.worker.js", - "url": "/workers/interfaces/WorkerUtils/importScripts/001.worker" + "url": "/workers/interfaces/WorkerUtils/importScripts/001.worker.html" }, { "path": "workers/interfaces/WorkerUtils/importScripts/002.worker.js", - "url": "/workers/interfaces/WorkerUtils/importScripts/002.worker" + "url": "/workers/interfaces/WorkerUtils/importScripts/002.worker.html" }, { "path": "workers/interfaces/WorkerUtils/importScripts/003.html", @@ -35719,13 +37591,9 @@ "path": "workers/interfaces/WorkerUtils/navigator/language.html", "url": "/workers/interfaces/WorkerUtils/navigator/language.html" }, - { - "path": "workers/interfaces/WorkerUtils/navigator/window-only.worker.js", - "url": "/workers/interfaces/WorkerUtils/navigator/window-only.worker" - }, { "path": "workers/nested_worker.worker.js", - "url": "/workers/nested_worker.worker" + "url": "/workers/nested_worker.worker.html" }, { "path": "workers/postMessage_DataCloneErr.htm", @@ -35769,15 +37637,15 @@ }, { "path": "workers/semantics/encodings/004.worker.js", - "url": "/workers/semantics/encodings/004.worker" + "url": "/workers/semantics/encodings/004.worker.html" }, { "path": "workers/semantics/interface-objects/001.worker.js", - "url": "/workers/semantics/interface-objects/001.worker" + "url": "/workers/semantics/interface-objects/001.worker.html" }, { "path": "workers/semantics/interface-objects/002.worker.js", - "url": "/workers/semantics/interface-objects/002.worker" + "url": "/workers/semantics/interface-objects/002.worker.html" }, { "path": "workers/semantics/interface-objects/003.html", @@ -35887,6 +37755,11 @@ "path": "workers/semantics/xhr/006.html", "url": "/workers/semantics/xhr/006.html" }, + { + "path": "IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm", + "timeout": "long", + "url": "/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm" + }, { "path": "IndexedDB/idbdatabase_createObjectStore10-1000ends.htm", "timeout": "long", @@ -36313,9 +38186,54 @@ "url": "/dom/ranges/Range-isPointInRange.html" }, { - "path": "dom/ranges/Range-mutations.html", + "path": "dom/ranges/Range-mutations-appendChild.html", "timeout": "long", - "url": "/dom/ranges/Range-mutations.html" + "url": "/dom/ranges/Range-mutations-appendChild.html" + }, + { + "path": "dom/ranges/Range-mutations-appendData.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-appendData.html" + }, + { + "path": "dom/ranges/Range-mutations-dataChange.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-dataChange.html" + }, + { + "path": "dom/ranges/Range-mutations-deleteData.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-deleteData.html" + }, + { + "path": "dom/ranges/Range-mutations-insertBefore.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-insertBefore.html" + }, + { + "path": "dom/ranges/Range-mutations-insertData.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-insertData.html" + }, + { + "path": "dom/ranges/Range-mutations-removeChild.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-removeChild.html" + }, + { + "path": "dom/ranges/Range-mutations-replaceChild.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-replaceChild.html" + }, + { + "path": "dom/ranges/Range-mutations-replaceData.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-replaceData.html" + }, + { + "path": "dom/ranges/Range-mutations-splitText.html", + "timeout": "long", + "url": "/dom/ranges/Range-mutations-splitText.html" }, { "path": "dom/ranges/Range-selectNode.html", @@ -36367,11 +38285,31 @@ "timeout": "long", "url": "/encoding/single-byte-decoder.html" }, + { + "path": "encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html", + "timeout": "long", + "url": "/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html" + }, + { + "path": "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html", + "timeout": "long", + "url": "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html" + }, + { + "path": "encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html", + "timeout": "long", + "url": "/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html" + }, { "path": "encrypted-media/clearkey-mp4-playback-temporary-two-videos.html", "timeout": "long", "url": "/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html" }, + { + "path": "encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html", + "timeout": "long", + "url": "/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html" + }, { "path": "encrypted-media/drm-mp4-playback-persistent-usage-record.html", "timeout": "long", @@ -36387,11 +38325,36 @@ "timeout": "long", "url": "/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html" }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html", + "timeout": "long", + "url": "/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html" + }, { "path": "encrypted-media/drm-mp4-playback-temporary-events.html", "timeout": "long", "url": "/encrypted-media/drm-mp4-playback-temporary-events.html" }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-expired.html", + "timeout": "long", + "url": "/encrypted-media/drm-mp4-playback-temporary-expired.html" + }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html", + "timeout": "long", + "url": "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html" + }, + { + "path": "encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html", + "timeout": "long", + "url": "/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html" + }, + { + "path": "encrypted-media/drm-mp4-requestmediakeysystemaccess.html", + "timeout": "long", + "url": "/encrypted-media/drm-mp4-requestmediakeysystemaccess.html" + }, { "path": "eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm", "timeout": "long", @@ -36407,11 +38370,6 @@ "timeout": "long", "url": "/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm" }, - { - "path": "fetch/api/request/request-cache.html", - "timeout": "long", - "url": "/fetch/api/request/request-cache.html" - }, { "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html", "timeout": "long", @@ -37715,109 +39673,20 @@ ] }, "local_changes": { - "deleted": [ - "url/url-domainToUnicode.html" - ], + "deleted": [], "deleted_reftests": {}, "items": { - "reftest": { - "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html": [ - { - "path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html", - "references": [ - [ - "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html", - "==" - ] - ], - "url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html" - } - ], - "html/semantics/document-metadata/the-link-element/stylesheet-media.html": [ - { - "path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html", - "references": [ - [ - "/html/semantics/document-metadata/the-link-element/stylesheet-media-ref.html", - "==" - ] - ], - "url": "/html/semantics/document-metadata/the-link-element/stylesheet-media.html" - } - ] - }, "testharness": { - "cookies/path/match.html": [ - { - "path": "cookies/path/match.html", - "url": "/cookies/path/match.html" - } - ], - "cssom-view/MediaQueryList-with-empty-string.html": [ - { - "path": "cssom-view/MediaQueryList-with-empty-string.html", - "url": "/cssom-view/MediaQueryList-with-empty-string.html" - } - ], "html/semantics/forms/form-submission-0/submit-entity-body.html": [ { "path": "html/semantics/forms/form-submission-0/submit-entity-body.html", "timeout": "long", "url": "/html/semantics/forms/form-submission-0/submit-entity-body.html" } - ], - "html/semantics/forms/the-form-element/form-action-url.html": [ - { - "path": "html/semantics/forms/the-form-element/form-action-url.html", - "url": "/html/semantics/forms/the-form-element/form-action-url.html" - } - ], - "html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html": [ - { - "path": "html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html", - "url": "/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-add.html" - } - ], - "html/semantics/forms/the-select-element/selected-index.html": [ - { - "path": "html/semantics/forms/the-select-element/selected-index.html", - "url": "/html/semantics/forms/the-select-element/selected-index.html" - } - ], - "html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html": [ - { - "path": "html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html", - "url": "/html/webappapis/scripting/events/uncompiled_event_handler_with_scripting_disabled.html" - } ] } }, - "reftest_nodes": { - "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html": [ - { - "path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html", - "references": [ - [ - "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html", - "==" - ] - ], - "url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html" - } - ], - "html/semantics/document-metadata/the-link-element/stylesheet-media.html": [ - { - "path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html", - "references": [ - [ - "/html/semantics/document-metadata/the-link-element/stylesheet-media-ref.html", - "==" - ] - ], - "url": "/html/semantics/document-metadata/the-link-element/stylesheet-media.html" - } - ] - } + "reftest_nodes": {} }, "reftest_nodes": { "2dcontext/building-paths/canvas_complexshapes_arcto_001.htm": [ @@ -38372,6 +40241,30 @@ "url": "/compat/webkit-text-fill-color-property-006.html" } ], + "content-security-policy/font-src/font-blacklisted.html": [ + { + "path": "content-security-policy/font-src/font-blacklisted.html", + "references": [ + [ + "/content-security-policy/font-src/font-blacklisted-ref.html", + "!=" + ] + ], + "url": "/content-security-policy/font-src/font-blacklisted.html" + } + ], + "content-security-policy/font-src/font-whitelisted.html": [ + { + "path": "content-security-policy/font-src/font-whitelisted.html", + "references": [ + [ + "/content-security-policy/font-src/font-whitelisted-ref.html", + "==" + ] + ], + "url": "/content-security-policy/font-src/font-whitelisted.html" + } + ], "custom-elements/v0/registering/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html": [ { "path": "custom-elements/v0/registering/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html", @@ -40220,6 +42113,30 @@ "url": "/html/rendering/replaced-elements/images/space.html" } ], + "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html": [ + { + "path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html", + "references": [ + [ + "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html", + "==" + ] + ], + "url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html" + } + ], + "html/semantics/document-metadata/the-link-element/stylesheet-media.html": [ + { + "path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html", + "references": [ + [ + "/html/semantics/document-metadata/the-link-element/stylesheet-media-ref.html", + "==" + ] + ], + "url": "/html/semantics/document-metadata/the-link-element/stylesheet-media.html" + } + ], "html/semantics/document-metadata/the-link-element/stylesheet-with-base.html": [ { "path": "html/semantics/document-metadata/the-link-element/stylesheet-with-base.html", @@ -40472,6 +42389,126 @@ "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html" } ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html" + } + ], + "html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html": [ + { + "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html", + "references": [ + [ + "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html" + } + ], "html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html": [ { "path": "html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html", @@ -40544,6 +42581,66 @@ "url": "/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html" } ], + "html/semantics/grouping-content/the-ol-element/reversed-1a.html": [ + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1a.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1a.html" + } + ], + "html/semantics/grouping-content/the-ol-element/reversed-1b.html": [ + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1b.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1b.html" + } + ], + "html/semantics/grouping-content/the-ol-element/reversed-1c.html": [ + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1c.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1c.html" + } + ], + "html/semantics/grouping-content/the-ol-element/reversed-1d.html": [ + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1d.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1d.html" + } + ], + "html/semantics/grouping-content/the-ol-element/reversed-1e.html": [ + { + "path": "html/semantics/grouping-content/the-ol-element/reversed-1e.html", + "references": [ + [ + "/html/semantics/grouping-content/the-ol-element/reversed-1-ref.html", + "==" + ] + ], + "url": "/html/semantics/grouping-content/the-ol-element/reversed-1e.html" + } + ], "html/semantics/grouping-content/the-ol-element/reversed-2.html": [ { "path": "html/semantics/grouping-content/the-ol-element/reversed-2.html", @@ -40916,6 +43013,438 @@ "url": "/http/basic-auth-cache-test.html" } ], + "mathml/presentation-markup/spaces/space-2.html": [ + { + "path": "mathml/presentation-markup/spaces/space-2.html", + "references": [ + [ + "/mathml/presentation-markup/spaces/space-2-ref.html", + "==" + ] + ], + "url": "/mathml/presentation-markup/spaces/space-2.html" + } + ], + "mathml/relations/css-styling/color-1.html": [ + { + "path": "mathml/relations/css-styling/color-1.html", + "references": [ + [ + "/mathml/relations/css-styling/color-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/color-1.html" + } + ], + "mathml/relations/css-styling/display-1.html": [ + { + "path": "mathml/relations/css-styling/display-1.html", + "references": [ + [ + "/mathml/relations/css-styling/display-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/display-1.html" + } + ], + "mathml/relations/css-styling/lengths-1-ref.html": [ + { + "path": "mathml/relations/css-styling/lengths-1-ref.html", + "references": [ + [ + "/mathml/relations/css-styling/lengths-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/lengths-1-ref.html" + } + ], + "mathml/relations/css-styling/lengths-1.html": [ + { + "path": "mathml/relations/css-styling/lengths-1.html", + "references": [ + [ + "/mathml/relations/css-styling/lengths-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/lengths-1.html" + } + ], + "mathml/relations/css-styling/lengths-2.html": [ + { + "path": "mathml/relations/css-styling/lengths-2.html", + "references": [ + [ + "/mathml/relations/css-styling/lengths-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/lengths-2.html" + } + ], + "mathml/relations/css-styling/mathvariant-bold-fraktur.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-bold-fraktur.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-fraktur-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-fraktur.html" + } + ], + "mathml/relations/css-styling/mathvariant-bold-italic.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-bold-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-italic.html" + } + ], + "mathml/relations/css-styling/mathvariant-bold-sans-serif.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-bold-sans-serif.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-sans-serif-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-sans-serif.html" + } + ], + "mathml/relations/css-styling/mathvariant-bold-script.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-bold-script.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-script-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold-script.html" + } + ], + "mathml/relations/css-styling/mathvariant-bold.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-bold.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-bold-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-bold.html" + } + ], + "mathml/relations/css-styling/mathvariant-double-struck.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-double-struck.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-double-struck-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-double-struck.html" + } + ], + "mathml/relations/css-styling/mathvariant-fraktur.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-fraktur.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-fraktur-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-fraktur.html" + } + ], + "mathml/relations/css-styling/mathvariant-initial.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-initial.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-initial-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-initial.html" + } + ], + "mathml/relations/css-styling/mathvariant-italic.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-italic.html" + } + ], + "mathml/relations/css-styling/mathvariant-looped.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-looped.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-looped-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-looped.html" + } + ], + "mathml/relations/css-styling/mathvariant-monospace.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-monospace.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-monospace-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-monospace.html" + } + ], + "mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html" + } + ], + "mathml/relations/css-styling/mathvariant-sans-serif-italic.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif-italic.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-italic-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif-italic.html" + } + ], + "mathml/relations/css-styling/mathvariant-sans-serif.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-sans-serif.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-sans-serif-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-sans-serif.html" + } + ], + "mathml/relations/css-styling/mathvariant-script.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-script.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-script-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-script.html" + } + ], + "mathml/relations/css-styling/mathvariant-stretched.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-stretched.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-stretched-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-stretched.html" + } + ], + "mathml/relations/css-styling/mathvariant-tailed.html": [ + { + "path": "mathml/relations/css-styling/mathvariant-tailed.html", + "references": [ + [ + "/mathml/relations/css-styling/mathvariant-tailed-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/mathvariant-tailed.html" + } + ], + "mathml/relations/css-styling/visibility-1.html": [ + { + "path": "mathml/relations/css-styling/visibility-1.html", + "references": [ + [ + "/mathml/relations/css-styling/visibility-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/css-styling/visibility-1.html" + } + ], + "mathml/relations/html5-tree/class-1.html": [ + { + "path": "mathml/relations/html5-tree/class-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/class-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/class-1.html" + } + ], + "mathml/relations/html5-tree/color-attributes-1.html": [ + { + "path": "mathml/relations/html5-tree/color-attributes-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/color-attributes-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/color-attributes-1.html" + } + ], + "mathml/relations/html5-tree/dynamic-1.html": [ + { + "path": "mathml/relations/html5-tree/dynamic-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/dynamic-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/dynamic-1.html" + } + ], + "mathml/relations/html5-tree/href-click-1.html": [ + { + "path": "mathml/relations/html5-tree/href-click-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/href-click-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/href-click-1.html" + } + ], + "mathml/relations/html5-tree/href-click-2.html": [ + { + "path": "mathml/relations/html5-tree/href-click-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/href-click-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/href-click-2.html" + } + ], + "mathml/relations/html5-tree/integration-point-1.html": [ + { + "path": "mathml/relations/html5-tree/integration-point-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-1.html" + } + ], + "mathml/relations/html5-tree/integration-point-2.html": [ + { + "path": "mathml/relations/html5-tree/integration-point-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-2.html" + } + ], + "mathml/relations/html5-tree/integration-point-3.html": [ + { + "path": "mathml/relations/html5-tree/integration-point-3.html", + "references": [ + [ + "/mathml/relations/html5-tree/integration-point-3-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/integration-point-3.html" + } + ], + "mathml/relations/html5-tree/required-extensions-2.html": [ + { + "path": "mathml/relations/html5-tree/required-extensions-2.html", + "references": [ + [ + "/mathml/relations/html5-tree/required-extensions-2-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/required-extensions-2.html" + } + ], + "mathml/relations/html5-tree/unique-identifier-1.html": [ + { + "path": "mathml/relations/html5-tree/unique-identifier-1.html", + "references": [ + [ + "/mathml/relations/html5-tree/unique-identifier-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/unique-identifier-1.html" + } + ], + "mathml/relations/html5-tree/unique-identifier-3.html": [ + { + "path": "mathml/relations/html5-tree/unique-identifier-3.html", + "references": [ + [ + "/mathml/relations/html5-tree/unique-identifier-3-ref.html", + "==" + ] + ], + "url": "/mathml/relations/html5-tree/unique-identifier-3.html" + } + ], + "mathml/relations/text-and-math/use-typo-metrics-1.html": [ + { + "path": "mathml/relations/text-and-math/use-typo-metrics-1.html", + "references": [ + [ + "/mathml/relations/text-and-math/use-typo-metrics-1-ref.html", + "==" + ] + ], + "url": "/mathml/relations/text-and-math/use-typo-metrics-1.html" + } + ], "quirks-mode/historical/list-item-bullet-size.html": [ { "path": "quirks-mode/historical/list-item-bullet-size.html", @@ -41000,6 +43529,150 @@ "url": "/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html" } ], + "svg/linking/reftests/href-a-element-attr-change.html": [ + { + "path": "svg/linking/reftests/href-a-element-attr-change.html", + "references": [ + [ + "/svg/linking/reftests/href-a-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-a-element-attr-change.html" + } + ], + "svg/linking/reftests/href-feImage-element.html": [ + { + "path": "svg/linking/reftests/href-feImage-element.html", + "references": [ + [ + "/svg/linking/reftests/href-feImage-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-feImage-element.html" + } + ], + "svg/linking/reftests/href-filter-element.html": [ + { + "path": "svg/linking/reftests/href-filter-element.html", + "references": [ + [ + "/svg/linking/reftests/href-filter-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-filter-element.html" + } + ], + "svg/linking/reftests/href-gradient-element.html": [ + { + "path": "svg/linking/reftests/href-gradient-element.html", + "references": [ + [ + "/svg/linking/reftests/href-gradient-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-gradient-element.html" + } + ], + "svg/linking/reftests/href-image-element.html": [ + { + "path": "svg/linking/reftests/href-image-element.html", + "references": [ + [ + "/svg/linking/reftests/href-image-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-image-element.html" + } + ], + "svg/linking/reftests/href-pattern-element.html": [ + { + "path": "svg/linking/reftests/href-pattern-element.html", + "references": [ + [ + "/svg/linking/reftests/href-pattern-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-pattern-element.html" + } + ], + "svg/linking/reftests/href-textPath-element.html": [ + { + "path": "svg/linking/reftests/href-textPath-element.html", + "references": [ + [ + "/svg/linking/reftests/href-textPath-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-textPath-element.html" + } + ], + "svg/linking/reftests/href-use-element.html": [ + { + "path": "svg/linking/reftests/href-use-element.html", + "references": [ + [ + "/svg/linking/reftests/href-use-element-ref.html", + "==" + ] + ], + "url": "/svg/linking/reftests/href-use-element.html" + } + ], + "svg/shapes/rect-01.svg": [ + { + "path": "svg/shapes/rect-01.svg", + "references": [ + [ + "/svg/shapes/rect-01-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-01.svg" + } + ], + "svg/shapes/rect-02.svg": [ + { + "path": "svg/shapes/rect-02.svg", + "references": [ + [ + "/svg/shapes/rect-02-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-02.svg" + } + ], + "svg/shapes/rect-03.svg": [ + { + "path": "svg/shapes/rect-03.svg", + "references": [ + [ + "/svg/shapes/rect-03-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-03.svg" + } + ], + "svg/shapes/rect-04.svg": [ + { + "path": "svg/shapes/rect-04.svg", + "references": [ + [ + "/svg/shapes/rect-04-ref.html", + "==" + ] + ], + "url": "/svg/shapes/rect-04.svg" + } + ], "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html": [ { "path": "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html", @@ -43653,7 +46326,7 @@ } ] }, - "rev": "3b3585e368841b77caea8576fa56cef91c3fbdf0", + "rev": "e8bfc205e36ad699601212cd50083870bad9a75d", "url_base": "/", "version": 3 } diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini index a38bb6334e6..73885505831 100644 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker.js.ini @@ -1,3 +1,3 @@ -[ecdh_bits.worker] +[ecdh_bits.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini index d06f90911fe..9f20f554ccb 100644 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker.js.ini @@ -1,3 +1,3 @@ -[ecdh_keys.worker] +[ecdh_keys.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini index c036e5efc17..4831ce66875 100644 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/hkdf.worker.js.ini @@ -1,3 +1,3 @@ -[hkdf.worker] +[hkdf.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini index 449664ad47b..4b70f2b1f1d 100644 --- a/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/derive_bits_keys/pbkdf2.worker.js.ini @@ -1,3 +1,3 @@ -[pbkdf2.worker] +[pbkdf2.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini index 715e7fa9097..ee646a95f38 100644 --- a/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/digest/digest.worker.js.ini @@ -1,4 +1,4 @@ -[digest.worker] +[digest.worker.html] type: testharness [SHA-1 with empty source data] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini index ad9373e870d..990ba43cd33 100644 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js.ini @@ -1,3 +1,3 @@ -[aes_cbc.worker] +[aes_cbc.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini index b65f0a6d0f5..f25976f5bca 100644 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js.ini @@ -1,3 +1,3 @@ -[aes_ctr.worker] +[aes_ctr.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini index a576b4e021b..79535257faf 100644 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js.ini @@ -1,3 +1,3 @@ -[aes_gcm.worker] +[aes_gcm.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini index addfa4b287f..91d784e300c 100644 --- a/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/encrypt_decrypt/rsa.worker.js.ini @@ -1,3 +1,3 @@ -[rsa.worker] +[rsa.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures.worker.js.ini index 1e4aabbea47..a28f0dff8e3 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures.worker.js.ini @@ -1,3 +1,3 @@ -[failures.worker] +[failures.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini index 7b3310b78b5..077ac5f87ae 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CBC.worker.js.ini @@ -1,3 +1,3 @@ -[failures_AES-CBC.worker] +[failures_AES-CBC.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini index 472b09dd1ee..478ee6b23c3 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-CTR.worker.js.ini @@ -1,3 +1,3 @@ -[failures_AES-CTR.worker] +[failures_AES-CTR.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini index 64e9f58f061..0a0afaff0d7 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-GCM.worker.js.ini @@ -1,3 +1,3 @@ -[failures_AES-GCM.worker] +[failures_AES-GCM.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini index 96031ce55c3..184df17d30b 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_AES-KW.worker.js.ini @@ -1,3 +1,3 @@ -[failures_AES-KW.worker] +[failures_AES-KW.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini index 49ab628294f..d8a841420a8 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDH.worker.js.ini @@ -1,3 +1,3 @@ -[failures_ECDH.worker] +[failures_ECDH.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini index 2fd250f4500..dff306cc4d1 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_ECDSA.worker.js.ini @@ -1,3 +1,3 @@ -[failures_ECDSA.worker] +[failures_ECDSA.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini index 411ecbddac9..bc918d0a819 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_HMAC.worker.js.ini @@ -1,3 +1,3 @@ -[failures_HMAC.worker] +[failures_HMAC.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini index 3ec9c3c5388..3fee657163c 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js.ini @@ -1,3 +1,3 @@ -[failures_RSA-OAEP.worker] +[failures_RSA-OAEP.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini index 7b28b2c0480..52ee9bde09d 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js.ini @@ -1,3 +1,3 @@ -[failures_RSA-PSS.worker] +[failures_RSA-PSS.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini index 5cb45ae095b..b8b37f0b6e5 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js.ini @@ -1,3 +1,3 @@ -[failures_RSASSA-PKCS1-v1_5.worker] +[failures_RSASSA-PKCS1-v1_5.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes.worker.js.ini index f3a7d610c37..87f8db413bc 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes.worker.js.ini @@ -1,3 +1,3 @@ -[successes.worker] +[successes.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini index e9a9e303a25..ec5ae4f0bef 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CBC.worker.js.ini @@ -1,3 +1,3 @@ -[successes_AES-CBC.worker] +[successes_AES-CBC.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini index dcf7febafe5..662f8504734 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-CTR.worker.js.ini @@ -1,3 +1,3 @@ -[successes_AES-CTR.worker] +[successes_AES-CTR.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini index 4b949a1b47d..180de54dad9 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-GCM.worker.js.ini @@ -1,3 +1,3 @@ -[successes_AES-GCM.worker] +[successes_AES-GCM.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini index 5efa92cfc5d..6c38652867a 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_AES-KW.worker.js.ini @@ -1,3 +1,3 @@ -[successes_AES-KW.worker] +[successes_AES-KW.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini index 42eac719df6..7d00784170d 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDH.worker.js.ini @@ -1,3 +1,3 @@ -[successes_ECDH.worker] +[successes_ECDH.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini index 0d73e197cf9..5cb011f2614 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_ECDSA.worker.js.ini @@ -1,3 +1,3 @@ -[successes_ECDSA.worker] +[successes_ECDSA.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini index 84b2544fd81..9296e99064e 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_HMAC.worker.js.ini @@ -1,3 +1,3 @@ -[successes_HMAC.worker] +[successes_HMAC.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini index f4e683fa2df..61c9375046f 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js.ini @@ -1,3 +1,3 @@ -[successes_RSA-OAEP.worker] +[successes_RSA-OAEP.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini index 76a09318544..3b435eaa1ed 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js.ini @@ -1,3 +1,3 @@ -[successes_RSA-PSS.worker] +[successes_RSA-PSS.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini index 95acb89f629..9247c718885 100644 --- a/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js.ini @@ -1,3 +1,3 @@ -[successes_RSASSA-PKCS1-v1_5.worker] +[successes_RSASSA-PKCS1-v1_5.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini index fa3b42951f7..71b1ea6c745 100644 --- a/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/idlharness.worker.js.ini @@ -1,5 +1,8 @@ -[idlharness.worker] +[idlharness.worker.html] type: testharness + [ArrayBuffer interface: existence and properties of interface object] + expected: FAIL + [Crypto interface: attribute subtle] expected: FAIL @@ -162,6 +165,3 @@ [SubtleCrypto interface: calling unwrapKey(KeyFormat,BufferSource,CryptoKey,AlgorithmIdentifier,AlgorithmIdentifier,boolean,[object Object\]) on crypto.subtle with too few arguments must throw TypeError] expected: FAIL - [ArrayBuffer interface: existence and properties of interface object] - expected: FAIL - diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini index b9c9b687623..50b89ab7222 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/ec_importKey.worker.js.ini @@ -1,4 +1,4 @@ -[ec_importKey.worker] +[ec_importKey.worker.html] type: testharness [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini index c6e5bf65a4d..9f6f25dcca9 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/rsa_importKey.worker.js.ini @@ -1,6 +1,5 @@ -[rsa_importKey.worker] +[rsa_importKey.worker.html] type: testharness - disabled: https://github.com/servo/servo/issues/12654 [Good parameters: 1024 bits (spki, buffer(162), {hash: SHA-1, name: RSA-OAEP}, true, [encrypt\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini index 5d98517ad63..d974812e8f6 100644 --- a/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/import_export/symmetric_importKey.worker.js.ini @@ -1,4 +1,4 @@ -[symmetric_importKey.worker] +[symmetric_importKey.worker.html] type: testharness [Good parameters: 128 bits (raw, {0: 1, 1: 2, 10: 11, 11: 12, 12: 13, 13: 14, 14: 15, 15: 16, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}, {name: AES-CTR}, true, [encrypt\])] expected: FAIL diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini index 50fe8b0f2f0..f1f9ac74838 100644 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/ecdsa.worker.js.ini @@ -1,3 +1,3 @@ -[ecdsa.worker] +[ecdsa.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini index 76f33a3d17d..3842f8812c6 100644 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/hmac.worker.js.ini @@ -1,3 +1,3 @@ -[hmac.worker] +[hmac.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini index 63b341c3b39..206f3c11726 100644 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pkcs.worker.js.ini @@ -1,3 +1,3 @@ -[rsa_pkcs.worker] +[rsa_pkcs.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini index 4b81358e800..89aa8859aff 100644 --- a/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/sign_verify/rsa_pss.worker.js.ini @@ -1,3 +1,3 @@ -[rsa_pss.worker] +[rsa_pss.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini index 1467e49622f..0726e6d35ef 100644 --- a/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini +++ b/tests/wpt/metadata/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js.ini @@ -1,3 +1,3 @@ -[wrapKey_unwrapKey.worker] +[wrapKey_unwrapKey.worker.html] type: testharness expected: ERROR diff --git a/tests/wpt/metadata/WebIDL/current-realm.html.ini b/tests/wpt/metadata/WebIDL/current-realm.html.ini new file mode 100644 index 00000000000..f1c9625cf74 --- /dev/null +++ b/tests/wpt/metadata/WebIDL/current-realm.html.ini @@ -0,0 +1,95 @@ +[current-realm.html] + type: testharness + [querySelectorAll] + expected: FAIL + + [createElement] + expected: FAIL + + [createElementNS] + expected: FAIL + + [createDocumentFragment] + expected: FAIL + + [createTextNode] + expected: FAIL + + [createComment] + expected: FAIL + + [createProcessingInstruction] + expected: FAIL + + [createAttribute] + expected: FAIL + + [createAttributeNS] + expected: FAIL + + [createEvent] + expected: FAIL + + [createRange] + expected: FAIL + + [createNodeIterator] + expected: FAIL + + [createTreeWalker] + expected: FAIL + + [getElementsByTagName] + expected: FAIL + + [getElementsByTagNameNS] + expected: FAIL + + [getElementsByClassName] + expected: FAIL + + [createDocumentType] + expected: FAIL + + [createDocument] + expected: FAIL + + [createHTMLDocument] + expected: FAIL + + [NamedNodeMap item] + expected: FAIL + + [NamedNodeMap getNamedItem] + expected: FAIL + + [NamedNodeMap getNamedItemNS] + expected: FAIL + + [splitText] + expected: FAIL + + [extractContents] + expected: FAIL + + [cloneContents] + expected: FAIL + + [cloneRange] + expected: FAIL + + [getContext 2d] + expected: FAIL + + [getContext webgl] + expected: FAIL + + [createImageData] + expected: FAIL + + [getImageData] + expected: FAIL + + [FontFace's load()] + expected: FAIL + diff --git a/tests/wpt/metadata/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js.ini b/tests/wpt/metadata/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js.ini index 66a75c592b8..40ad9777f12 100644 --- a/tests/wpt/metadata/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js.ini +++ b/tests/wpt/metadata/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js.ini @@ -1,4 +1,4 @@ -[constructor-object.worker] +[constructor-object.worker.html] type: testharness [existence and properties of DOMException] expected: FAIL diff --git a/tests/wpt/metadata/XMLHttpRequest/abort-during-open.htm.ini b/tests/wpt/metadata/XMLHttpRequest/abort-during-open.htm.ini new file mode 100644 index 00000000000..eac211dc538 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/abort-during-open.htm.ini @@ -0,0 +1,5 @@ +[abort-during-open.htm] + type: testharness + [XMLHttpRequest: abort() during OPEN] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/abort-during-open.worker.js.ini b/tests/wpt/metadata/XMLHttpRequest/abort-during-open.worker.js.ini new file mode 100644 index 00000000000..de95cce12e0 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/abort-during-open.worker.js.ini @@ -0,0 +1,5 @@ +[abort-during-open.worker.html] + type: testharness + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/abort-event-abort.htm.ini b/tests/wpt/metadata/XMLHttpRequest/abort-event-abort.htm.ini new file mode 100644 index 00000000000..2804d13941b --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/abort-event-abort.htm.ini @@ -0,0 +1,5 @@ +[abort-event-abort.htm] + type: testharness + [XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset.] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/responsexml-basic.htm.ini b/tests/wpt/metadata/XMLHttpRequest/responsexml-basic.htm.ini index bf2383d17ac..df9151dc64c 100644 --- a/tests/wpt/metadata/XMLHttpRequest/responsexml-basic.htm.ini +++ b/tests/wpt/metadata/XMLHttpRequest/responsexml-basic.htm.ini @@ -1,8 +1,5 @@ [responsexml-basic.htm] type: testharness - [XMLHttpRequest: responseXML basic test] - expected: FAIL - [responseXML on empty response documents] expected: FAIL diff --git a/tests/wpt/metadata/XMLHttpRequest/send-after-setting-document-domain.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-after-setting-document-domain.htm.ini new file mode 100644 index 00000000000..cb48f45fae3 --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/send-after-setting-document-domain.htm.ini @@ -0,0 +1,3 @@ +[send-after-setting-document-domain.htm] + type: testharness + expected: ERROR diff --git a/tests/wpt/metadata/XMLHttpRequest/send-data-unexpected-tostring.htm.ini b/tests/wpt/metadata/XMLHttpRequest/send-data-unexpected-tostring.htm.ini new file mode 100644 index 00000000000..83018dbd05b --- /dev/null +++ b/tests/wpt/metadata/XMLHttpRequest/send-data-unexpected-tostring.htm.ini @@ -0,0 +1,5 @@ +[send-data-unexpected-tostring.htm] + type: testharness + [abort() called from data stringification] + expected: FAIL + diff --git a/tests/wpt/metadata/XMLHttpRequest/send-usp.worker.js.ini b/tests/wpt/metadata/XMLHttpRequest/send-usp.worker.js.ini deleted file mode 100644 index 0a4a9f9efa8..00000000000 --- a/tests/wpt/metadata/XMLHttpRequest/send-usp.worker.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[send-usp.worker] - type: testharness - disabled: https://github.com/servo/servo/issues/12654 diff --git a/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-indices.html.ini b/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-indices.html.ini index 14c378bc64b..d614757774d 100644 --- a/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-indices.html.ini +++ b/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-indices.html.ini @@ -6,3 +6,12 @@ [Handling of property names that look like integers around 2^32] expected: FAIL + [Trying to set an expando that would shadow an already-existing indexed property] + expected: FAIL + + [Trying to set an expando with an indexed property name past the end of the list] + expected: FAIL + + [Trying to delete an indexed property name should never work] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-names.html.ini b/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-names.html.ini new file mode 100644 index 00000000000..fce9ea38e42 --- /dev/null +++ b/tests/wpt/metadata/dom/collections/HTMLCollection-supported-property-names.html.ini @@ -0,0 +1,5 @@ +[HTMLCollection-supported-property-names.html] + type: testharness + [Trying to set an expando that would shadow an already-existing named property] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini b/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini new file mode 100644 index 00000000000..5daa842571a --- /dev/null +++ b/tests/wpt/metadata/dom/events/Event-dispatch-click.html.ini @@ -0,0 +1,24 @@ +[Event-dispatch-click.html] + type: testharness + expected: TIMEOUT + [basic with dispatchEvent()] + expected: FAIL + + [look at parents when event bubbles] + expected: FAIL + + [pick the first with activation behavior ] + expected: FAIL + + [pick the first with activation behavior ] + expected: FAIL + + [event state during post-click handling] + expected: TIMEOUT + + [redispatch during post-click handling] + expected: TIMEOUT + + [disconnected form should not submit] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/DOMImplementation-createDocument.html.ini b/tests/wpt/metadata/dom/nodes/DOMImplementation-createDocument.html.ini new file mode 100644 index 00000000000..2c96250d0b1 --- /dev/null +++ b/tests/wpt/metadata/dom/nodes/DOMImplementation-createDocument.html.ini @@ -0,0 +1,14 @@ +[DOMImplementation-createDocument.html] + type: testharness + [createDocument test: null,"ெfoo",null,"INVALID_CHARACTER_ERR"] + expected: FAIL + + [createDocument test: "http://example.com/","a:0",null,"NAMESPACE_ERR"] + expected: FAIL + + [createDocument test: "http://example.com/","a:ெ",null,"NAMESPACE_ERR"] + expected: FAIL + + [createDocument test: "http://example.com/","ெ:a",null,"INVALID_CHARACTER_ERR"] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/Document-createElement.html.ini b/tests/wpt/metadata/dom/nodes/Document-createElement.html.ini new file mode 100644 index 00000000000..94eefdcffa9 --- /dev/null +++ b/tests/wpt/metadata/dom/nodes/Document-createElement.html.ini @@ -0,0 +1,251 @@ +[Document-createElement.html] + type: testharness + [createElement(undefined) in XML document] + expected: FAIL + + [createElement(undefined) in XHTML document] + expected: FAIL + + [createElement(null) in XML document] + expected: FAIL + + [createElement(null) in XHTML document] + expected: FAIL + + [createElement("foo") in XML document] + expected: FAIL + + [createElement("foo") in XHTML document] + expected: FAIL + + [createElement("f1oo") in XML document] + expected: FAIL + + [createElement("f1oo") in XHTML document] + expected: FAIL + + [createElement("foo1") in XML document] + expected: FAIL + + [createElement("foo1") in XHTML document] + expected: FAIL + + [createElement("fெ") in XML document] + expected: FAIL + + [createElement("fெ") in XHTML document] + expected: FAIL + + [createElement("fooெ") in XML document] + expected: FAIL + + [createElement("fooெ") in XHTML document] + expected: FAIL + + [createElement(":") in XML document] + expected: FAIL + + [createElement(":foo") in XML document] + expected: FAIL + + [createElement(":foo") in XHTML document] + expected: FAIL + + [createElement("f:oo") in XML document] + expected: FAIL + + [createElement("f:oo") in XHTML document] + expected: FAIL + + [createElement("foo:") in XML document] + expected: FAIL + + [createElement("foo:") in XHTML document] + expected: FAIL + + [createElement("f:o:o") in XML document] + expected: FAIL + + [createElement("f:o:o") in XHTML document] + expected: FAIL + + [createElement("f::oo") in XML document] + expected: FAIL + + [createElement("f::oo") in XHTML document] + expected: FAIL + + [createElement("f::oo:") in XML document] + expected: FAIL + + [createElement("f::oo:") in XHTML document] + expected: FAIL + + [createElement("foo:0") in XML document] + expected: FAIL + + [createElement("foo:0") in XHTML document] + expected: FAIL + + [createElement("foo:_") in XML document] + expected: FAIL + + [createElement("foo:_") in XHTML document] + expected: FAIL + + [createElement("foo:ெ") in XML document] + expected: FAIL + + [createElement("foo:ெ") in XHTML document] + expected: FAIL + + [createElement("foo:fooெ") in XML document] + expected: FAIL + + [createElement("foo:fooெ") in XHTML document] + expected: FAIL + + [createElement("fooெ:foo") in XML document] + expected: FAIL + + [createElement("fooெ:foo") in XHTML document] + expected: FAIL + + [createElement("xml") in XML document] + expected: FAIL + + [createElement("xml") in XHTML document] + expected: FAIL + + [createElement("xmlns") in XML document] + expected: FAIL + + [createElement("xmlns") in XHTML document] + expected: FAIL + + [createElement("xmlfoo") in XML document] + expected: FAIL + + [createElement("xmlfoo") in XHTML document] + expected: FAIL + + [createElement("xml:foo") in XML document] + expected: FAIL + + [createElement("xml:foo") in XHTML document] + expected: FAIL + + [createElement("xmlns:foo") in XML document] + expected: FAIL + + [createElement("xmlns:foo") in XHTML document] + expected: FAIL + + [createElement("xmlfoo:bar") in XML document] + expected: FAIL + + [createElement("xmlfoo:bar") in XHTML document] + expected: FAIL + + [createElement("svg") in XML document] + expected: FAIL + + [createElement("svg") in XHTML document] + expected: FAIL + + [createElement("math") in XML document] + expected: FAIL + + [createElement("math") in XHTML document] + expected: FAIL + + [createElement("FOO") in XML document] + expected: FAIL + + [createElement("FOO") in XHTML document] + expected: FAIL + + [createElement("marK") in XML document] + expected: FAIL + + [createElement("marK") in XHTML document] + expected: FAIL + + [createElement("İnput") in XML document] + expected: FAIL + + [createElement("İnput") in XHTML document] + expected: FAIL + + [createElement("ınput") in XML document] + expected: FAIL + + [createElement("ınput") in XHTML document] + expected: FAIL + + [createElement("") in XML document] + expected: FAIL + + [createElement("1foo") in XML document] + expected: FAIL + + [createElement("1:foo") in XML document] + expected: FAIL + + [createElement("fo o") in XML document] + expected: FAIL + + [createElement("ெfoo") in HTML document] + expected: FAIL + + [createElement("ெfoo") in XML document] + expected: FAIL + + [createElement("ெfoo") in XHTML document] + expected: FAIL + + [createElement("}foo") in XML document] + expected: FAIL + + [createElement("f}oo") in XML document] + expected: FAIL + + [createElement("foo}") in XML document] + expected: FAIL + + [createElement("\\ufffffoo") in XML document] + expected: FAIL + + [createElement("f\\uffffoo") in XML document] + expected: FAIL + + [createElement("foo\\uffff") in XML document] + expected: FAIL + + [createElement("") in XML document] + expected: FAIL + + [createElement("") in XML document] + expected: FAIL + + [createElement("f","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: null,"","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: null,"f","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/","fo","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/","namespaceURI:,","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/","namespaceURI:a ","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/","namespaceURI:\\"","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","foo",null] + expected: FAIL + + [createElementNS test in XML document: "/","1foo","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","f1oo",null] + expected: FAIL + + [createElementNS test in XML document: "/","foo1",null] + expected: FAIL + + [createElementNS test in XML document: "/",":foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","f:oo",null] + expected: FAIL + + [createElementNS test in XML document: "/","foo:","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","xml",null] + expected: FAIL + + [createElementNS test in XML document: "/","xmlns","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","xmlfoo",null] + expected: FAIL + + [createElementNS test in XML document: "/","xml:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","xmlns:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/","xmlfoo:bar",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","foo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","1foo","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","f1oo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","foo1",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace",":foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","f:oo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","foo:","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xml",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xmlns","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xmlfoo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xml:foo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xmlns:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","xmlfoo:bar",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespaces","xml:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/xml/1998/namespace","xml:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","1foo","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","f1oo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","foo1","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/",":foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","f:oo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","foo:","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xml","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xmlns",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xmlfoo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xml:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xmlns:foo",null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","xmlfoo:bar","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","foo:xmlns","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","foo",null] + expected: FAIL + + [createElementNS test in XML document: "foo:","1foo","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","f1oo",null] + expected: FAIL + + [createElementNS test in XML document: "foo:","foo1",null] + expected: FAIL + + [createElementNS test in XML document: "foo:",":foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","f:oo",null] + expected: FAIL + + [createElementNS test in XML document: "foo:","foo:","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","xml",null] + expected: FAIL + + [createElementNS test in XML document: "foo:","xmlns","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","xmlfoo",null] + expected: FAIL + + [createElementNS test in XML document: "foo:","xml:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","xmlns:foo","NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:","xmlfoo:bar",null] + expected: FAIL + + [createElementNS test in XML document: "","","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: null,"","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: undefined,"","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/",null,null] + expected: FAIL + + [createElementNS test in XML document: "http://example.com/","","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "/",null,null] + expected: FAIL + + [createElementNS test in XML document: "/","","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace",null,null] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/XML/1998/namespace","","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/",null,"NAMESPACE_ERR"] + expected: FAIL + + [createElementNS test in XML document: "http://www.w3.org/2000/xmlns/","","INVALID_CHARACTER_ERR"] + expected: FAIL + + [createElementNS test in XML document: "foo:",null,null] + expected: FAIL + + [createElementNS test in XML document: "foo:","","INVALID_CHARACTER_ERR"] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/Element-matches.html.ini b/tests/wpt/metadata/dom/nodes/Element-matches.html.ini index eb4e7150cb8..a142fe86bf4 100644 --- a/tests/wpt/metadata/dom/nodes/Element-matches.html.ini +++ b/tests/wpt/metadata/dom/nodes/Element-matches.html.ini @@ -51,3 +51,69 @@ [In-document Element.matches: ID selector, matching id values using non-ASCII characters (with no refNodes): #台北Táiběi, #台北] expected: FAIL + [In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): body>>#descendant-div1] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3] + expected: FAIL + + [Detached Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div] + expected: FAIL + + [Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1] + expected: FAIL + + [Detached Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2] + expected: FAIL + + [Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2] + expected: FAIL + + [Detached Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3] + expected: FAIL + + [Fragment Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (with no refNodes): #descendant>>div] + expected: FAIL + + [Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (with no refNodes): div>>#descendant-div1] + expected: FAIL + + [Fragment Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (with no refNodes): #descendant>>#descendant-div2] + expected: FAIL + + [Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (with no refNodes): #descendant>>.descendant-div2] + expected: FAIL + + [Fragment Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with class (with no refNodes): .descendant-div1>>.descendant-div3] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element that is a descendant of an element with id (1) (with no refNodes): #descendant>>div] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): body>>#descendant-div1] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element (1) (with no refNodes): div>>#descendant-div1] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with id that is a descendant of an element with id (1) (with no refNodes): #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.matches: Descendant combinator '>>', matching element with class that is a descendant of an element with id (1) (with no refNodes): #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.matches: Descendant combinator, '>>', matching element with class that is a descendant of an element with class (1) (with no refNodes): .descendant-div1>>.descendant-div3] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini index bf9ca1b19c3..e7b0b183659 100644 --- a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini +++ b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All-xht.xht.ini @@ -216,3 +216,159 @@ [In-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] expected: FAIL + [Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All.html.ini b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All.html.ini index fee1e0a7f3c..4da980298cb 100644 --- a/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All.html.ini +++ b/tests/wpt/metadata/dom/nodes/ParentNode-querySelector-All.html.ini @@ -216,3 +216,159 @@ [In-document Element.querySelector: ::first-letter pseudo-element (two-colon syntax) selector, not matching any elements: #pseudo-element::first-letter] expected: FAIL + [Document.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Document.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Document.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Detached Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Detached Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [Fragment.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [Fragment.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element that is a descendant of an element with id: #descendant>>div] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: body>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element: div>>#descendant-div1] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with id that is a descendant of an element with id: #descendant>>#descendant-div2] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with id: #descendant>>.descendant-div2] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', matching element with class that is a descendant of an element with class: .descendant-div1>>.descendant-div3] + expected: FAIL + + [In-document Element.querySelectorAll: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + + [In-document Element.querySelector: Descendant combinator '>>', not matching element with id that is not a descendant of an element with id: #descendant-div1>>#descendant-div4] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-appendChild.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-appendChild.html.ini new file mode 100644 index 00000000000..4cc4866cf8a --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-appendChild.html.ini @@ -0,0 +1,107 @@ +[Range-mutations-appendChild.html] + type: testharness + [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 0)] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv.lastChild from 0 to 1] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 1)] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length - 1)] + expected: FAIL + + [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length)] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 0)] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv.lastChild from 0 to 1] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 1)] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1)] + expected: FAIL + + [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length)] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 0 to 2] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 1 to 2] + expected: FAIL + + [foreignDoc.appendChild(detachedComment), with selected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length] + expected: FAIL + + [foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1)] + expected: FAIL + + [foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length)] + expected: FAIL + + [foreignDoc.appendChild(detachedComment), with selected range on detachedComment from 0 to 5] + expected: FAIL + + [paras[0\].appendChild(xmlTextNode), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].appendChild(xmlTextNode), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(xmlTextNode), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].appendChild(paras[0\]), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(testDiv), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(document), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(foreignDoc), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].appendChild(document.doctype), with selected range on paras[0\] from 0 to 1] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-appendData.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-appendData.html.ini new file mode 100644 index 00000000000..915229970ab --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-appendData.html.ini @@ -0,0 +1,578 @@ +[Range-mutations-appendData.html] + type: testharness + [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 0 to paras[0\].firstChild.length] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 1 to paras[0\].firstChild.length] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 0 to paras[0\].firstChild.length] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 1 to paras[0\].firstChild.length] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 0 to paras[1\].firstChild.length] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 1 to paras[1\].firstChild.length] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 0 to paras[1\].firstChild.length] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 1 to paras[1\].firstChild.length] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to foreignTextNode.length] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to foreignTextNode.length] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to foreignTextNode.length] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to foreignTextNode.length] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to xmlTextNode.length] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to xmlTextNode.length] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to xmlTextNode.length] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to xmlTextNode.length] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to detachedTextNode.length] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to detachedTextNode.length] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to detachedTextNode.length] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to detachedTextNode.length] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [comment.appendData("foo"), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.appendData("foo"), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.appendData("foo"), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.appendData("foo"), with selected range on comment from 0 to comment.length] + expected: FAIL + + [comment.appendData("foo"), with selected range on comment from 1 to comment.length] + expected: FAIL + + [comment.appendData("foo"), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.appendData("foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.appendData(""), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.appendData(""), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.appendData(""), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.appendData(""), with selected range on comment from 0 to comment.length] + expected: FAIL + + [comment.appendData(""), with selected range on comment from 1 to comment.length] + expected: FAIL + + [comment.appendData(""), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.appendData(""), with selected range on comment from 1 to 3] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range on foreignComment from 0 to foreignComment.length] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range on foreignComment from 1 to foreignComment.length] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.appendData("foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.appendData(""), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.appendData(""), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.appendData(""), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.appendData(""), with selected range on foreignComment from 0 to foreignComment.length] + expected: FAIL + + [foreignComment.appendData(""), with selected range on foreignComment from 1 to foreignComment.length] + expected: FAIL + + [foreignComment.appendData(""), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.appendData(""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range on xmlComment from 0 to xmlComment.length] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range on xmlComment from 1 to xmlComment.length] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.appendData("foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.appendData(""), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.appendData(""), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.appendData(""), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.appendData(""), with selected range on xmlComment from 0 to xmlComment.length] + expected: FAIL + + [xmlComment.appendData(""), with selected range on xmlComment from 1 to xmlComment.length] + expected: FAIL + + [xmlComment.appendData(""), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.appendData(""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range on detachedComment from 0 to detachedComment.length] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range on detachedComment from 1 to detachedComment.length] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.appendData("foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.appendData(""), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.appendData(""), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.appendData(""), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.appendData(""), with selected range on detachedComment from 0 to detachedComment.length] + expected: FAIL + + [detachedComment.appendData(""), with selected range on detachedComment from 1 to detachedComment.length] + expected: FAIL + + [detachedComment.appendData(""), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.appendData(""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to detachedForeignComment.length] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to detachedForeignComment.length] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to detachedForeignComment.length] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to detachedForeignComment.length] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to detachedXmlComment.length] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to detachedXmlComment.length] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to detachedXmlComment.length] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to detachedXmlComment.length] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.appendData(""), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.appendData("foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-dataChange.html.ini similarity index 51% rename from tests/wpt/metadata/dom/ranges/Range-mutations.html.ini rename to tests/wpt/metadata/dom/ranges/Range-mutations-dataChange.html.ini index 7c599ca1e6f..35598a04368 100644 --- a/tests/wpt/metadata/dom/ranges/Range-mutations.html.ini +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-dataChange.html.ini @@ -1,3893 +1,5 @@ -[Range-mutations.html] +[Range-mutations-dataChange.html] type: testharness - [paras[0\].firstChild.splitText(376), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.splitText(0), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.splitText(paras[0\].firstChild.length), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.splitText(2), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.splitText(3), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.splitText(376), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.splitText(0), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.splitText(1), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.splitText(paras[1\].firstChild.length), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.splitText(1), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.splitText(2), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.splitText(3), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [foreignTextNode.splitText(376), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.splitText(0), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.splitText(1), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.splitText(foreignTextNode.length), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.splitText(1), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.splitText(2), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.splitText(3), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.splitText(376), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.splitText(0), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.splitText(1), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.splitText(xmlTextNode.length), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.splitText(1), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.splitText(2), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.splitText(3), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.splitText(376), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.splitText(0), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.splitText(1), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.splitText(detachedTextNode.length), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.splitText(1), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.splitText(2), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.splitText(3), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.splitText(376), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.splitText(0), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.splitText(1), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.splitText(detachedForeignTextNode.length), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.splitText(1), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.splitText(2), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.splitText(3), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.splitText(376), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.splitText(0), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.splitText(1), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.splitText(detachedXmlTextNode.length), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.splitText(1), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.splitText(2), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.splitText(3), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.splitText(2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.splitText(3), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.splitText(1), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.splitText(2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.splitText(3), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.insertData(376, "foo"), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(paras[0\].firstChild.length, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(2, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(3, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(376, ""), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.insertData(0, ""), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, ""), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(paras[0\].firstChild.length, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(2, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(3, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(376, "foo"), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.insertData(paras[1\].firstChild.length, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.insertData(1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(2, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(3, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(376, ""), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.insertData(0, ""), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.insertData(1, ""), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.insertData(paras[1\].firstChild.length, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.insertData(1, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(2, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.insertData(3, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(376, "foo"), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.insertData(0, "foo"), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.insertData(1, "foo"), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.insertData(foreignTextNode.length, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.insertData(1, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(2, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(3, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(376, ""), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.insertData(0, ""), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.insertData(1, ""), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.insertData(foreignTextNode.length, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.insertData(1, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(2, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.insertData(3, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(376, "foo"), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.insertData(0, "foo"), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.insertData(1, "foo"), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.insertData(xmlTextNode.length, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.insertData(1, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(2, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(3, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(376, ""), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.insertData(0, ""), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.insertData(1, ""), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.insertData(xmlTextNode.length, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.insertData(1, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(2, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.insertData(3, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(376, "foo"), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.insertData(0, "foo"), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.insertData(1, "foo"), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.insertData(detachedTextNode.length, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.insertData(1, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(2, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(3, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(376, ""), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.insertData(0, ""), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.insertData(1, ""), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.insertData(detachedTextNode.length, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.insertData(1, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(2, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.insertData(3, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(376, "foo"), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.insertData(0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.insertData(1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.insertData(detachedForeignTextNode.length, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.insertData(1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(2, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(3, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(376, ""), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.insertData(0, ""), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.insertData(1, ""), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.insertData(detachedForeignTextNode.length, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.insertData(1, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(2, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.insertData(3, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(376, "foo"), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.insertData(0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.insertData(1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.insertData(detachedXmlTextNode.length, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.insertData(1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(2, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(3, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(376, ""), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.insertData(0, ""), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.insertData(1, ""), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.insertData(detachedXmlTextNode.length, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.insertData(1, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(2, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.insertData(3, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [comment.insertData(376, "foo"), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.insertData(0, "foo"), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.insertData(1, "foo"), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.insertData(comment.length, "foo"), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.insertData(1, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.insertData(2, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.insertData(3, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.insertData(376, ""), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.insertData(0, ""), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.insertData(1, ""), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.insertData(comment.length, ""), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.insertData(1, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.insertData(2, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.insertData(3, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(376, "foo"), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.insertData(0, "foo"), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.insertData(1, "foo"), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.insertData(foreignComment.length, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.insertData(1, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(2, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(3, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(376, ""), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.insertData(0, ""), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.insertData(1, ""), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.insertData(foreignComment.length, ""), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.insertData(1, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(2, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.insertData(3, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(376, "foo"), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.insertData(0, "foo"), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.insertData(1, "foo"), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.insertData(xmlComment.length, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.insertData(1, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(2, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(3, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(376, ""), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.insertData(0, ""), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.insertData(1, ""), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.insertData(xmlComment.length, ""), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.insertData(1, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(2, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.insertData(3, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(376, "foo"), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.insertData(0, "foo"), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.insertData(1, "foo"), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.insertData(detachedComment.length, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.insertData(1, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(2, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(3, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(376, ""), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.insertData(0, ""), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.insertData(1, ""), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.insertData(detachedComment.length, ""), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.insertData(1, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(2, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.insertData(3, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(376, "foo"), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.insertData(0, "foo"), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.insertData(1, "foo"), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.insertData(detachedForeignComment.length, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.insertData(1, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(2, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(3, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(376, ""), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.insertData(0, ""), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.insertData(1, ""), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.insertData(detachedForeignComment.length, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.insertData(1, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(2, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.insertData(3, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(376, "foo"), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.insertData(0, "foo"), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.insertData(1, "foo"), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.insertData(detachedXmlComment.length, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.insertData(1, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(2, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(3, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(376, ""), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.insertData(0, ""), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.insertData(1, ""), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.insertData(detachedXmlComment.length, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.insertData(1, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(2, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.insertData(3, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(2, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(3, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.insertData(1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.insertData(2, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.insertData(3, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 0 to paras[0\].firstChild.length] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 1 to paras[0\].firstChild.length] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 0 to paras[0\].firstChild.length] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 1 to paras[0\].firstChild.length] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 0 to paras[1\].firstChild.length] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 1 to paras[1\].firstChild.length] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.appendData("foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 0 to paras[1\].firstChild.length] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 1 to paras[1\].firstChild.length] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.appendData(""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 0 to foreignTextNode.length] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to foreignTextNode.length] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.appendData("foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range on foreignTextNode from 0 to foreignTextNode.length] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to foreignTextNode.length] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.appendData(""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 0 to xmlTextNode.length] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to xmlTextNode.length] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.appendData("foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range on xmlTextNode from 0 to xmlTextNode.length] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to xmlTextNode.length] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.appendData(""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 0 to detachedTextNode.length] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to detachedTextNode.length] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.appendData("foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range on detachedTextNode from 0 to detachedTextNode.length] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to detachedTextNode.length] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.appendData(""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.appendData("foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 0 to detachedForeignTextNode.length] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to detachedForeignTextNode.length] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.appendData(""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.appendData("foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 0 to detachedXmlTextNode.length] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to detachedXmlTextNode.length] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.appendData(""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [comment.appendData("foo"), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.appendData("foo"), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.appendData("foo"), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.appendData("foo"), with selected range on comment from 0 to comment.length] - expected: FAIL - - [comment.appendData("foo"), with selected range on comment from 1 to comment.length] - expected: FAIL - - [comment.appendData("foo"), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.appendData("foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.appendData(""), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.appendData(""), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.appendData(""), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.appendData(""), with selected range on comment from 0 to comment.length] - expected: FAIL - - [comment.appendData(""), with selected range on comment from 1 to comment.length] - expected: FAIL - - [comment.appendData(""), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.appendData(""), with selected range on comment from 1 to 3] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range on foreignComment from 0 to foreignComment.length] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range on foreignComment from 1 to foreignComment.length] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.appendData("foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.appendData(""), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.appendData(""), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.appendData(""), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.appendData(""), with selected range on foreignComment from 0 to foreignComment.length] - expected: FAIL - - [foreignComment.appendData(""), with selected range on foreignComment from 1 to foreignComment.length] - expected: FAIL - - [foreignComment.appendData(""), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.appendData(""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range on xmlComment from 0 to xmlComment.length] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range on xmlComment from 1 to xmlComment.length] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.appendData("foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.appendData(""), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.appendData(""), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.appendData(""), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.appendData(""), with selected range on xmlComment from 0 to xmlComment.length] - expected: FAIL - - [xmlComment.appendData(""), with selected range on xmlComment from 1 to xmlComment.length] - expected: FAIL - - [xmlComment.appendData(""), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.appendData(""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range on detachedComment from 0 to detachedComment.length] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range on detachedComment from 1 to detachedComment.length] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.appendData("foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.appendData(""), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.appendData(""), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.appendData(""), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.appendData(""), with selected range on detachedComment from 0 to detachedComment.length] - expected: FAIL - - [detachedComment.appendData(""), with selected range on detachedComment from 1 to detachedComment.length] - expected: FAIL - - [detachedComment.appendData(""), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.appendData(""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 0 to detachedForeignComment.length] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to detachedForeignComment.length] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.appendData("foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 0 to detachedForeignComment.length] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to detachedForeignComment.length] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.appendData(""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 0 to detachedXmlComment.length] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to detachedXmlComment.length] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.appendData("foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 0 to detachedXmlComment.length] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to detachedXmlComment.length] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.appendData(""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.appendData(""), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.appendData("foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.deleteData(376, 2), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.deleteData(0, 2), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 2), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(2, 2), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(3, 2), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(376, 0), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.deleteData(0, 0), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 0), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 0), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 0), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(2, 0), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(3, 0), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(376, 631), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.deleteData(0, 631), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 631), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 631), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 631), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(2, 631), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(3, 631), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(376, 2), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.deleteData(0, 2), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 2), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 2), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(2, 2), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(3, 2), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(376, 0), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.deleteData(0, 0), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 0), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 0), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 0), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(2, 0), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(3, 0), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(376, 631), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.deleteData(0, 631), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 631), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 631), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.deleteData(1, 631), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(2, 631), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.deleteData(3, 631), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(376, 2), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.deleteData(0, 2), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.deleteData(1, 2), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.deleteData(foreignTextNode.length, 2), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.deleteData(1, 2), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(2, 2), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(3, 2), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(376, 0), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.deleteData(0, 0), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.deleteData(1, 0), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.deleteData(foreignTextNode.length, 0), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.deleteData(1, 0), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(2, 0), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(3, 0), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(376, 631), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.deleteData(0, 631), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.deleteData(1, 631), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.deleteData(foreignTextNode.length, 631), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.deleteData(1, 631), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(2, 631), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.deleteData(3, 631), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(376, 2), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.deleteData(0, 2), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.deleteData(1, 2), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.deleteData(xmlTextNode.length, 2), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.deleteData(1, 2), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(2, 2), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(3, 2), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(376, 0), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.deleteData(0, 0), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.deleteData(1, 0), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.deleteData(xmlTextNode.length, 0), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.deleteData(1, 0), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(2, 0), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(3, 0), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(376, 631), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.deleteData(0, 631), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.deleteData(1, 631), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.deleteData(xmlTextNode.length, 631), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.deleteData(1, 631), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(2, 631), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.deleteData(3, 631), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(376, 2), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.deleteData(0, 2), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.deleteData(1, 2), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.deleteData(detachedTextNode.length, 2), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.deleteData(1, 2), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(2, 2), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(3, 2), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(376, 0), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.deleteData(0, 0), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.deleteData(1, 0), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.deleteData(detachedTextNode.length, 0), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.deleteData(1, 0), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(2, 0), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(3, 0), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(376, 631), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.deleteData(0, 631), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.deleteData(1, 631), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.deleteData(detachedTextNode.length, 631), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.deleteData(1, 631), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(2, 631), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.deleteData(3, 631), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(376, 2), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.deleteData(0, 2), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 2), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 2), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(2, 2), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(3, 2), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(376, 0), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.deleteData(0, 0), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 0), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 0), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(2, 0), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(3, 0), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(376, 631), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.deleteData(0, 631), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 631), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.deleteData(1, 631), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(2, 631), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.deleteData(3, 631), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(376, 2), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.deleteData(0, 2), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 2), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 2), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(2, 2), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(3, 2), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(376, 0), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.deleteData(0, 0), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 0), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 0), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(2, 0), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(3, 0), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(376, 631), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.deleteData(0, 631), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 631), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.deleteData(1, 631), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(2, 631), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.deleteData(3, 631), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [comment.deleteData(376, 2), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.deleteData(0, 2), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.deleteData(1, 2), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.deleteData(comment.length, 2), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.deleteData(1, 2), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(2, 2), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(3, 2), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(376, 0), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.deleteData(0, 0), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.deleteData(1, 0), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.deleteData(comment.length, 0), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.deleteData(1, 0), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(2, 0), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(3, 0), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(376, 631), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.deleteData(0, 631), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.deleteData(1, 631), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.deleteData(comment.length, 631), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.deleteData(1, 631), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(2, 631), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.deleteData(3, 631), with selected range on comment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(376, 2), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.deleteData(0, 2), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.deleteData(1, 2), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.deleteData(foreignComment.length, 2), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.deleteData(1, 2), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(2, 2), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(3, 2), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(376, 0), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.deleteData(0, 0), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.deleteData(1, 0), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.deleteData(foreignComment.length, 0), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.deleteData(1, 0), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(2, 0), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(3, 0), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(376, 631), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.deleteData(0, 631), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.deleteData(1, 631), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.deleteData(foreignComment.length, 631), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.deleteData(1, 631), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(2, 631), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.deleteData(3, 631), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(376, 2), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.deleteData(0, 2), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.deleteData(1, 2), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.deleteData(xmlComment.length, 2), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.deleteData(1, 2), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(2, 2), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(3, 2), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(376, 0), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.deleteData(0, 0), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.deleteData(1, 0), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.deleteData(xmlComment.length, 0), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.deleteData(1, 0), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(2, 0), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(3, 0), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(376, 631), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.deleteData(0, 631), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.deleteData(1, 631), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.deleteData(xmlComment.length, 631), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.deleteData(1, 631), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(2, 631), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.deleteData(3, 631), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(376, 2), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.deleteData(0, 2), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.deleteData(1, 2), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.deleteData(detachedComment.length, 2), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.deleteData(1, 2), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(2, 2), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(3, 2), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(376, 0), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.deleteData(0, 0), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.deleteData(1, 0), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.deleteData(detachedComment.length, 0), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.deleteData(1, 0), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(2, 0), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(3, 0), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(376, 631), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.deleteData(0, 631), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.deleteData(1, 631), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.deleteData(detachedComment.length, 631), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.deleteData(1, 631), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(2, 631), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.deleteData(3, 631), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(376, 2), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.deleteData(0, 2), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 2), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.deleteData(detachedForeignComment.length, 2), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 2), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(2, 2), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(3, 2), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(376, 0), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.deleteData(0, 0), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 0), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.deleteData(detachedForeignComment.length, 0), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 0), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(2, 0), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(3, 0), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(376, 631), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.deleteData(0, 631), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 631), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.deleteData(detachedForeignComment.length, 631), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.deleteData(1, 631), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(2, 631), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.deleteData(3, 631), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(376, 2), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.deleteData(0, 2), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 2), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.deleteData(detachedXmlComment.length, 2), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 2), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(2, 2), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(3, 2), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(376, 0), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.deleteData(0, 0), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 0), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.deleteData(detachedXmlComment.length, 0), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 0), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(2, 0), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(3, 0), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(376, 631), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.deleteData(0, 631), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 631), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.deleteData(detachedXmlComment.length, 631), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.deleteData(1, 631), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(2, 631), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.deleteData(3, 631), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(2, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(3, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.deleteData(1, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.deleteData(2, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.deleteData(3, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 0, "foo"), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 0, ""), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 0, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 1, "foo"), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 1, ""), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 1, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 47, "foo"), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(376, 47, ""), with selected range on paras[0\].firstChild from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[0\].firstChild, 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[0\].firstChild, 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 47, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 0, "foo"), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 0, ""), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 0, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 1, "foo"), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 1, ""), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 1, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 47, "foo"), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(376, 47, ""), with selected range on paras[1\].firstChild from 0 to 1] - expected: FAIL - - [paras[1\].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[1\].firstChild, 0)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[1\].firstChild, 1)] - expected: FAIL - - [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 47, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] - expected: FAIL - - [paras[1\].firstChild.replaceData(1, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(2, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [paras[1\].firstChild.replaceData(3, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 0, "foo"), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 0, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 0, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 0, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 0, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 0, ""), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 0, ""), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 0, ""), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 0, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 0, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 0, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 0, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 1, "foo"), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 1, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 1, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 1, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 1, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 1, ""), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 1, ""), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 1, ""), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 1, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 1, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 1, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 1, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 47, "foo"), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 47, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 47, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 47, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 47, "foo"), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(376, 47, ""), with selected range on foreignTextNode from 0 to 1] - expected: FAIL - - [foreignTextNode.replaceData(0, 47, ""), with selected range collapsed at (foreignTextNode, 0)] - expected: FAIL - - [foreignTextNode.replaceData(1, 47, ""), with selected range collapsed at (foreignTextNode, 1)] - expected: FAIL - - [foreignTextNode.replaceData(foreignTextNode.length, 47, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] - expected: FAIL - - [foreignTextNode.replaceData(1, 47, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(2, 47, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [foreignTextNode.replaceData(3, 47, ""), with selected range on foreignTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 0, "foo"), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 0, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 0, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 0, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 0, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 0, ""), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 0, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 0, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 0, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 0, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 1, "foo"), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 1, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 1, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 1, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 1, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 1, ""), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 1, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 1, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 1, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 1, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 47, "foo"), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 47, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 47, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 47, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 47, "foo"), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(376, 47, ""), with selected range on xmlTextNode from 0 to 1] - expected: FAIL - - [xmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (xmlTextNode, 0)] - expected: FAIL - - [xmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (xmlTextNode, 1)] - expected: FAIL - - [xmlTextNode.replaceData(xmlTextNode.length, 47, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] - expected: FAIL - - [xmlTextNode.replaceData(1, 47, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(2, 47, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [xmlTextNode.replaceData(3, 47, ""), with selected range on xmlTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 0, "foo"), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 0, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 0, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 0, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 0, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 0, ""), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 0, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 0, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 0, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 0, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 1, "foo"), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 1, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 1, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 1, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 1, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 1, ""), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 1, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 1, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 1, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 1, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 47, "foo"), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 47, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 47, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 47, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 47, "foo"), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(376, 47, ""), with selected range on detachedTextNode from 0 to 1] - expected: FAIL - - [detachedTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedTextNode, 0)] - expected: FAIL - - [detachedTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedTextNode, 1)] - expected: FAIL - - [detachedTextNode.replaceData(detachedTextNode.length, 47, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] - expected: FAIL - - [detachedTextNode.replaceData(1, 47, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(2, 47, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedTextNode.replaceData(3, 47, ""), with selected range on detachedTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 0, "foo"), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 0, ""), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 1, "foo"), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 1, ""), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 47, "foo"), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(376, 47, ""), with selected range on detachedForeignTextNode from 0 to 1] - expected: FAIL - - [detachedForeignTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignTextNode, 0)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignTextNode, 1)] - expected: FAIL - - [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] - expected: FAIL - - [detachedForeignTextNode.replaceData(1, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(2, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedForeignTextNode.replaceData(3, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 0, "foo"), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 0, ""), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 1, "foo"), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 1, ""), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 47, "foo"), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(376, 47, ""), with selected range on detachedXmlTextNode from 0 to 1] - expected: FAIL - - [detachedXmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlTextNode, 0)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlTextNode, 1)] - expected: FAIL - - [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] - expected: FAIL - - [detachedXmlTextNode.replaceData(1, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(2, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [detachedXmlTextNode.replaceData(3, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 0, "foo"), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 0, "foo"), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 0, "foo"), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 0, "foo"), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 0, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 0, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 0, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 0, ""), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 0, ""), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 0, ""), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 0, ""), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 0, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 0, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 0, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 1, "foo"), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 1, "foo"), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 1, "foo"), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 1, "foo"), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 1, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 1, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 1, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 1, ""), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 1, ""), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 1, ""), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 1, ""), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 1, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 1, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 1, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 47, "foo"), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 47, "foo"), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 47, "foo"), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 47, "foo"), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 47, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 47, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 47, "foo"), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(376, 47, ""), with selected range on comment from 0 to 1] - expected: FAIL - - [comment.replaceData(0, 47, ""), with selected range collapsed at (comment, 0)] - expected: FAIL - - [comment.replaceData(1, 47, ""), with selected range collapsed at (comment, 1)] - expected: FAIL - - [comment.replaceData(comment.length, 47, ""), with selected range collapsed at (comment, comment.length)] - expected: FAIL - - [comment.replaceData(1, 47, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(2, 47, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [comment.replaceData(3, 47, ""), with selected range on comment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 0, "foo"), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 0, "foo"), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 0, "foo"), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 0, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 0, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 0, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 0, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 0, ""), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 0, ""), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 0, ""), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 0, ""), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 0, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 0, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 0, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 1, "foo"), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 1, "foo"), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 1, "foo"), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 1, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 1, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 1, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 1, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 1, ""), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 1, ""), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 1, ""), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 1, ""), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 1, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 1, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 1, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 47, "foo"), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 47, "foo"), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 47, "foo"), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 47, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 47, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 47, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 47, "foo"), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(376, 47, ""), with selected range on foreignComment from 0 to 1] - expected: FAIL - - [foreignComment.replaceData(0, 47, ""), with selected range collapsed at (foreignComment, 0)] - expected: FAIL - - [foreignComment.replaceData(1, 47, ""), with selected range collapsed at (foreignComment, 1)] - expected: FAIL - - [foreignComment.replaceData(foreignComment.length, 47, ""), with selected range collapsed at (foreignComment, foreignComment.length)] - expected: FAIL - - [foreignComment.replaceData(1, 47, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(2, 47, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [foreignComment.replaceData(3, 47, ""), with selected range on foreignComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 0, "foo"), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 0, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 0, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 0, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 0, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 0, ""), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 0, ""), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 0, ""), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 0, ""), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 0, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 0, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 0, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 1, "foo"), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 1, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 1, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 1, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 1, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 1, ""), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 1, ""), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 1, ""), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 1, ""), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 1, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 1, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 1, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 47, "foo"), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 47, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 47, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 47, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 47, "foo"), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(376, 47, ""), with selected range on xmlComment from 0 to 1] - expected: FAIL - - [xmlComment.replaceData(0, 47, ""), with selected range collapsed at (xmlComment, 0)] - expected: FAIL - - [xmlComment.replaceData(1, 47, ""), with selected range collapsed at (xmlComment, 1)] - expected: FAIL - - [xmlComment.replaceData(xmlComment.length, 47, ""), with selected range collapsed at (xmlComment, xmlComment.length)] - expected: FAIL - - [xmlComment.replaceData(1, 47, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(2, 47, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [xmlComment.replaceData(3, 47, ""), with selected range on xmlComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 0, "foo"), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 0, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 0, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 0, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 0, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 0, ""), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 0, ""), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 0, ""), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 0, ""), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 0, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 0, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 0, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 1, "foo"), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 1, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 1, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 1, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 1, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 1, ""), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 1, ""), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 1, ""), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 1, ""), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 1, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 1, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 1, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 47, "foo"), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 47, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 47, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 47, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 47, "foo"), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(376, 47, ""), with selected range on detachedComment from 0 to 1] - expected: FAIL - - [detachedComment.replaceData(0, 47, ""), with selected range collapsed at (detachedComment, 0)] - expected: FAIL - - [detachedComment.replaceData(1, 47, ""), with selected range collapsed at (detachedComment, 1)] - expected: FAIL - - [detachedComment.replaceData(detachedComment.length, 47, ""), with selected range collapsed at (detachedComment, detachedComment.length)] - expected: FAIL - - [detachedComment.replaceData(1, 47, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(2, 47, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedComment.replaceData(3, 47, ""), with selected range on detachedComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 0, "foo"), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 0, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 0, ""), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 0, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 0, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 0, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 0, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 1, "foo"), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 1, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 1, ""), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 1, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 1, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 1, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 1, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 47, "foo"), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 47, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(376, 47, ""), with selected range on detachedForeignComment from 0 to 1] - expected: FAIL - - [detachedForeignComment.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignComment, 0)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignComment, 1)] - expected: FAIL - - [detachedForeignComment.replaceData(detachedForeignComment.length, 47, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] - expected: FAIL - - [detachedForeignComment.replaceData(1, 47, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(2, 47, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedForeignComment.replaceData(3, 47, ""), with selected range on detachedForeignComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 0, "foo"), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 0, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 0, ""), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 0, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 0, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 0, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 0, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 1, "foo"), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 1, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 1, ""), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 1, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 1, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 1, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 1, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 47, "foo"), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 47, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(376, 47, ""), with selected range on detachedXmlComment from 0 to 1] - expected: FAIL - - [detachedXmlComment.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlComment, 0)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlComment, 1)] - expected: FAIL - - [detachedXmlComment.replaceData(detachedXmlComment.length, 47, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] - expected: FAIL - - [detachedXmlComment.replaceData(1, 47, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(2, 47, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [detachedXmlComment.replaceData(3, 47, ""), with selected range on detachedXmlComment from 1 to 3] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] - expected: FAIL - - [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - - [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] - expected: FAIL - [paras[0\].firstChild.data = "", with selected range collapsed at (paras[0\].firstChild, 0)] expected: FAIL @@ -8100,342 +4212,3 @@ [detachedXmlComment.nodeValue += detachedXmlComment.nodeValue, with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] expected: FAIL - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on testDiv from 0 to 2] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on testDiv from 1 to 2] - expected: FAIL - - [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (testDiv, 2)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 2] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 1 to 2] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 0 to 2] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 1 to 2] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0)] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1)] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0)] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1)] - expected: FAIL - - [foreignDoc.insertBefore(detachedComment, null), with selected range on foreignDoc from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].insertBefore(paras[0\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(testDiv, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(document, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(foreignDoc, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].insertBefore(document.doctype, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on testDiv from 0 to 2] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on testDiv from 1 to 2] - expected: FAIL - - [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (testDiv, 2)] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 2] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 1 to 2] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0)] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1)] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0)] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2] - expected: FAIL - - [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1)] - expected: FAIL - - [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].replaceChild(paras[0\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(testDiv, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(document, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(foreignDoc, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].replaceChild(document.doctype, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 0)] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv.lastChild from 0 to 1] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv.lastChild, 1)] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 2 to testDiv.childNodes.length - 1] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range on testDiv from testDiv.childNodes.length - 1 to testDiv.childNodes.length] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length - 1)] - expected: FAIL - - [testDiv.appendChild(testDiv.lastChild), with selected range collapsed at (testDiv, testDiv.childNodes.length)] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 0)] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv.lastChild from 0 to 1] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv.lastChild, 1)] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 2 to detachedDiv.childNodes.length - 1] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range on detachedDiv from detachedDiv.childNodes.length - 1 to detachedDiv.childNodes.length] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length - 1)] - expected: FAIL - - [detachedDiv.appendChild(detachedDiv.lastChild), with selected range collapsed at (detachedDiv, detachedDiv.childNodes.length)] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 0 to 2] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [paras[0\].appendChild(paras[1\]), with selected range on testDiv from 1 to 2] - expected: FAIL - - [foreignDoc.appendChild(detachedComment), with selected range on foreignDoc from foreignDoc.childNodes.length - 1 to foreignDoc.childNodes.length] - expected: FAIL - - [foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length - 1)] - expected: FAIL - - [foreignDoc.appendChild(detachedComment), with selected range collapsed at (foreignDoc, foreignDoc.childNodes.length)] - expected: FAIL - - [foreignDoc.appendChild(detachedComment), with selected range on detachedComment from 0 to 5] - expected: FAIL - - [paras[0\].appendChild(xmlTextNode), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].appendChild(xmlTextNode), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(xmlTextNode), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].appendChild(paras[0\]), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(testDiv), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(document), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(foreignDoc), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].appendChild(document.doctype), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (paras[0\], 0)] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range on paras[0\] from 0 to 1] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (paras[0\], 1)] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 0)] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 0 to 1] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 1)] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 0 to 2] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 1 to 2] - expected: FAIL - - [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 2)] - expected: FAIL - - [foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with selected range on foreignDoc from 0 to foreignDoc.childNodes.length] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-deleteData.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-deleteData.html.ini new file mode 100644 index 00000000000..b6bcbd09ce8 --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-deleteData.html.ini @@ -0,0 +1,848 @@ +[Range-mutations-deleteData.html] + type: testharness + [paras[0\].firstChild.deleteData(376, 2), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.deleteData(0, 2), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 2), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(2, 2), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(3, 2), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(376, 0), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.deleteData(0, 0), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 0), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 0), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 0), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(2, 0), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(3, 0), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(376, 631), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.deleteData(0, 631), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 631), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(paras[0\].firstChild.length, 631), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 631), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(2, 631), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(3, 631), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(376, 2), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.deleteData(0, 2), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 2), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 2), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(2, 2), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(3, 2), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(376, 0), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.deleteData(0, 0), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 0), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 0), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 0), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(2, 0), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(3, 0), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(376, 631), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.deleteData(0, 631), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 631), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.deleteData(paras[1\].firstChild.length, 631), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.deleteData(1, 631), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(2, 631), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.deleteData(3, 631), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(376, 2), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.deleteData(0, 2), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.deleteData(1, 2), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.deleteData(foreignTextNode.length, 2), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.deleteData(1, 2), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(2, 2), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(3, 2), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(376, 0), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.deleteData(0, 0), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.deleteData(1, 0), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.deleteData(foreignTextNode.length, 0), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.deleteData(1, 0), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(2, 0), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(3, 0), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(376, 631), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.deleteData(0, 631), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.deleteData(1, 631), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.deleteData(foreignTextNode.length, 631), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.deleteData(1, 631), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(2, 631), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.deleteData(3, 631), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(376, 2), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.deleteData(0, 2), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.deleteData(1, 2), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.deleteData(xmlTextNode.length, 2), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.deleteData(1, 2), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(2, 2), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(3, 2), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(376, 0), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.deleteData(0, 0), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.deleteData(1, 0), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.deleteData(xmlTextNode.length, 0), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.deleteData(1, 0), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(2, 0), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(3, 0), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(376, 631), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.deleteData(0, 631), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.deleteData(1, 631), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.deleteData(xmlTextNode.length, 631), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.deleteData(1, 631), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(2, 631), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.deleteData(3, 631), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(376, 2), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.deleteData(0, 2), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.deleteData(1, 2), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.deleteData(detachedTextNode.length, 2), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.deleteData(1, 2), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(2, 2), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(3, 2), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(376, 0), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.deleteData(0, 0), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.deleteData(1, 0), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.deleteData(detachedTextNode.length, 0), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.deleteData(1, 0), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(2, 0), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(3, 0), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(376, 631), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.deleteData(0, 631), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.deleteData(1, 631), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.deleteData(detachedTextNode.length, 631), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.deleteData(1, 631), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(2, 631), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.deleteData(3, 631), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(376, 2), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.deleteData(0, 2), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 2), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 2), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 2), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(2, 2), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(3, 2), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(376, 0), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.deleteData(0, 0), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 0), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 0), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 0), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(2, 0), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(3, 0), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(376, 631), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.deleteData(0, 631), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 631), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.deleteData(detachedForeignTextNode.length, 631), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.deleteData(1, 631), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(2, 631), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.deleteData(3, 631), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(376, 2), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.deleteData(0, 2), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 2), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 2), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 2), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(2, 2), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(3, 2), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(376, 0), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.deleteData(0, 0), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 0), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 0), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 0), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(2, 0), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(3, 0), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(376, 631), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.deleteData(0, 631), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 631), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.deleteData(detachedXmlTextNode.length, 631), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.deleteData(1, 631), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(2, 631), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.deleteData(3, 631), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [comment.deleteData(376, 2), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.deleteData(0, 2), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.deleteData(1, 2), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.deleteData(comment.length, 2), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.deleteData(1, 2), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(2, 2), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(3, 2), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(376, 0), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.deleteData(0, 0), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.deleteData(1, 0), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.deleteData(comment.length, 0), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.deleteData(1, 0), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(2, 0), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(3, 0), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(376, 631), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.deleteData(0, 631), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.deleteData(1, 631), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.deleteData(comment.length, 631), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.deleteData(1, 631), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(2, 631), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.deleteData(3, 631), with selected range on comment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(376, 2), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.deleteData(0, 2), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.deleteData(1, 2), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.deleteData(foreignComment.length, 2), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.deleteData(1, 2), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(2, 2), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(3, 2), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(376, 0), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.deleteData(0, 0), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.deleteData(1, 0), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.deleteData(foreignComment.length, 0), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.deleteData(1, 0), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(2, 0), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(3, 0), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(376, 631), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.deleteData(0, 631), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.deleteData(1, 631), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.deleteData(foreignComment.length, 631), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.deleteData(1, 631), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(2, 631), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.deleteData(3, 631), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(376, 2), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.deleteData(0, 2), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.deleteData(1, 2), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.deleteData(xmlComment.length, 2), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.deleteData(1, 2), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(2, 2), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(3, 2), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(376, 0), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.deleteData(0, 0), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.deleteData(1, 0), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.deleteData(xmlComment.length, 0), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.deleteData(1, 0), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(2, 0), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(3, 0), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(376, 631), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.deleteData(0, 631), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.deleteData(1, 631), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.deleteData(xmlComment.length, 631), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.deleteData(1, 631), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(2, 631), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.deleteData(3, 631), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(376, 2), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.deleteData(0, 2), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.deleteData(1, 2), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.deleteData(detachedComment.length, 2), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.deleteData(1, 2), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(2, 2), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(3, 2), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(376, 0), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.deleteData(0, 0), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.deleteData(1, 0), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.deleteData(detachedComment.length, 0), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.deleteData(1, 0), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(2, 0), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(3, 0), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(376, 631), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.deleteData(0, 631), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.deleteData(1, 631), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.deleteData(detachedComment.length, 631), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.deleteData(1, 631), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(2, 631), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.deleteData(3, 631), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(376, 2), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.deleteData(0, 2), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 2), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.deleteData(detachedForeignComment.length, 2), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 2), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(2, 2), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(3, 2), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(376, 0), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.deleteData(0, 0), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 0), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.deleteData(detachedForeignComment.length, 0), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 0), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(2, 0), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(3, 0), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(376, 631), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.deleteData(0, 631), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 631), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.deleteData(detachedForeignComment.length, 631), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.deleteData(1, 631), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(2, 631), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.deleteData(3, 631), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(376, 2), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.deleteData(0, 2), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 2), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.deleteData(detachedXmlComment.length, 2), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 2), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(2, 2), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(3, 2), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(376, 0), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.deleteData(0, 0), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 0), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.deleteData(detachedXmlComment.length, 0), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 0), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(2, 0), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(3, 0), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(376, 631), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.deleteData(0, 631), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 631), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.deleteData(detachedXmlComment.length, 631), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.deleteData(1, 631), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(2, 631), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.deleteData(3, 631), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(2, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(3, 2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.deleteData(1, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.deleteData(2, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.deleteData(3, 2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-insertBefore.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-insertBefore.html.ini new file mode 100644 index 00000000000..1f4099d07b6 --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-insertBefore.html.ini @@ -0,0 +1,116 @@ +[Range-mutations-insertBefore.html] + type: testharness + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on testDiv from 0 to 2] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range on testDiv from 1 to 2] + expected: FAIL + + [testDiv.insertBefore(paras[0\], paras[1\]), with selected range collapsed at (testDiv, 2)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 2] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], paras[0\].firstChild), with selected range on testDiv from 1 to 2] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 0 to 2] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [paras[0\].insertBefore(paras[1\], null), with selected range on testDiv from 1 to 2] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0)] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1)] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0)] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1)] + expected: FAIL + + [foreignDoc.insertBefore(detachedComment, null), with selected range on foreignDoc from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].insertBefore(paras[0\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(testDiv, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(document, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(foreignDoc, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].insertBefore(document.doctype, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-insertData.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-insertData.html.ini new file mode 100644 index 00000000000..c003d9ddcff --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-insertData.html.ini @@ -0,0 +1,575 @@ +[Range-mutations-insertData.html] + type: testharness + [paras[0\].firstChild.insertData(376, "foo"), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(paras[0\].firstChild.length, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(2, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(3, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(376, ""), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.insertData(0, ""), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, ""), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(paras[0\].firstChild.length, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(2, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(3, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(376, "foo"), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.insertData(0, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.insertData(paras[1\].firstChild.length, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.insertData(1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(2, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(3, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(376, ""), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.insertData(0, ""), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.insertData(1, ""), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.insertData(paras[1\].firstChild.length, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.insertData(1, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(2, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.insertData(3, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(376, "foo"), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.insertData(0, "foo"), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.insertData(1, "foo"), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.insertData(foreignTextNode.length, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.insertData(1, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(2, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(3, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(376, ""), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.insertData(0, ""), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.insertData(1, ""), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.insertData(foreignTextNode.length, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.insertData(1, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(2, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.insertData(3, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(376, "foo"), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.insertData(0, "foo"), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.insertData(1, "foo"), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.insertData(xmlTextNode.length, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.insertData(1, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(2, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(3, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(376, ""), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.insertData(0, ""), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.insertData(1, ""), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.insertData(xmlTextNode.length, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.insertData(1, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(2, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.insertData(3, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(376, "foo"), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.insertData(0, "foo"), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.insertData(1, "foo"), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.insertData(detachedTextNode.length, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.insertData(1, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(2, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(3, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(376, ""), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.insertData(0, ""), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.insertData(1, ""), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.insertData(detachedTextNode.length, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.insertData(1, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(2, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.insertData(3, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(376, "foo"), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.insertData(0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.insertData(1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.insertData(detachedForeignTextNode.length, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.insertData(1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(2, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(3, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(376, ""), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.insertData(0, ""), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.insertData(1, ""), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.insertData(detachedForeignTextNode.length, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.insertData(1, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(2, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.insertData(3, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(376, "foo"), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.insertData(0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.insertData(1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.insertData(detachedXmlTextNode.length, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.insertData(1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(2, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(3, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(376, ""), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.insertData(0, ""), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.insertData(1, ""), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.insertData(detachedXmlTextNode.length, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.insertData(1, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(2, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.insertData(3, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [comment.insertData(376, "foo"), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.insertData(0, "foo"), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.insertData(1, "foo"), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.insertData(comment.length, "foo"), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.insertData(1, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.insertData(2, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.insertData(3, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.insertData(376, ""), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.insertData(0, ""), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.insertData(1, ""), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.insertData(comment.length, ""), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.insertData(1, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.insertData(2, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.insertData(3, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(376, "foo"), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.insertData(0, "foo"), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.insertData(1, "foo"), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.insertData(foreignComment.length, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.insertData(1, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(2, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(3, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(376, ""), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.insertData(0, ""), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.insertData(1, ""), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.insertData(foreignComment.length, ""), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.insertData(1, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(2, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.insertData(3, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(376, "foo"), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.insertData(0, "foo"), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.insertData(1, "foo"), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.insertData(xmlComment.length, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.insertData(1, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(2, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(3, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(376, ""), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.insertData(0, ""), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.insertData(1, ""), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.insertData(xmlComment.length, ""), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.insertData(1, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(2, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.insertData(3, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(376, "foo"), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.insertData(0, "foo"), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.insertData(1, "foo"), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.insertData(detachedComment.length, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.insertData(1, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(2, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(3, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(376, ""), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.insertData(0, ""), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.insertData(1, ""), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.insertData(detachedComment.length, ""), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.insertData(1, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(2, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.insertData(3, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(376, "foo"), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.insertData(0, "foo"), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.insertData(1, "foo"), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.insertData(detachedForeignComment.length, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.insertData(1, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(2, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(3, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(376, ""), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.insertData(0, ""), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.insertData(1, ""), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.insertData(detachedForeignComment.length, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.insertData(1, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(2, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.insertData(3, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(376, "foo"), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.insertData(0, "foo"), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.insertData(1, "foo"), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.insertData(detachedXmlComment.length, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.insertData(1, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(2, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(3, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(376, ""), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.insertData(0, ""), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.insertData(1, ""), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.insertData(detachedXmlComment.length, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.insertData(1, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(2, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.insertData(3, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(2, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(3, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.insertData(1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.insertData(2, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.insertData(3, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-removeChild.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-removeChild.html.ini new file mode 100644 index 00000000000..375bc388a0e --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-removeChild.html.ini @@ -0,0 +1,32 @@ +[Range-mutations-removeChild.html] + type: testharness + [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 0)] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 0 to 1] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 0 to 2] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range on testDiv from 1 to 2] + expected: FAIL + + [paras[0\].parentNode.removeChild(paras[0\]), with selected range collapsed at (testDiv, 2)] + expected: FAIL + + [foreignDoc.documentElement.parentNode.removeChild(foreignDoc.documentElement), with selected range on foreignDoc from 0 to foreignDoc.childNodes.length] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-replaceChild.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-replaceChild.html.ini new file mode 100644 index 00000000000..46bed5e4565 --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-replaceChild.html.ini @@ -0,0 +1,92 @@ +[Range-mutations-replaceChild.html] + type: testharness + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on testDiv from 0 to 2] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range on testDiv from 1 to 2] + expected: FAIL + + [testDiv.replaceChild(paras[0\], paras[0\]), with selected range collapsed at (testDiv, 2)] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 0 to 2] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range collapsed at (testDiv, 1)] + expected: FAIL + + [paras[0\].replaceChild(paras[1\], paras[0\].firstChild), with selected range on testDiv from 1 to 2] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 0)] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 1] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range on foreignDoc from 0 to 2] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.documentElement), with selected range collapsed at (foreignDoc, 1)] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 0)] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 1] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range on foreignDoc from 0 to 2] + expected: FAIL + + [foreignDoc.replaceChild(detachedComment, foreignDoc.doctype), with selected range collapsed at (foreignDoc, 1)] + expected: FAIL + + [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(xmlTextNode, paras[0\].firstChild), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].replaceChild(paras[0\], paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(testDiv, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(document, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(foreignDoc, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].replaceChild(document.doctype, paras[0\].firstChild), with selected range on paras[0\] from 0 to 1] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-replaceData.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-replaceData.html.ini new file mode 100644 index 00000000000..8d565de4cef --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-replaceData.html.ini @@ -0,0 +1,1721 @@ +[Range-mutations-replaceData.html] + type: testharness + [paras[0\].firstChild.replaceData(376, 0, "foo"), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 0, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(376, 0, ""), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 0, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 0, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(376, 1, "foo"), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 1, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(376, 1, ""), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 1, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 1, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(376, 47, "foo"), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 47, "foo"), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(376, 47, ""), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(paras[0\].firstChild.length, 47, ""), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 47, ""), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 0, "foo"), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 0, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 0, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 0, ""), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 0, ""), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 0, ""), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 0, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 0, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 1, "foo"), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 1, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 1, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 1, ""), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 1, ""), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 1, ""), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 1, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 1, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 47, "foo"), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 47, "foo"), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 47, "foo"), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(376, 47, ""), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.replaceData(0, 47, ""), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 47, ""), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.replaceData(paras[1\].firstChild.length, 47, ""), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.replaceData(1, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(2, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.replaceData(3, 47, ""), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 0, "foo"), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 0, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 0, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 0, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 0, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 0, ""), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 0, ""), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 0, ""), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 0, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 0, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 0, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 0, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 1, "foo"), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 1, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 1, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 1, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 1, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 1, ""), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 1, ""), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 1, ""), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 1, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 1, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 1, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 1, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 47, "foo"), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 47, "foo"), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 47, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 47, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 47, "foo"), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(376, 47, ""), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.replaceData(0, 47, ""), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.replaceData(1, 47, ""), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.replaceData(foreignTextNode.length, 47, ""), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.replaceData(1, 47, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(2, 47, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.replaceData(3, 47, ""), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 0, "foo"), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 0, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 0, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 0, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 0, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 0, ""), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 0, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 0, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 0, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 0, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 1, "foo"), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 1, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 1, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 1, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 1, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 1, ""), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 1, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 1, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 1, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 1, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 47, "foo"), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 47, "foo"), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 47, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 47, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 47, "foo"), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(376, 47, ""), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.replaceData(xmlTextNode.length, 47, ""), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.replaceData(1, 47, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(2, 47, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.replaceData(3, 47, ""), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 0, "foo"), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 0, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 0, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 0, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 0, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 0, ""), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 0, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 0, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 0, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 0, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 1, "foo"), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 1, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 1, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 1, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 1, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 1, ""), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 1, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 1, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 1, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 1, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 47, "foo"), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 47, "foo"), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 47, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 47, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 47, "foo"), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(376, 47, ""), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.replaceData(detachedTextNode.length, 47, ""), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.replaceData(1, 47, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(2, 47, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.replaceData(3, 47, ""), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 0, "foo"), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 0, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 0, ""), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 0, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 0, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 1, "foo"), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 1, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 1, ""), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 1, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 1, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 47, "foo"), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, "foo"), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 47, "foo"), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(376, 47, ""), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.replaceData(detachedForeignTextNode.length, 47, ""), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.replaceData(1, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(2, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.replaceData(3, 47, ""), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 0, "foo"), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 0, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 0, ""), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 0, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 0, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 1, "foo"), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 1, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 1, ""), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 1, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 1, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 47, "foo"), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, "foo"), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 47, "foo"), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(376, 47, ""), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.replaceData(detachedXmlTextNode.length, 47, ""), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.replaceData(1, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(2, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.replaceData(3, 47, ""), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 0, "foo"), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 0, "foo"), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 0, "foo"), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 0, "foo"), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 0, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 0, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 0, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 0, ""), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 0, ""), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 0, ""), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 0, ""), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 0, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 0, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 0, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 1, "foo"), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 1, "foo"), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 1, "foo"), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 1, "foo"), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 1, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 1, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 1, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 1, ""), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 1, ""), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 1, ""), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 1, ""), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 1, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 1, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 1, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 47, "foo"), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 47, "foo"), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 47, "foo"), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 47, "foo"), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 47, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 47, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 47, "foo"), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(376, 47, ""), with selected range on comment from 0 to 1] + expected: FAIL + + [comment.replaceData(0, 47, ""), with selected range collapsed at (comment, 0)] + expected: FAIL + + [comment.replaceData(1, 47, ""), with selected range collapsed at (comment, 1)] + expected: FAIL + + [comment.replaceData(comment.length, 47, ""), with selected range collapsed at (comment, comment.length)] + expected: FAIL + + [comment.replaceData(1, 47, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(2, 47, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [comment.replaceData(3, 47, ""), with selected range on comment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 0, "foo"), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 0, "foo"), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 0, "foo"), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 0, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 0, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 0, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 0, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 0, ""), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 0, ""), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 0, ""), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 0, ""), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 0, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 0, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 0, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 1, "foo"), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 1, "foo"), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 1, "foo"), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 1, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 1, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 1, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 1, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 1, ""), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 1, ""), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 1, ""), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 1, ""), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 1, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 1, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 1, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 47, "foo"), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 47, "foo"), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 47, "foo"), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 47, "foo"), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 47, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 47, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 47, "foo"), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(376, 47, ""), with selected range on foreignComment from 0 to 1] + expected: FAIL + + [foreignComment.replaceData(0, 47, ""), with selected range collapsed at (foreignComment, 0)] + expected: FAIL + + [foreignComment.replaceData(1, 47, ""), with selected range collapsed at (foreignComment, 1)] + expected: FAIL + + [foreignComment.replaceData(foreignComment.length, 47, ""), with selected range collapsed at (foreignComment, foreignComment.length)] + expected: FAIL + + [foreignComment.replaceData(1, 47, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(2, 47, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [foreignComment.replaceData(3, 47, ""), with selected range on foreignComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 0, "foo"), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 0, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 0, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 0, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 0, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 0, ""), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 0, ""), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 0, ""), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 0, ""), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 0, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 0, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 0, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 1, "foo"), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 1, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 1, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 1, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 1, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 1, ""), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 1, ""), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 1, ""), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 1, ""), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 1, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 1, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 1, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 47, "foo"), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 47, "foo"), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 47, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 47, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 47, "foo"), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(376, 47, ""), with selected range on xmlComment from 0 to 1] + expected: FAIL + + [xmlComment.replaceData(0, 47, ""), with selected range collapsed at (xmlComment, 0)] + expected: FAIL + + [xmlComment.replaceData(1, 47, ""), with selected range collapsed at (xmlComment, 1)] + expected: FAIL + + [xmlComment.replaceData(xmlComment.length, 47, ""), with selected range collapsed at (xmlComment, xmlComment.length)] + expected: FAIL + + [xmlComment.replaceData(1, 47, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(2, 47, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [xmlComment.replaceData(3, 47, ""), with selected range on xmlComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 0, "foo"), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 0, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 0, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 0, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 0, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 0, ""), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 0, ""), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 0, ""), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 0, ""), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 0, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 0, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 0, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 1, "foo"), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 1, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 1, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 1, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 1, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 1, ""), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 1, ""), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 1, ""), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 1, ""), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 1, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 1, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 1, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 47, "foo"), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 47, "foo"), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 47, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 47, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 47, "foo"), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(376, 47, ""), with selected range on detachedComment from 0 to 1] + expected: FAIL + + [detachedComment.replaceData(0, 47, ""), with selected range collapsed at (detachedComment, 0)] + expected: FAIL + + [detachedComment.replaceData(1, 47, ""), with selected range collapsed at (detachedComment, 1)] + expected: FAIL + + [detachedComment.replaceData(detachedComment.length, 47, ""), with selected range collapsed at (detachedComment, detachedComment.length)] + expected: FAIL + + [detachedComment.replaceData(1, 47, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(2, 47, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedComment.replaceData(3, 47, ""), with selected range on detachedComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 0, "foo"), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 0, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 0, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 0, ""), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 0, ""), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 0, ""), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 0, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 0, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 0, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 0, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 1, "foo"), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 1, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 1, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 1, ""), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 1, ""), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 1, ""), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 1, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 1, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 1, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 1, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 47, "foo"), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 47, "foo"), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 47, "foo"), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(376, 47, ""), with selected range on detachedForeignComment from 0 to 1] + expected: FAIL + + [detachedForeignComment.replaceData(0, 47, ""), with selected range collapsed at (detachedForeignComment, 0)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 47, ""), with selected range collapsed at (detachedForeignComment, 1)] + expected: FAIL + + [detachedForeignComment.replaceData(detachedForeignComment.length, 47, ""), with selected range collapsed at (detachedForeignComment, detachedForeignComment.length)] + expected: FAIL + + [detachedForeignComment.replaceData(1, 47, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(2, 47, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedForeignComment.replaceData(3, 47, ""), with selected range on detachedForeignComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 0, "foo"), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 0, "foo"), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 0, "foo"), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 0, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 0, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 0, ""), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 0, ""), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 0, ""), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 0, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 0, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 0, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 0, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 1, "foo"), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 1, "foo"), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 1, "foo"), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 1, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 1, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 1, ""), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 1, ""), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 1, ""), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 1, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 1, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 1, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 1, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 47, "foo"), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 47, "foo"), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 47, "foo"), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 47, "foo"), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 47, "foo"), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(376, 47, ""), with selected range on detachedXmlComment from 0 to 1] + expected: FAIL + + [detachedXmlComment.replaceData(0, 47, ""), with selected range collapsed at (detachedXmlComment, 0)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 47, ""), with selected range collapsed at (detachedXmlComment, 1)] + expected: FAIL + + [detachedXmlComment.replaceData(detachedXmlComment.length, 47, ""), with selected range collapsed at (detachedXmlComment, detachedXmlComment.length)] + expected: FAIL + + [detachedXmlComment.replaceData(1, 47, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(2, 47, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [detachedXmlComment.replaceData(3, 47, ""), with selected range on detachedXmlComment from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 0, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 1, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.replaceData(1, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(2, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.replaceData(3, 47, "foo"), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + diff --git a/tests/wpt/metadata/dom/ranges/Range-mutations-splitText.html.ini b/tests/wpt/metadata/dom/ranges/Range-mutations-splitText.html.ini new file mode 100644 index 00000000000..efb3dd56e35 --- /dev/null +++ b/tests/wpt/metadata/dom/ranges/Range-mutations-splitText.html.ini @@ -0,0 +1,176 @@ +[Range-mutations-splitText.html] + type: testharness + [paras[0\].firstChild.splitText(376), with selected range on paras[0\].firstChild from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.splitText(0), with selected range collapsed at (paras[0\].firstChild, 0)] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\].firstChild, 1)] + expected: FAIL + + [paras[0\].firstChild.splitText(paras[0\].firstChild.length), with selected range collapsed at (paras[0\].firstChild, paras[0\].firstChild.length)] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.splitText(2), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.splitText(3), with selected range on paras[0\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.splitText(376), with selected range on paras[1\].firstChild from 0 to 1] + expected: FAIL + + [paras[1\].firstChild.splitText(0), with selected range collapsed at (paras[1\].firstChild, 0)] + expected: FAIL + + [paras[1\].firstChild.splitText(1), with selected range collapsed at (paras[1\].firstChild, 1)] + expected: FAIL + + [paras[1\].firstChild.splitText(paras[1\].firstChild.length), with selected range collapsed at (paras[1\].firstChild, paras[1\].firstChild.length)] + expected: FAIL + + [paras[1\].firstChild.splitText(1), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.splitText(2), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [paras[1\].firstChild.splitText(3), with selected range on paras[1\].firstChild from 1 to 3] + expected: FAIL + + [foreignTextNode.splitText(376), with selected range on foreignTextNode from 0 to 1] + expected: FAIL + + [foreignTextNode.splitText(0), with selected range collapsed at (foreignTextNode, 0)] + expected: FAIL + + [foreignTextNode.splitText(1), with selected range collapsed at (foreignTextNode, 1)] + expected: FAIL + + [foreignTextNode.splitText(foreignTextNode.length), with selected range collapsed at (foreignTextNode, foreignTextNode.length)] + expected: FAIL + + [foreignTextNode.splitText(1), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.splitText(2), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [foreignTextNode.splitText(3), with selected range on foreignTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.splitText(376), with selected range on xmlTextNode from 0 to 1] + expected: FAIL + + [xmlTextNode.splitText(0), with selected range collapsed at (xmlTextNode, 0)] + expected: FAIL + + [xmlTextNode.splitText(1), with selected range collapsed at (xmlTextNode, 1)] + expected: FAIL + + [xmlTextNode.splitText(xmlTextNode.length), with selected range collapsed at (xmlTextNode, xmlTextNode.length)] + expected: FAIL + + [xmlTextNode.splitText(1), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.splitText(2), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [xmlTextNode.splitText(3), with selected range on xmlTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.splitText(376), with selected range on detachedTextNode from 0 to 1] + expected: FAIL + + [detachedTextNode.splitText(0), with selected range collapsed at (detachedTextNode, 0)] + expected: FAIL + + [detachedTextNode.splitText(1), with selected range collapsed at (detachedTextNode, 1)] + expected: FAIL + + [detachedTextNode.splitText(detachedTextNode.length), with selected range collapsed at (detachedTextNode, detachedTextNode.length)] + expected: FAIL + + [detachedTextNode.splitText(1), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.splitText(2), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedTextNode.splitText(3), with selected range on detachedTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.splitText(376), with selected range on detachedForeignTextNode from 0 to 1] + expected: FAIL + + [detachedForeignTextNode.splitText(0), with selected range collapsed at (detachedForeignTextNode, 0)] + expected: FAIL + + [detachedForeignTextNode.splitText(1), with selected range collapsed at (detachedForeignTextNode, 1)] + expected: FAIL + + [detachedForeignTextNode.splitText(detachedForeignTextNode.length), with selected range collapsed at (detachedForeignTextNode, detachedForeignTextNode.length)] + expected: FAIL + + [detachedForeignTextNode.splitText(1), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.splitText(2), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedForeignTextNode.splitText(3), with selected range on detachedForeignTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.splitText(376), with selected range on detachedXmlTextNode from 0 to 1] + expected: FAIL + + [detachedXmlTextNode.splitText(0), with selected range collapsed at (detachedXmlTextNode, 0)] + expected: FAIL + + [detachedXmlTextNode.splitText(1), with selected range collapsed at (detachedXmlTextNode, 1)] + expected: FAIL + + [detachedXmlTextNode.splitText(detachedXmlTextNode.length), with selected range collapsed at (detachedXmlTextNode, detachedXmlTextNode.length)] + expected: FAIL + + [detachedXmlTextNode.splitText(1), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.splitText(2), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [detachedXmlTextNode.splitText(3), with selected range on detachedXmlTextNode from 1 to 3] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\], 0)] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range on paras[0\] from 0 to 1] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range collapsed at (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.splitText(2), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.splitText(3), with selected range from (paras[0\].firstChild, 1) to (paras[0\], 1)] + expected: FAIL + + [paras[0\].firstChild.splitText(1), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.splitText(2), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + + [paras[0\].firstChild.splitText(3), with selected range from (paras[0\], 0) to (paras[0\].firstChild, 3)] + expected: FAIL + diff --git a/tests/wpt/metadata/domparsing/createContextualFragment.html.ini b/tests/wpt/metadata/domparsing/createContextualFragment.html.ini index 7e563a9b869..7602299fb12 100644 --- a/tests/wpt/metadata/domparsing/createContextualFragment.html.ini +++ b/tests/wpt/metadata/domparsing/createContextualFragment.html.ini @@ -9,3 +9,6 @@ [ in a different namespace shouldn't be special] expected: FAIL + [SVG namespace shouldn't be special] + expected: FAIL + diff --git a/tests/wpt/metadata/domparsing/innerhtml-02.html.ini b/tests/wpt/metadata/domparsing/innerhtml-02.html.ini deleted file mode 100644 index 6528bc716b8..00000000000 --- a/tests/wpt/metadata/domparsing/innerhtml-02.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[innerhtml-02.html] - type: testharness - [Expected innerHTML: "<" for xmp.] - expected: FAIL - diff --git a/tests/wpt/metadata/encoding/textdecoder-fatal-single-byte.html.ini b/tests/wpt/metadata/encoding/textdecoder-fatal-single-byte.html.ini new file mode 100644 index 00000000000..34e966e4e73 --- /dev/null +++ b/tests/wpt/metadata/encoding/textdecoder-fatal-single-byte.html.ini @@ -0,0 +1,5 @@ +[textdecoder-fatal-single-byte.html] + type: testharness + [Not throw: windows-1255 has a pointer 202] + expected: FAIL + diff --git a/tests/wpt/metadata/eventsource/eventsource-onmessage-realm.htm.ini b/tests/wpt/metadata/eventsource/eventsource-onmessage-realm.htm.ini new file mode 100644 index 00000000000..852a78fd8ce --- /dev/null +++ b/tests/wpt/metadata/eventsource/eventsource-onmessage-realm.htm.ini @@ -0,0 +1,5 @@ +[eventsource-onmessage-realm.htm] + type: testharness + [the MessageEvent must be created in the Realm of the EventSource] + expected: FAIL + diff --git a/tests/wpt/metadata/eventsource/interfaces.html.ini b/tests/wpt/metadata/eventsource/interfaces.html.ini index 99706ee7d67..66e64261789 100644 --- a/tests/wpt/metadata/eventsource/interfaces.html.ini +++ b/tests/wpt/metadata/eventsource/interfaces.html.ini @@ -8,3 +8,4 @@ [Stringification of new EventSource("http://foo")] expected: FAIL + diff --git a/tests/wpt/metadata/eventsource/request-cache-control.htm.ini b/tests/wpt/metadata/eventsource/request-cache-control.htm.ini index 9d7703c7521..5e79e2360a7 100644 --- a/tests/wpt/metadata/eventsource/request-cache-control.htm.ini +++ b/tests/wpt/metadata/eventsource/request-cache-control.htm.ini @@ -6,3 +6,4 @@ [EventSource: Cache-Control 1] expected: TIMEOUT + diff --git a/tests/wpt/metadata/fetch/api/basic/conditional-get.html.ini b/tests/wpt/metadata/fetch/api/basic/conditional-get.html.ini new file mode 100644 index 00000000000..ea1384f3fab --- /dev/null +++ b/tests/wpt/metadata/fetch/api/basic/conditional-get.html.ini @@ -0,0 +1,5 @@ +[conditional-get.html] + type: testharness + [Testing conditional GET with ETags] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/error-after-response.html.ini b/tests/wpt/metadata/fetch/api/basic/error-after-response.html.ini new file mode 100644 index 00000000000..3bde546c958 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/basic/error-after-response.html.ini @@ -0,0 +1,8 @@ +[error-after-response.html] + type: testharness + [Response reader read() promise should reject after a network error happening after resolving fetch promise] + expected: FAIL + + [Response reader closed promise should reject after a network error happening after resolving fetch promise] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/integrity-sharedworker.html.ini b/tests/wpt/metadata/fetch/api/basic/integrity-sharedworker.html.ini new file mode 100644 index 00000000000..674933e884c --- /dev/null +++ b/tests/wpt/metadata/fetch/api/basic/integrity-sharedworker.html.ini @@ -0,0 +1,3 @@ +[integrity-sharedworker.html] + type: testharness + expected: ERROR diff --git a/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini index d301daf8a17..4c228581bae 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-headers-worker.html.ini @@ -51,3 +51,6 @@ [Fetch with Chicken with body] expected: FAIL + [Fetch with POST with URLSearchParams body] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini b/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini index 62c74c222f0..4361ade4d59 100644 --- a/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/request-headers.html.ini @@ -51,3 +51,6 @@ [Fetch with Chicken with body] expected: FAIL + [Fetch with POST with URLSearchParams body] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/request-upload-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/request-upload-worker.html.ini new file mode 100644 index 00000000000..9ce17b3eafe --- /dev/null +++ b/tests/wpt/metadata/fetch/api/basic/request-upload-worker.html.ini @@ -0,0 +1,20 @@ +[request-upload-worker.html] + type: testharness + [Fetch with POST with ArrayBuffer body] + expected: FAIL + + [Fetch with POST with Uint8Array body] + expected: FAIL + + [Fetch with POST with Int8Array body] + expected: FAIL + + [Fetch with POST with Float32Array body] + expected: FAIL + + [Fetch with POST with Float64Array body] + expected: FAIL + + [Fetch with POST with DataView body] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/request-upload.html.ini b/tests/wpt/metadata/fetch/api/basic/request-upload.html.ini new file mode 100644 index 00000000000..31957e3a0c9 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/basic/request-upload.html.ini @@ -0,0 +1,20 @@ +[request-upload.html] + type: testharness + [Fetch with POST with ArrayBuffer body] + expected: FAIL + + [Fetch with POST with Uint8Array body] + expected: FAIL + + [Fetch with POST with Int8Array body] + expected: FAIL + + [Fetch with POST with Float32Array body] + expected: FAIL + + [Fetch with POST with Float64Array body] + expected: FAIL + + [Fetch with POST with DataView body] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini index 07bdf4caaaa..d025cd9bfee 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-data-worker.html.ini @@ -15,3 +15,9 @@ [Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...\] is OK] expected: FAIL + [Fetching [POST\] data:,response%27s%20body is OK] + expected: FAIL + + [Fetching [HEAD\] data:,response%27s%20body is OK] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini b/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini index 2e78bab0e48..f69b8bea324 100644 --- a/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/scheme-data.html.ini @@ -15,3 +15,9 @@ [Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...\] is OK] expected: FAIL + [Fetching [POST\] data:,response%27s%20body is OK] + expected: FAIL + + [Fetching [HEAD\] data:,response%27s%20body is OK] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini b/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini index 1bdc4f3f39d..890e7cd7f3c 100644 --- a/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini +++ b/tests/wpt/metadata/fetch/api/basic/text-utf8.html.ini @@ -36,3 +36,33 @@ [UTF-16 without BOM decoded as UTF-8 with Response.text()] expected: FAIL + [UTF-8 with BOM (Response object)] + expected: FAIL + + [UTF-8 with BOM (Request object)] + expected: FAIL + + [UTF-8 without BOM (Response object)] + expected: FAIL + + [UTF-8 without BOM (Request object)] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 (Response object)] + expected: FAIL + + [UTF-16BE with BOM decoded as UTF-8 (Request object)] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 (Response object)] + expected: FAIL + + [UTF-16LE with BOM decoded as UTF-8 (Request object)] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 (Response object)] + expected: FAIL + + [UTF-16 without BOM decoded as UTF-8 (Request object)] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini index b920d985715..ebbfb60928d 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-cookies-worker.html.ini @@ -8,3 +8,4 @@ [Same-origin mode: cookies are discarded in cors request] expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini index be7b5c4ef84..a33b5f832b1 100644 --- a/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini +++ b/tests/wpt/metadata/fetch/api/cors/cors-cookies.html.ini @@ -8,3 +8,4 @@ [Same-origin mode: cookies are discarded in cors request] expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini new file mode 100644 index 00000000000..a067c067a2a --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect-worker.html.ini @@ -0,0 +1,32 @@ +[cors-preflight-redirect-worker.html] + type: testharness + [Redirection 301 on preflight failed] + expected: FAIL + + [Redirection 301 after preflight failed] + expected: FAIL + + [Redirection 302 on preflight failed] + expected: FAIL + + [Redirection 302 after preflight failed] + expected: FAIL + + [Redirection 303 on preflight failed] + expected: FAIL + + [Redirection 303 after preflight failed] + expected: FAIL + + [Redirection 307 on preflight failed] + expected: FAIL + + [Redirection 307 after preflight failed] + expected: FAIL + + [Redirection 308 on preflight failed] + expected: FAIL + + [Redirection 308 after preflight failed] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini new file mode 100644 index 00000000000..e5b48918e8e --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-redirect.html.ini @@ -0,0 +1,32 @@ +[cors-preflight-redirect.html] + type: testharness + [Redirection 301 on preflight failed] + expected: FAIL + + [Redirection 301 after preflight failed] + expected: FAIL + + [Redirection 302 on preflight failed] + expected: FAIL + + [Redirection 302 after preflight failed] + expected: FAIL + + [Redirection 303 on preflight failed] + expected: FAIL + + [Redirection 303 after preflight failed] + expected: FAIL + + [Redirection 307 on preflight failed] + expected: FAIL + + [Redirection 307 after preflight failed] + expected: FAIL + + [Redirection 308 on preflight failed] + expected: FAIL + + [Redirection 308 after preflight failed] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini new file mode 100644 index 00000000000..9f9d2eab795 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status-worker.html.ini @@ -0,0 +1,83 @@ +[cors-preflight-status-worker.html] + type: testharness + [Preflight answered with status 200] + expected: FAIL + + [Preflight answered with status 201] + expected: FAIL + + [Preflight answered with status 202] + expected: FAIL + + [Preflight answered with status 203] + expected: FAIL + + [Preflight answered with status 204] + expected: FAIL + + [Preflight answered with status 205] + expected: FAIL + + [Preflight answered with status 206] + expected: FAIL + + [Preflight answered with status 300] + expected: FAIL + + [Preflight answered with status 301] + expected: FAIL + + [Preflight answered with status 302] + expected: FAIL + + [Preflight answered with status 303] + expected: FAIL + + [Preflight answered with status 304] + expected: FAIL + + [Preflight answered with status 305] + expected: FAIL + + [Preflight answered with status 306] + expected: FAIL + + [Preflight answered with status 307] + expected: FAIL + + [Preflight answered with status 308] + expected: FAIL + + [Preflight answered with status 400] + expected: FAIL + + [Preflight answered with status 401] + expected: FAIL + + [Preflight answered with status 402] + expected: FAIL + + [Preflight answered with status 403] + expected: FAIL + + [Preflight answered with status 404] + expected: FAIL + + [Preflight answered with status 405] + expected: FAIL + + [Preflight answered with status 501] + expected: FAIL + + [Preflight answered with status 502] + expected: FAIL + + [Preflight answered with status 503] + expected: FAIL + + [Preflight answered with status 504] + expected: FAIL + + [Preflight answered with status 505] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini new file mode 100644 index 00000000000..12bb9ecf2e1 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-status.html.ini @@ -0,0 +1,83 @@ +[cors-preflight-status.html] + type: testharness + [Preflight answered with status 200] + expected: FAIL + + [Preflight answered with status 201] + expected: FAIL + + [Preflight answered with status 202] + expected: FAIL + + [Preflight answered with status 203] + expected: FAIL + + [Preflight answered with status 204] + expected: FAIL + + [Preflight answered with status 205] + expected: FAIL + + [Preflight answered with status 206] + expected: FAIL + + [Preflight answered with status 300] + expected: FAIL + + [Preflight answered with status 301] + expected: FAIL + + [Preflight answered with status 302] + expected: FAIL + + [Preflight answered with status 303] + expected: FAIL + + [Preflight answered with status 304] + expected: FAIL + + [Preflight answered with status 305] + expected: FAIL + + [Preflight answered with status 306] + expected: FAIL + + [Preflight answered with status 307] + expected: FAIL + + [Preflight answered with status 308] + expected: FAIL + + [Preflight answered with status 400] + expected: FAIL + + [Preflight answered with status 401] + expected: FAIL + + [Preflight answered with status 402] + expected: FAIL + + [Preflight answered with status 403] + expected: FAIL + + [Preflight answered with status 404] + expected: FAIL + + [Preflight answered with status 405] + expected: FAIL + + [Preflight answered with status 501] + expected: FAIL + + [Preflight answered with status 502] + expected: FAIL + + [Preflight answered with status 503] + expected: FAIL + + [Preflight answered with status 504] + expected: FAIL + + [Preflight answered with status 505] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini new file mode 100644 index 00000000000..ced8e7f37ab --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect-worker.html.ini @@ -0,0 +1,63 @@ +[cors-redirect-worker.html] + type: testharness + expected: TIMEOUT + [Redirect 301: cors to same cors] + expected: FAIL + + [Redirect 301: cors to another cors] + expected: FAIL + + [Redirect 301: same origin to cors] + expected: FAIL + + [Redirect 301: cors to same origin] + expected: FAIL + + [Redirect 302: cors to same cors] + expected: FAIL + + [Redirect 302: cors to another cors] + expected: FAIL + + [Redirect 302: same origin to cors] + expected: FAIL + + [Redirect 302: cors to same origin] + expected: FAIL + + [Redirect 303: cors to same cors] + expected: FAIL + + [Redirect 303: cors to another cors] + expected: FAIL + + [Redirect 303: same origin to cors] + expected: FAIL + + [Redirect 303: cors to same origin] + expected: FAIL + + [Redirect 307: cors to same cors] + expected: FAIL + + [Redirect 307: cors to another cors] + expected: FAIL + + [Redirect 307: same origin to cors] + expected: TIMEOUT + + [Redirect 307: cors to same origin] + expected: NOTRUN + + [Redirect 308: cors to same cors] + expected: NOTRUN + + [Redirect 308: cors to another cors] + expected: NOTRUN + + [Redirect 308: same origin to cors] + expected: NOTRUN + + [Redirect 308: cors to same origin] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini b/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini new file mode 100644 index 00000000000..e3de8b28925 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-redirect.html.ini @@ -0,0 +1,63 @@ +[cors-redirect.html] + type: testharness + expected: TIMEOUT + [Redirect 301: cors to same cors] + expected: FAIL + + [Redirect 301: cors to another cors] + expected: FAIL + + [Redirect 301: same origin to cors] + expected: FAIL + + [Redirect 301: cors to same origin] + expected: FAIL + + [Redirect 302: cors to same cors] + expected: FAIL + + [Redirect 302: cors to another cors] + expected: FAIL + + [Redirect 302: same origin to cors] + expected: FAIL + + [Redirect 302: cors to same origin] + expected: FAIL + + [Redirect 303: cors to same cors] + expected: FAIL + + [Redirect 303: cors to another cors] + expected: FAIL + + [Redirect 303: same origin to cors] + expected: FAIL + + [Redirect 303: cors to same origin] + expected: FAIL + + [Redirect 307: cors to same cors] + expected: FAIL + + [Redirect 307: cors to another cors] + expected: FAIL + + [Redirect 307: same origin to cors] + expected: TIMEOUT + + [Redirect 307: cors to same origin] + expected: NOTRUN + + [Redirect 308: cors to same cors] + expected: NOTRUN + + [Redirect 308: cors to another cors] + expected: NOTRUN + + [Redirect 308: same origin to cors] + expected: NOTRUN + + [Redirect 308: cors to same origin] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini new file mode 100644 index 00000000000..8f5fe17b1b8 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-count-worker.html.ini @@ -0,0 +1,27 @@ +[redirect-count-worker.html] + type: testharness + expected: TIMEOUT + [Redirect 302 20 times] + expected: TIMEOUT + + [Redirect 302 21 times] + expected: NOTRUN + + [Redirect 303 20 times] + expected: NOTRUN + + [Redirect 303 21 times] + expected: NOTRUN + + [Redirect 307 20 times] + expected: NOTRUN + + [Redirect 307 21 times] + expected: NOTRUN + + [Redirect 308 20 times] + expected: NOTRUN + + [Redirect 308 21 times] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini new file mode 100644 index 00000000000..af1fb8a4e4d --- /dev/null +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-count.html.ini @@ -0,0 +1,27 @@ +[redirect-count.html] + type: testharness + expected: TIMEOUT + [Redirect 302 20 times] + expected: TIMEOUT + + [Redirect 302 21 times] + expected: NOTRUN + + [Redirect 303 20 times] + expected: NOTRUN + + [Redirect 303 21 times] + expected: NOTRUN + + [Redirect 307 20 times] + expected: NOTRUN + + [Redirect 307 21 times] + expected: NOTRUN + + [Redirect 308 20 times] + expected: NOTRUN + + [Redirect 308 21 times] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini index 4dbf5882893..a84964c3296 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-origin-worker.html.ini @@ -1,5 +1,6 @@ [redirect-origin-worker.html] type: testharness + expected: TIMEOUT [Same origin to other origin redirection 301] expected: FAIL @@ -37,11 +38,14 @@ expected: FAIL [Same origin to other origin redirection 308] - expected: FAIL + expected: NOTRUN [Other origin to other origin redirection 308] - expected: FAIL + expected: NOTRUN [Other origin to same origin redirection 308] - expected: FAIL + expected: NOTRUN + + [Same origin to same origin redirection 308] + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini index f9d4621134c..315c07cfc3e 100644 --- a/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini +++ b/tests/wpt/metadata/fetch/api/redirect/redirect-origin.html.ini @@ -1,5 +1,6 @@ [redirect-origin.html] type: testharness + expected: TIMEOUT [Same origin to other origin redirection 301] expected: FAIL @@ -37,11 +38,14 @@ expected: FAIL [Same origin to other origin redirection 308] - expected: FAIL + expected: NOTRUN [Other origin to other origin redirection 308] - expected: FAIL + expected: NOTRUN [Other origin to same origin redirection 308] - expected: FAIL + expected: NOTRUN + + [Same origin to same origin redirection 308] + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/api/request/multi-globals/url-parsing.html.ini b/tests/wpt/metadata/fetch/api/request/multi-globals/url-parsing.html.ini new file mode 100644 index 00000000000..a6e5c4f239b --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/multi-globals/url-parsing.html.ini @@ -0,0 +1,5 @@ +[url-parsing.html] + type: testharness + [should parse the URL relative to the current settings object] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache-default-conditional.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache-default-conditional.html.ini new file mode 100644 index 00000000000..00e5f87efd7 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/request-cache-default-conditional.html.ini @@ -0,0 +1,39 @@ +[request-cache-default-conditional.html] + type: testharness + expected: TIMEOUT + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with date and stale response] + expected: FAIL + + [RequestCache "default" mode with an If-Modified-Since header is treated similarly to "no-store" with date and fresh response] + expected: FAIL + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with Etag and fresh response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Unmodified-Since header is treated similarly to "no-store" with date and fresh response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with Etag and stale response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with date and stale response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with Etag and fresh response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Match header is treated similarly to "no-store" with date and fresh response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and stale response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with date and stale response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with Etag and fresh response] + expected: NOTRUN + + [RequestCache "default" mode with an If-Range header is treated similarly to "no-store" with date and fresh response] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache-default.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache-default.html.ini new file mode 100644 index 00000000000..31a3ebe54d0 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/request-cache-default.html.ini @@ -0,0 +1,8 @@ +[request-cache-default.html] + type: testharness + [RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response] + expected: FAIL + + [RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with date and fresh response] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache-force-cache.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache-force-cache.html.ini new file mode 100644 index 00000000000..d11e27f0612 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/request-cache-force-cache.html.ini @@ -0,0 +1,20 @@ +[request-cache-force-cache.html] + type: testharness + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with date and stale response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with date and fresh response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and fresh response] + expected: FAIL + + [RequestCache "force-cache" stores the response in the cache if it goes to the network with date and fresh response] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache-only-if-cached.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache-only-if-cached.html.ini new file mode 100644 index 00000000000..3814a57258e --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/request-cache-only-if-cached.html.ini @@ -0,0 +1,44 @@ +[request-cache-only-if-cached.html] + type: testharness + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for stale responses with date and stale response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and avoids revalidation for fresh responses with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") uses cached same-origin redirects to same-origin content with date and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with Etag and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with date and fresh response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with Etag and stale response] + expected: FAIL + + [RequestCache "only-if-cached" (with "same-origin") does not follow redirects across origins and rejects with date and stale response] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache-reload.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache-reload.html.ini new file mode 100644 index 00000000000..3b0ddb59c6e --- /dev/null +++ b/tests/wpt/metadata/fetch/api/request/request-cache-reload.html.ini @@ -0,0 +1,14 @@ +[request-cache-reload.html] + type: testharness + [RequestCache "reload" mode does store the response in the cache with Etag and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache with date and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and fresh response] + expected: FAIL + + [RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with date and fresh response] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-cache.html.ini b/tests/wpt/metadata/fetch/api/request/request-cache.html.ini deleted file mode 100644 index d80d4fe955a..00000000000 --- a/tests/wpt/metadata/fetch/api/request/request-cache.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[request-cache.html] - type: testharness - disabled: https://github.com/servo/servo/issues/13458 - expected: CRASH diff --git a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini index 848a39ee5a6..54bdc54e18e 100644 --- a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini @@ -21,3 +21,9 @@ [Consume request's body as json] expected: FAIL + [Consume empty FormData request body as text] + expected: FAIL + + [Consume empty ArrayBuffer request body as text] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/response/multi-globals/url-parsing.html.ini b/tests/wpt/metadata/fetch/api/response/multi-globals/url-parsing.html.ini new file mode 100644 index 00000000000..ebf5ccc16d2 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/response/multi-globals/url-parsing.html.ini @@ -0,0 +1,5 @@ +[url-parsing.html] + type: testharness + [should parse the redirect Location URL relative to the current settings object] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/response/response-clone.html.ini b/tests/wpt/metadata/fetch/api/response/response-clone.html.ini index dc3c577e415..b7db9ddf394 100644 --- a/tests/wpt/metadata/fetch/api/response/response-clone.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-clone.html.ini @@ -12,3 +12,36 @@ [Cancelling stream should not affect cloned one] expected: FAIL + [Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk)] + expected: FAIL + + [Check response clone use structureClone for teed ReadableStreams (DataViewchunk)] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini index b7af3cd4719..3b135d01fb5 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume-empty.html.ini @@ -28,3 +28,12 @@ [Consume empty text response body as text] expected: NOTRUN + [Consume empty URLSearchParams response body as text] + expected: NOTRUN + + [Consume empty FormData response body as text] + expected: NOTRUN + + [Consume empty ArrayBuffer response body as text] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini index a3bc4c15285..ccf31287f00 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume-stream.html.ini @@ -24,3 +24,6 @@ [Getting a redirect Response stream] expected: FAIL + [Read URLSearchParams response's body as readableStream] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/response/response-consume.html.ini b/tests/wpt/metadata/fetch/api/response/response-consume.html.ini index a0956648b51..4235ac35fee 100644 --- a/tests/wpt/metadata/fetch/api/response/response-consume.html.ini +++ b/tests/wpt/metadata/fetch/api/response/response-consume.html.ini @@ -24,3 +24,60 @@ [Consume fetched response's body as arrayBuffer] expected: FAIL + [Consume response's body: from text to arrayBuffer] + expected: FAIL + + [Consume response's body: from text with correct multipart type to formData] + expected: FAIL + + [Consume response's body: from blob to arrayBuffer] + expected: FAIL + + [Consume response's body: from blob with correct multipart type to formData] + expected: FAIL + + [Consume response's body: from FormData to formData] + expected: FAIL + + [Consume response's body: from FormData to blob] + expected: FAIL + + [Consume response's body: from FormData to text] + expected: FAIL + + [Consume response's body: from FormData to arrayBuffer] + expected: FAIL + + [Consume response's body: from URLSearchParams to arrayBuffer] + expected: FAIL + + [Consume response's body: from stream to blob] + expected: FAIL + + [Consume response's body: from stream to text] + expected: FAIL + + [Consume response's body: from stream to arrayBuffer] + expected: FAIL + + [Consume response's body: from stream to json] + expected: FAIL + + [Consume response's body: from stream with correct multipart type to formData] + expected: FAIL + + [Consume response's body: from stream without correct multipart type to formData (error case)] + expected: FAIL + + [Consume response's body: from stream with correct urlencoded type to formData] + expected: FAIL + + [Consume response's body: from stream without correct urlencoded type to formData (error case)] + expected: FAIL + + [Consume response's body: from fetch to blob] + expected: FAIL + + [Consume response's body: from fetch to arrayBuffer] + expected: FAIL + diff --git a/tests/wpt/metadata/hr-time/basic.worker.js.ini b/tests/wpt/metadata/hr-time/basic.worker.js.ini index 8d2e2c67e2d..667b05337d8 100644 --- a/tests/wpt/metadata/hr-time/basic.worker.js.ini +++ b/tests/wpt/metadata/hr-time/basic.worker.js.ini @@ -1,4 +1,4 @@ -[basic.worker] +[basic.worker.html] type: testharness [WorkerGlobalScope.performance.now() is a function] expected: FAIL diff --git a/tests/wpt/metadata/hr-time/idlharness.html.ini b/tests/wpt/metadata/hr-time/idlharness.html.ini new file mode 100644 index 00000000000..1e38b08793e --- /dev/null +++ b/tests/wpt/metadata/hr-time/idlharness.html.ini @@ -0,0 +1,14 @@ +[idlharness.html] + type: testharness + [Window interface: attribute performance] + expected: FAIL + + [Performance interface: existence and properties of interface object] + expected: FAIL + + [Performance interface: existence and properties of interface prototype object] + expected: FAIL + + [Stringification of window.performance] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_to_uri.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_to_uri.html.ini new file mode 100644 index 00000000000..5b21d4db949 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/history_go_to_uri.html.ini @@ -0,0 +1,5 @@ +[history_go_to_uri.html] + type: testharness + [history.go() negative tests] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html.ini deleted file mode 100644 index 7758856bbd4..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[traverse_the_session_history_unload_prompt_1.html] - type: testharness - [Traversing the history, unload event is fired on doucment] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-prototype-setting.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-prototype-setting.html.ini new file mode 100644 index 00000000000..d40ff38ca39 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-prototype-setting.html.ini @@ -0,0 +1,5 @@ +[location-prototype-setting.html] + type: testharness + [[[SetPrototypeOf\]\] on a location object should return false] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini index a81d6814682..2cf94f6e2e6 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini @@ -3,3 +3,6 @@ [location hash] expected: FAIL + [Setting location.hash on srcdoc iframe] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.htm.ini similarity index 81% rename from tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini rename to tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.htm.ini index 0c9c11c1ea5..eb94f650336 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.sub.htm.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/security_location_0.htm.ini @@ -1,4 +1,4 @@ -[security_location_0.sub.htm] +[security_location_0.htm] type: testharness [Accessing location object from different origins doesn't raise SECURITY_ERR exception] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-same-origin.html.ini b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-same-origin.html.ini new file mode 100644 index 00000000000..98aaa0c55c3 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-same-origin.html.ini @@ -0,0 +1,6 @@ +[sandbox-allow-same-origin.html] + type: testharness + expected: ERROR + [DOM access in sandbox='allow-same-origin' iframe is allowed] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-scripts.html.ini b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-scripts.html.ini new file mode 100644 index 00000000000..91e5608d4b6 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-allow-scripts.html.ini @@ -0,0 +1,6 @@ +[sandbox-allow-scripts.html] + type: testharness + expected: TIMEOUT + [Running script from sandbox='allow-scripts' iframe is allowed] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/browsers/sandboxing/sandbox-disallow-same-origin.html.ini b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-disallow-same-origin.html.ini new file mode 100644 index 00000000000..45a45857a97 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/sandboxing/sandbox-disallow-same-origin.html.ini @@ -0,0 +1,6 @@ +[sandbox-disallow-same-origin.html] + type: testharness + expected: ERROR + [Access to sandbox iframe is disallowed] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html.ini index aa2008d4d39..81f700cd881 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html.ini @@ -15,3 +15,6 @@ [Check if window['d'\] returns the element with id='d'] expected: FAIL + [Check if window['a'\] contains all applet, embed, form, img, and object elements, and their order] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.html.ini similarity index 99% rename from tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini rename to tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.html.ini index b90d5dc5688..5fb19d68ce2 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.sub.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/security-window/window-security.html.ini @@ -1,4 +1,4 @@ -[window-security.sub.html] +[window-security.html] type: testharness [A SecurityError exception must be thrown when window.applicationCache is accessed from a different origin.] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini new file mode 100644 index 00000000000..2aa832907a6 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/the-window-object/window-open-noopener.html.ini @@ -0,0 +1,6 @@ +[window-open-noopener.html] + type: testharness + expected: ERROR + [window.open() with 'noopener' should not reuse existing target] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.html.ini similarity index 75% rename from tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini rename to tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.html.ini index b56a9490e9a..14dcf4b686f 100644 --- a/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/nested-browsing-contexts/frameElement.html.ini @@ -1,11 +1,8 @@ -[frameElement.sub.html] +[frameElement.html] type: testharness [The window's frameElement attribute must return its container element if it is a nested browsing context] expected: FAIL - [The SecurityError must be thrown if the container's document does not have the same effective script origin] - expected: FAIL - [The SecurityError must be thrown if the window accesses to frameElement attribute of a Window which does not have the same effective script origin] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html.ini b/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html.ini new file mode 100644 index 00000000000..90464594a18 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html.ini @@ -0,0 +1,3 @@ +[targeting-cross-origin-nested-browsing-contexts.html] + type: testharness + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html.ini b/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html.ini deleted file mode 100644 index 4dedae027e2..00000000000 --- a/tests/wpt/metadata/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[targeting-cross-origin-nested-browsing-contexts.sub.html] - type: testharness - expected: TIMEOUT - [Targeting nested browsing contexts] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html.ini b/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.html.ini similarity index 86% rename from tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html.ini rename to tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.html.ini index 4ae432e0d28..252190ed7b1 100644 --- a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html.ini +++ b/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/Document.currentScript.html.ini @@ -1,6 +1,9 @@ -[Document.currentScript.sub.html] +[Document.currentScript.html] type: testharness expected: TIMEOUT + [Script script-exec] + expected: NOTRUN + [Script script-svg] expected: NOTRUN @@ -10,6 +13,3 @@ [Script document-write] expected: NOTRUN - [Script script-exec] - expected: NOTRUN - diff --git a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini b/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini deleted file mode 100644 index a1e22155c9c..00000000000 --- a/tests/wpt/metadata/html/dom/documents/dom-tree-accessors/document.forms.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[document.forms.html] - type: testharness - [document.forms iteration] - expected: FAIL - diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 151d88e473a..2384531b235 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -1056,75 +1056,18 @@ [HTMLCollection interface: calling namedItem(DOMString) on document.all with too few arguments must throw TypeError] expected: FAIL - [HTMLFormControlsCollection must be primary interface of document.createElement("form").elements] - expected: FAIL - - [Stringification of document.createElement("form").elements] - expected: FAIL - - [HTMLFormControlsCollection interface: document.createElement("form").elements must inherit property "namedItem" with the proper type (0)] - expected: FAIL - - [HTMLFormControlsCollection interface: calling namedItem(DOMString) on document.createElement("form").elements with too few arguments must throw TypeError] - expected: FAIL - - [HTMLCollection interface: document.createElement("form").elements must inherit property "length" with the proper type (0)] - expected: FAIL - - [HTMLCollection interface: document.createElement("form").elements must inherit property "item" with the proper type (1)] - expected: FAIL - - [HTMLCollection interface: calling item(unsigned long) on document.createElement("form").elements with too few arguments must throw TypeError] - expected: FAIL - - [HTMLCollection interface: document.createElement("form").elements must inherit property "namedItem" with the proper type (2)] - expected: FAIL - - [HTMLCollection interface: calling namedItem(DOMString) on document.createElement("form").elements with too few arguments must throw TypeError] - expected: FAIL - [HTMLOptionsCollection interface: attribute selectedIndex] expected: FAIL - [HTMLOptionsCollection must be primary interface of document.createElement("select").options] - expected: FAIL - - [Stringification of document.createElement("select").options] - expected: FAIL - - [HTMLOptionsCollection interface: document.createElement("select").options must inherit property "length" with the proper type (0)] - expected: FAIL - [HTMLOptionsCollection interface: document.createElement("select").options must inherit property "add" with the proper type (3)] expected: FAIL - [HTMLOptionsCollection interface: calling add([object Object\],[object Object\],[object Object\],[object Object\]) on document.createElement("select").options with too few arguments must throw TypeError] - expected: FAIL - [HTMLOptionsCollection interface: document.createElement("select").options must inherit property "remove" with the proper type (4)] expected: FAIL - [HTMLOptionsCollection interface: calling remove(long) on document.createElement("select").options with too few arguments must throw TypeError] - expected: FAIL - [HTMLOptionsCollection interface: document.createElement("select").options must inherit property "selectedIndex" with the proper type (5)] expected: FAIL - [HTMLCollection interface: document.createElement("select").options must inherit property "length" with the proper type (0)] - expected: FAIL - - [HTMLCollection interface: document.createElement("select").options must inherit property "item" with the proper type (1)] - expected: FAIL - - [HTMLCollection interface: calling item(unsigned long) on document.createElement("select").options with too few arguments must throw TypeError] - expected: FAIL - - [HTMLCollection interface: document.createElement("select").options must inherit property "namedItem" with the proper type (2)] - expected: FAIL - - [HTMLCollection interface: calling namedItem(DOMString) on document.createElement("select").options with too few arguments must throw TypeError] - expected: FAIL - [HTMLPropertiesCollection interface: existence and properties of interface object] expected: FAIL @@ -1719,12 +1662,6 @@ [HTMLEmbedElement interface: attribute name] expected: FAIL - [HTMLEmbedElement must be primary interface of document.createElement("embed")] - expected: FAIL - - [Stringification of document.createElement("embed")] - expected: FAIL - [HTMLEmbedElement interface: document.createElement("embed") must inherit property "src" with the proper type (0)] expected: FAIL @@ -1815,18 +1752,9 @@ [HTMLObjectElement interface: attribute border] expected: FAIL - [HTMLObjectElement must be primary interface of document.createElement("object")] - expected: FAIL - - [Stringification of document.createElement("object")] - expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "data" with the proper type (0)] expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "type" with the proper type (1)] - expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "typeMustMatch" with the proper type (2)] expected: FAIL @@ -1836,9 +1764,6 @@ [HTMLObjectElement interface: document.createElement("object") must inherit property "useMap" with the proper type (4)] expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "form" with the proper type (5)] - expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "width" with the proper type (6)] expected: FAIL @@ -1854,9 +1779,6 @@ [HTMLObjectElement interface: document.createElement("object") must inherit property "willValidate" with the proper type (10)] expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "validity" with the proper type (11)] - expected: FAIL - [HTMLObjectElement interface: document.createElement("object") must inherit property "validationMessage" with the proper type (12)] expected: FAIL @@ -10577,3 +10499,46 @@ [Navigator interface: window.navigator must inherit property "hardwareConcurrency" with the proper type (22)] expected: FAIL + + [HTMLOptionsCollection interface: document.createElement("select").options must inherit property "selectedIndex" with the proper type (4)] + expected: FAIL + + [HTMLEmbedElement interface: document.createElement("embed") must inherit property "align" with the proper type (5)] + expected: FAIL + + [HTMLEmbedElement interface: document.createElement("embed") must inherit property "name" with the proper type (6)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "align" with the proper type (16)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "archive" with the proper type (17)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "code" with the proper type (18)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "declare" with the proper type (19)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "hspace" with the proper type (20)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "standby" with the proper type (21)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "vspace" with the proper type (22)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "codeBase" with the proper type (23)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "codeType" with the proper type (24)] + expected: FAIL + + [HTMLObjectElement interface: document.createElement("object") must inherit property "border" with the proper type (25)] + expected: FAIL + + [MessageEvent interface: operation initMessageEvent(DOMString,boolean,boolean,any,DOMString,DOMString,[object Object\],[object Object\],[object Object\])] + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini index a7016569e17..106c3dcf98f 100644 --- a/tests/wpt/metadata/html/dom/reflection-embedded.html.ini +++ b/tests/wpt/metadata/html/dom/reflection-embedded.html.ini @@ -20799,3 +20799,11121 @@ [area.ping: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo " followed by getAttribute()] expected: FAIL + [img.dir: setAttribute() to ""] + expected: FAIL + + [img.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.dir: setAttribute() to undefined] + expected: FAIL + + [img.dir: setAttribute() to 7] + expected: FAIL + + [img.dir: setAttribute() to 1.5] + expected: FAIL + + [img.dir: setAttribute() to true] + expected: FAIL + + [img.dir: setAttribute() to false] + expected: FAIL + + [img.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [img.dir: setAttribute() to NaN] + expected: FAIL + + [img.dir: setAttribute() to Infinity] + expected: FAIL + + [img.dir: setAttribute() to -Infinity] + expected: FAIL + + [img.dir: setAttribute() to "\\0"] + expected: FAIL + + [img.dir: setAttribute() to null] + expected: FAIL + + [img.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [img.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [img.dir: setAttribute() to "ltr"] + expected: FAIL + + [img.dir: setAttribute() to "xltr"] + expected: FAIL + + [img.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [img.dir: setAttribute() to "tr"] + expected: FAIL + + [img.dir: setAttribute() to "LTR"] + expected: FAIL + + [img.dir: setAttribute() to "rtl"] + expected: FAIL + + [img.dir: setAttribute() to "xrtl"] + expected: FAIL + + [img.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [img.dir: setAttribute() to "tl"] + expected: FAIL + + [img.dir: setAttribute() to "RTL"] + expected: FAIL + + [img.dir: setAttribute() to "auto"] + expected: FAIL + + [img.dir: setAttribute() to "xauto"] + expected: FAIL + + [img.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [img.dir: setAttribute() to "uto"] + expected: FAIL + + [img.dir: setAttribute() to "AUTO"] + expected: FAIL + + [img.dir: IDL set to ""] + expected: FAIL + + [img.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.dir: IDL set to undefined] + expected: FAIL + + [img.dir: IDL set to 7] + expected: FAIL + + [img.dir: IDL set to 1.5] + expected: FAIL + + [img.dir: IDL set to true] + expected: FAIL + + [img.dir: IDL set to false] + expected: FAIL + + [img.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [img.dir: IDL set to NaN] + expected: FAIL + + [img.dir: IDL set to Infinity] + expected: FAIL + + [img.dir: IDL set to -Infinity] + expected: FAIL + + [img.dir: IDL set to "\\0"] + expected: FAIL + + [img.dir: IDL set to null] + expected: FAIL + + [img.dir: IDL set to object "test-toString"] + expected: FAIL + + [img.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [img.dir: IDL set to "ltr"] + expected: FAIL + + [img.dir: IDL set to "xltr"] + expected: FAIL + + [img.dir: IDL set to "ltr\\0"] + expected: FAIL + + [img.dir: IDL set to "tr"] + expected: FAIL + + [img.dir: IDL set to "LTR"] + expected: FAIL + + [img.dir: IDL set to "rtl"] + expected: FAIL + + [img.dir: IDL set to "xrtl"] + expected: FAIL + + [img.dir: IDL set to "rtl\\0"] + expected: FAIL + + [img.dir: IDL set to "tl"] + expected: FAIL + + [img.dir: IDL set to "RTL"] + expected: FAIL + + [img.dir: IDL set to "auto"] + expected: FAIL + + [img.dir: IDL set to "xauto"] + expected: FAIL + + [img.dir: IDL set to "auto\\0"] + expected: FAIL + + [img.dir: IDL set to "uto"] + expected: FAIL + + [img.dir: IDL set to "AUTO"] + expected: FAIL + + [img.accessKey: setAttribute() to ""] + expected: FAIL + + [img.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.accessKey: setAttribute() to undefined] + expected: FAIL + + [img.accessKey: setAttribute() to 7] + expected: FAIL + + [img.accessKey: setAttribute() to 1.5] + expected: FAIL + + [img.accessKey: setAttribute() to true] + expected: FAIL + + [img.accessKey: setAttribute() to false] + expected: FAIL + + [img.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [img.accessKey: setAttribute() to NaN] + expected: FAIL + + [img.accessKey: setAttribute() to Infinity] + expected: FAIL + + [img.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [img.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [img.accessKey: setAttribute() to null] + expected: FAIL + + [img.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [img.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [img.accessKey: IDL set to ""] + expected: FAIL + + [img.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.accessKey: IDL set to undefined] + expected: FAIL + + [img.accessKey: IDL set to 7] + expected: FAIL + + [img.accessKey: IDL set to 1.5] + expected: FAIL + + [img.accessKey: IDL set to true] + expected: FAIL + + [img.accessKey: IDL set to false] + expected: FAIL + + [img.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [img.accessKey: IDL set to NaN] + expected: FAIL + + [img.accessKey: IDL set to Infinity] + expected: FAIL + + [img.accessKey: IDL set to -Infinity] + expected: FAIL + + [img.accessKey: IDL set to "\\0"] + expected: FAIL + + [img.accessKey: IDL set to null] + expected: FAIL + + [img.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [img.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [img.tabIndex: setAttribute() to -36] + expected: FAIL + + [img.tabIndex: setAttribute() to -1] + expected: FAIL + + [img.tabIndex: setAttribute() to 0] + expected: FAIL + + [img.tabIndex: setAttribute() to 1] + expected: FAIL + + [img.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [img.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [img.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [img.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [img.tabIndex: setAttribute() to "0"] + expected: FAIL + + [img.tabIndex: setAttribute() to "1"] + expected: FAIL + + [img.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [img.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [img.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [img.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [img.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [img.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [img.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [img.tabIndex: IDL set to -36] + expected: FAIL + + [img.tabIndex: IDL set to -1] + expected: FAIL + + [img.tabIndex: IDL set to 0] + expected: FAIL + + [img.tabIndex: IDL set to 1] + expected: FAIL + + [img.tabIndex: IDL set to 2147483647] + expected: FAIL + + [img.tabIndex: IDL set to -2147483648] + expected: FAIL + + [img.srcset: setAttribute() to ""] + expected: FAIL + + [img.srcset: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.srcset: setAttribute() to undefined] + expected: FAIL + + [img.srcset: setAttribute() to 7] + expected: FAIL + + [img.srcset: setAttribute() to 1.5] + expected: FAIL + + [img.srcset: setAttribute() to true] + expected: FAIL + + [img.srcset: setAttribute() to false] + expected: FAIL + + [img.srcset: setAttribute() to object "[object Object\]"] + expected: FAIL + + [img.srcset: setAttribute() to NaN] + expected: FAIL + + [img.srcset: setAttribute() to Infinity] + expected: FAIL + + [img.srcset: setAttribute() to -Infinity] + expected: FAIL + + [img.srcset: setAttribute() to "\\0"] + expected: FAIL + + [img.srcset: setAttribute() to null] + expected: FAIL + + [img.srcset: setAttribute() to object "test-toString"] + expected: FAIL + + [img.srcset: setAttribute() to object "test-valueOf"] + expected: FAIL + + [img.srcset: IDL set to ""] + expected: FAIL + + [img.srcset: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [img.srcset: IDL set to undefined] + expected: FAIL + + [img.srcset: IDL set to 7] + expected: FAIL + + [img.srcset: IDL set to 1.5] + expected: FAIL + + [img.srcset: IDL set to true] + expected: FAIL + + [img.srcset: IDL set to false] + expected: FAIL + + [img.srcset: IDL set to object "[object Object\]"] + expected: FAIL + + [img.srcset: IDL set to NaN] + expected: FAIL + + [img.srcset: IDL set to Infinity] + expected: FAIL + + [img.srcset: IDL set to -Infinity] + expected: FAIL + + [img.srcset: IDL set to "\\0"] + expected: FAIL + + [img.srcset: IDL set to null] + expected: FAIL + + [img.srcset: IDL set to object "test-toString"] + expected: FAIL + + [img.srcset: IDL set to object "test-valueOf"] + expected: FAIL + + [img.crossOrigin: IDL set to undefined] + expected: FAIL + + [img.crossOrigin: IDL set to null] + expected: FAIL + + [img.width: IDL set to 1] + expected: FAIL + + [img.width: IDL set to 257] + expected: FAIL + + [img.width: IDL set to 2147483647] + expected: FAIL + + [img.height: IDL set to 1] + expected: FAIL + + [img.height: IDL set to 257] + expected: FAIL + + [img.height: IDL set to 2147483647] + expected: FAIL + + [img.lowsrc: setAttribute() to ""] + expected: FAIL + + [img.lowsrc: setAttribute() to " foo "] + expected: FAIL + + [img.lowsrc: setAttribute() to "http://site.example/"] + expected: FAIL + + [img.lowsrc: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [img.lowsrc: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [img.lowsrc: setAttribute() to undefined] + expected: FAIL + + [img.lowsrc: setAttribute() to 7] + expected: FAIL + + [img.lowsrc: setAttribute() to 1.5] + expected: FAIL + + [img.lowsrc: setAttribute() to true] + expected: FAIL + + [img.lowsrc: setAttribute() to false] + expected: FAIL + + [img.lowsrc: setAttribute() to object "[object Object\]"] + expected: FAIL + + [img.lowsrc: setAttribute() to NaN] + expected: FAIL + + [img.lowsrc: setAttribute() to Infinity] + expected: FAIL + + [img.lowsrc: setAttribute() to -Infinity] + expected: FAIL + + [img.lowsrc: setAttribute() to "\\0"] + expected: FAIL + + [img.lowsrc: setAttribute() to null] + expected: FAIL + + [img.lowsrc: setAttribute() to object "test-toString"] + expected: FAIL + + [img.lowsrc: setAttribute() to object "test-valueOf"] + expected: FAIL + + [img.lowsrc: IDL set to ""] + expected: FAIL + + [img.lowsrc: IDL set to " foo "] + expected: FAIL + + [img.lowsrc: IDL set to "http://site.example/"] + expected: FAIL + + [img.lowsrc: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [img.lowsrc: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [img.lowsrc: IDL set to undefined] + expected: FAIL + + [img.lowsrc: IDL set to 7] + expected: FAIL + + [img.lowsrc: IDL set to 1.5] + expected: FAIL + + [img.lowsrc: IDL set to true] + expected: FAIL + + [img.lowsrc: IDL set to false] + expected: FAIL + + [img.lowsrc: IDL set to object "[object Object\]"] + expected: FAIL + + [img.lowsrc: IDL set to NaN] + expected: FAIL + + [img.lowsrc: IDL set to Infinity] + expected: FAIL + + [img.lowsrc: IDL set to -Infinity] + expected: FAIL + + [img.lowsrc: IDL set to "\\0"] + expected: FAIL + + [img.lowsrc: IDL set to null] + expected: FAIL + + [img.lowsrc: IDL set to object "test-toString"] + expected: FAIL + + [img.lowsrc: IDL set to object "test-valueOf"] + expected: FAIL + + [img.longDesc: setAttribute() to ""] + expected: FAIL + + [img.longDesc: setAttribute() to " foo "] + expected: FAIL + + [img.longDesc: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [img.longDesc: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [img.longDesc: setAttribute() to undefined] + expected: FAIL + + [img.longDesc: setAttribute() to 7] + expected: FAIL + + [img.longDesc: setAttribute() to 1.5] + expected: FAIL + + [img.longDesc: setAttribute() to true] + expected: FAIL + + [img.longDesc: setAttribute() to false] + expected: FAIL + + [img.longDesc: setAttribute() to object "[object Object\]"] + expected: FAIL + + [img.longDesc: setAttribute() to NaN] + expected: FAIL + + [img.longDesc: setAttribute() to Infinity] + expected: FAIL + + [img.longDesc: setAttribute() to -Infinity] + expected: FAIL + + [img.longDesc: setAttribute() to "\\0"] + expected: FAIL + + [img.longDesc: setAttribute() to null] + expected: FAIL + + [img.longDesc: setAttribute() to object "test-toString"] + expected: FAIL + + [img.longDesc: setAttribute() to object "test-valueOf"] + expected: FAIL + + [img.longDesc: IDL set to ""] + expected: FAIL + + [img.longDesc: IDL set to " foo "] + expected: FAIL + + [img.longDesc: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [img.longDesc: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [img.longDesc: IDL set to undefined] + expected: FAIL + + [img.longDesc: IDL set to 7] + expected: FAIL + + [img.longDesc: IDL set to 1.5] + expected: FAIL + + [img.longDesc: IDL set to true] + expected: FAIL + + [img.longDesc: IDL set to false] + expected: FAIL + + [img.longDesc: IDL set to object "[object Object\]"] + expected: FAIL + + [img.longDesc: IDL set to NaN] + expected: FAIL + + [img.longDesc: IDL set to Infinity] + expected: FAIL + + [img.longDesc: IDL set to -Infinity] + expected: FAIL + + [img.longDesc: IDL set to "\\0"] + expected: FAIL + + [img.longDesc: IDL set to null] + expected: FAIL + + [img.longDesc: IDL set to object "test-toString"] + expected: FAIL + + [img.longDesc: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.dir: setAttribute() to ""] + expected: FAIL + + [iframe.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.dir: setAttribute() to undefined] + expected: FAIL + + [iframe.dir: setAttribute() to 7] + expected: FAIL + + [iframe.dir: setAttribute() to 1.5] + expected: FAIL + + [iframe.dir: setAttribute() to true] + expected: FAIL + + [iframe.dir: setAttribute() to false] + expected: FAIL + + [iframe.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.dir: setAttribute() to NaN] + expected: FAIL + + [iframe.dir: setAttribute() to Infinity] + expected: FAIL + + [iframe.dir: setAttribute() to -Infinity] + expected: FAIL + + [iframe.dir: setAttribute() to "\\0"] + expected: FAIL + + [iframe.dir: setAttribute() to null] + expected: FAIL + + [iframe.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.dir: setAttribute() to "ltr"] + expected: FAIL + + [iframe.dir: setAttribute() to "xltr"] + expected: FAIL + + [iframe.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [iframe.dir: setAttribute() to "tr"] + expected: FAIL + + [iframe.dir: setAttribute() to "LTR"] + expected: FAIL + + [iframe.dir: setAttribute() to "rtl"] + expected: FAIL + + [iframe.dir: setAttribute() to "xrtl"] + expected: FAIL + + [iframe.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [iframe.dir: setAttribute() to "tl"] + expected: FAIL + + [iframe.dir: setAttribute() to "RTL"] + expected: FAIL + + [iframe.dir: setAttribute() to "auto"] + expected: FAIL + + [iframe.dir: setAttribute() to "xauto"] + expected: FAIL + + [iframe.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [iframe.dir: setAttribute() to "uto"] + expected: FAIL + + [iframe.dir: setAttribute() to "AUTO"] + expected: FAIL + + [iframe.dir: IDL set to ""] + expected: FAIL + + [iframe.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.dir: IDL set to undefined] + expected: FAIL + + [iframe.dir: IDL set to 7] + expected: FAIL + + [iframe.dir: IDL set to 1.5] + expected: FAIL + + [iframe.dir: IDL set to true] + expected: FAIL + + [iframe.dir: IDL set to false] + expected: FAIL + + [iframe.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.dir: IDL set to NaN] + expected: FAIL + + [iframe.dir: IDL set to Infinity] + expected: FAIL + + [iframe.dir: IDL set to -Infinity] + expected: FAIL + + [iframe.dir: IDL set to "\\0"] + expected: FAIL + + [iframe.dir: IDL set to null] + expected: FAIL + + [iframe.dir: IDL set to object "test-toString"] + expected: FAIL + + [iframe.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.dir: IDL set to "ltr"] + expected: FAIL + + [iframe.dir: IDL set to "xltr"] + expected: FAIL + + [iframe.dir: IDL set to "ltr\\0"] + expected: FAIL + + [iframe.dir: IDL set to "tr"] + expected: FAIL + + [iframe.dir: IDL set to "LTR"] + expected: FAIL + + [iframe.dir: IDL set to "rtl"] + expected: FAIL + + [iframe.dir: IDL set to "xrtl"] + expected: FAIL + + [iframe.dir: IDL set to "rtl\\0"] + expected: FAIL + + [iframe.dir: IDL set to "tl"] + expected: FAIL + + [iframe.dir: IDL set to "RTL"] + expected: FAIL + + [iframe.dir: IDL set to "auto"] + expected: FAIL + + [iframe.dir: IDL set to "xauto"] + expected: FAIL + + [iframe.dir: IDL set to "auto\\0"] + expected: FAIL + + [iframe.dir: IDL set to "uto"] + expected: FAIL + + [iframe.dir: IDL set to "AUTO"] + expected: FAIL + + [iframe.accessKey: setAttribute() to ""] + expected: FAIL + + [iframe.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.accessKey: setAttribute() to undefined] + expected: FAIL + + [iframe.accessKey: setAttribute() to 7] + expected: FAIL + + [iframe.accessKey: setAttribute() to 1.5] + expected: FAIL + + [iframe.accessKey: setAttribute() to true] + expected: FAIL + + [iframe.accessKey: setAttribute() to false] + expected: FAIL + + [iframe.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.accessKey: setAttribute() to NaN] + expected: FAIL + + [iframe.accessKey: setAttribute() to Infinity] + expected: FAIL + + [iframe.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [iframe.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [iframe.accessKey: setAttribute() to null] + expected: FAIL + + [iframe.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.accessKey: IDL set to ""] + expected: FAIL + + [iframe.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.accessKey: IDL set to undefined] + expected: FAIL + + [iframe.accessKey: IDL set to 7] + expected: FAIL + + [iframe.accessKey: IDL set to 1.5] + expected: FAIL + + [iframe.accessKey: IDL set to true] + expected: FAIL + + [iframe.accessKey: IDL set to false] + expected: FAIL + + [iframe.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.accessKey: IDL set to NaN] + expected: FAIL + + [iframe.accessKey: IDL set to Infinity] + expected: FAIL + + [iframe.accessKey: IDL set to -Infinity] + expected: FAIL + + [iframe.accessKey: IDL set to "\\0"] + expected: FAIL + + [iframe.accessKey: IDL set to null] + expected: FAIL + + [iframe.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [iframe.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to -36] + expected: FAIL + + [iframe.tabIndex: setAttribute() to -1] + expected: FAIL + + [iframe.tabIndex: setAttribute() to 0] + expected: FAIL + + [iframe.tabIndex: setAttribute() to 1] + expected: FAIL + + [iframe.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [iframe.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "0"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "1"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [iframe.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [iframe.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [iframe.tabIndex: IDL set to -36] + expected: FAIL + + [iframe.tabIndex: IDL set to -1] + expected: FAIL + + [iframe.tabIndex: IDL set to 0] + expected: FAIL + + [iframe.tabIndex: IDL set to 1] + expected: FAIL + + [iframe.tabIndex: IDL set to 2147483647] + expected: FAIL + + [iframe.tabIndex: IDL set to -2147483648] + expected: FAIL + + [iframe.src: setAttribute() to ""] + expected: FAIL + + [iframe.src: setAttribute() to " foo "] + expected: FAIL + + [iframe.src: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [iframe.src: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [iframe.src: setAttribute() to undefined] + expected: FAIL + + [iframe.src: setAttribute() to 7] + expected: FAIL + + [iframe.src: setAttribute() to 1.5] + expected: FAIL + + [iframe.src: setAttribute() to true] + expected: FAIL + + [iframe.src: setAttribute() to false] + expected: FAIL + + [iframe.src: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.src: setAttribute() to NaN] + expected: FAIL + + [iframe.src: setAttribute() to Infinity] + expected: FAIL + + [iframe.src: setAttribute() to -Infinity] + expected: FAIL + + [iframe.src: setAttribute() to "\\0"] + expected: FAIL + + [iframe.src: setAttribute() to null] + expected: FAIL + + [iframe.src: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.src: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.src: IDL set to ""] + expected: FAIL + + [iframe.src: IDL set to " foo "] + expected: FAIL + + [iframe.src: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [iframe.src: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [iframe.src: IDL set to undefined] + expected: FAIL + + [iframe.src: IDL set to 7] + expected: FAIL + + [iframe.src: IDL set to 1.5] + expected: FAIL + + [iframe.src: IDL set to true] + expected: FAIL + + [iframe.src: IDL set to false] + expected: FAIL + + [iframe.src: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.src: IDL set to NaN] + expected: FAIL + + [iframe.src: IDL set to Infinity] + expected: FAIL + + [iframe.src: IDL set to -Infinity] + expected: FAIL + + [iframe.src: IDL set to "\\0"] + expected: FAIL + + [iframe.src: IDL set to null] + expected: FAIL + + [iframe.src: IDL set to object "test-toString"] + expected: FAIL + + [iframe.src: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.srcdoc: setAttribute() to ""] + expected: FAIL + + [iframe.srcdoc: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.srcdoc: setAttribute() to undefined] + expected: FAIL + + [iframe.srcdoc: setAttribute() to 7] + expected: FAIL + + [iframe.srcdoc: setAttribute() to 1.5] + expected: FAIL + + [iframe.srcdoc: setAttribute() to true] + expected: FAIL + + [iframe.srcdoc: setAttribute() to false] + expected: FAIL + + [iframe.srcdoc: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.srcdoc: setAttribute() to NaN] + expected: FAIL + + [iframe.srcdoc: setAttribute() to Infinity] + expected: FAIL + + [iframe.srcdoc: setAttribute() to -Infinity] + expected: FAIL + + [iframe.srcdoc: setAttribute() to "\\0"] + expected: FAIL + + [iframe.srcdoc: setAttribute() to null] + expected: FAIL + + [iframe.srcdoc: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.srcdoc: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.srcdoc: IDL set to ""] + expected: FAIL + + [iframe.srcdoc: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.srcdoc: IDL set to undefined] + expected: FAIL + + [iframe.srcdoc: IDL set to 7] + expected: FAIL + + [iframe.srcdoc: IDL set to 1.5] + expected: FAIL + + [iframe.srcdoc: IDL set to true] + expected: FAIL + + [iframe.srcdoc: IDL set to false] + expected: FAIL + + [iframe.srcdoc: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.srcdoc: IDL set to NaN] + expected: FAIL + + [iframe.srcdoc: IDL set to Infinity] + expected: FAIL + + [iframe.srcdoc: IDL set to -Infinity] + expected: FAIL + + [iframe.srcdoc: IDL set to "\\0"] + expected: FAIL + + [iframe.srcdoc: IDL set to null] + expected: FAIL + + [iframe.srcdoc: IDL set to object "test-toString"] + expected: FAIL + + [iframe.srcdoc: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.name: setAttribute() to ""] + expected: FAIL + + [iframe.name: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.name: setAttribute() to undefined] + expected: FAIL + + [iframe.name: setAttribute() to 7] + expected: FAIL + + [iframe.name: setAttribute() to 1.5] + expected: FAIL + + [iframe.name: setAttribute() to true] + expected: FAIL + + [iframe.name: setAttribute() to false] + expected: FAIL + + [iframe.name: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.name: setAttribute() to NaN] + expected: FAIL + + [iframe.name: setAttribute() to Infinity] + expected: FAIL + + [iframe.name: setAttribute() to -Infinity] + expected: FAIL + + [iframe.name: setAttribute() to "\\0"] + expected: FAIL + + [iframe.name: setAttribute() to null] + expected: FAIL + + [iframe.name: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.name: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.name: IDL set to ""] + expected: FAIL + + [iframe.name: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.name: IDL set to undefined] + expected: FAIL + + [iframe.name: IDL set to 7] + expected: FAIL + + [iframe.name: IDL set to 1.5] + expected: FAIL + + [iframe.name: IDL set to true] + expected: FAIL + + [iframe.name: IDL set to false] + expected: FAIL + + [iframe.name: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.name: IDL set to NaN] + expected: FAIL + + [iframe.name: IDL set to Infinity] + expected: FAIL + + [iframe.name: IDL set to -Infinity] + expected: FAIL + + [iframe.name: IDL set to "\\0"] + expected: FAIL + + [iframe.name: IDL set to null] + expected: FAIL + + [iframe.name: IDL set to object "test-toString"] + expected: FAIL + + [iframe.name: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to ""] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to " foo "] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to undefined] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to null] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to 7] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to 1.5] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to true] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to false] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to NaN] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to Infinity] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to -Infinity] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to "\\0"] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.allowFullscreen: setAttribute() to "allowFullscreen"] + expected: FAIL + + [iframe.allowFullscreen: IDL set to ""] + expected: FAIL + + [iframe.allowFullscreen: IDL set to " foo "] + expected: FAIL + + [iframe.allowFullscreen: IDL set to undefined] + expected: FAIL + + [iframe.allowFullscreen: IDL set to null] + expected: FAIL + + [iframe.allowFullscreen: IDL set to 7] + expected: FAIL + + [iframe.allowFullscreen: IDL set to 1.5] + expected: FAIL + + [iframe.allowFullscreen: IDL set to false] + expected: FAIL + + [iframe.allowFullscreen: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.allowFullscreen: IDL set to NaN] + expected: FAIL + + [iframe.allowFullscreen: IDL set to Infinity] + expected: FAIL + + [iframe.allowFullscreen: IDL set to -Infinity] + expected: FAIL + + [iframe.allowFullscreen: IDL set to "\\0"] + expected: FAIL + + [iframe.allowFullscreen: IDL set to object "test-toString"] + expected: FAIL + + [iframe.allowFullscreen: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.align: setAttribute() to ""] + expected: FAIL + + [iframe.align: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.align: setAttribute() to undefined] + expected: FAIL + + [iframe.align: setAttribute() to 7] + expected: FAIL + + [iframe.align: setAttribute() to 1.5] + expected: FAIL + + [iframe.align: setAttribute() to true] + expected: FAIL + + [iframe.align: setAttribute() to false] + expected: FAIL + + [iframe.align: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.align: setAttribute() to NaN] + expected: FAIL + + [iframe.align: setAttribute() to Infinity] + expected: FAIL + + [iframe.align: setAttribute() to -Infinity] + expected: FAIL + + [iframe.align: setAttribute() to "\\0"] + expected: FAIL + + [iframe.align: setAttribute() to null] + expected: FAIL + + [iframe.align: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.align: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.align: IDL set to ""] + expected: FAIL + + [iframe.align: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.align: IDL set to undefined] + expected: FAIL + + [iframe.align: IDL set to 7] + expected: FAIL + + [iframe.align: IDL set to 1.5] + expected: FAIL + + [iframe.align: IDL set to true] + expected: FAIL + + [iframe.align: IDL set to false] + expected: FAIL + + [iframe.align: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.align: IDL set to NaN] + expected: FAIL + + [iframe.align: IDL set to Infinity] + expected: FAIL + + [iframe.align: IDL set to -Infinity] + expected: FAIL + + [iframe.align: IDL set to "\\0"] + expected: FAIL + + [iframe.align: IDL set to null] + expected: FAIL + + [iframe.align: IDL set to object "test-toString"] + expected: FAIL + + [iframe.align: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.scrolling: setAttribute() to ""] + expected: FAIL + + [iframe.scrolling: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.scrolling: setAttribute() to undefined] + expected: FAIL + + [iframe.scrolling: setAttribute() to 7] + expected: FAIL + + [iframe.scrolling: setAttribute() to 1.5] + expected: FAIL + + [iframe.scrolling: setAttribute() to true] + expected: FAIL + + [iframe.scrolling: setAttribute() to false] + expected: FAIL + + [iframe.scrolling: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.scrolling: setAttribute() to NaN] + expected: FAIL + + [iframe.scrolling: setAttribute() to Infinity] + expected: FAIL + + [iframe.scrolling: setAttribute() to -Infinity] + expected: FAIL + + [iframe.scrolling: setAttribute() to "\\0"] + expected: FAIL + + [iframe.scrolling: setAttribute() to null] + expected: FAIL + + [iframe.scrolling: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.scrolling: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.scrolling: IDL set to ""] + expected: FAIL + + [iframe.scrolling: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.scrolling: IDL set to undefined] + expected: FAIL + + [iframe.scrolling: IDL set to 7] + expected: FAIL + + [iframe.scrolling: IDL set to 1.5] + expected: FAIL + + [iframe.scrolling: IDL set to true] + expected: FAIL + + [iframe.scrolling: IDL set to false] + expected: FAIL + + [iframe.scrolling: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.scrolling: IDL set to NaN] + expected: FAIL + + [iframe.scrolling: IDL set to Infinity] + expected: FAIL + + [iframe.scrolling: IDL set to -Infinity] + expected: FAIL + + [iframe.scrolling: IDL set to "\\0"] + expected: FAIL + + [iframe.scrolling: IDL set to null] + expected: FAIL + + [iframe.scrolling: IDL set to object "test-toString"] + expected: FAIL + + [iframe.scrolling: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.longDesc: setAttribute() to ""] + expected: FAIL + + [iframe.longDesc: setAttribute() to " foo "] + expected: FAIL + + [iframe.longDesc: setAttribute() to "http://site.example/"] + expected: FAIL + + [iframe.longDesc: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [iframe.longDesc: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [iframe.longDesc: setAttribute() to undefined] + expected: FAIL + + [iframe.longDesc: setAttribute() to 7] + expected: FAIL + + [iframe.longDesc: setAttribute() to 1.5] + expected: FAIL + + [iframe.longDesc: setAttribute() to true] + expected: FAIL + + [iframe.longDesc: setAttribute() to false] + expected: FAIL + + [iframe.longDesc: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.longDesc: setAttribute() to NaN] + expected: FAIL + + [iframe.longDesc: setAttribute() to Infinity] + expected: FAIL + + [iframe.longDesc: setAttribute() to -Infinity] + expected: FAIL + + [iframe.longDesc: setAttribute() to "\\0"] + expected: FAIL + + [iframe.longDesc: setAttribute() to null] + expected: FAIL + + [iframe.longDesc: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.longDesc: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.longDesc: IDL set to ""] + expected: FAIL + + [iframe.longDesc: IDL set to " foo "] + expected: FAIL + + [iframe.longDesc: IDL set to "http://site.example/"] + expected: FAIL + + [iframe.longDesc: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [iframe.longDesc: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [iframe.longDesc: IDL set to undefined] + expected: FAIL + + [iframe.longDesc: IDL set to 7] + expected: FAIL + + [iframe.longDesc: IDL set to 1.5] + expected: FAIL + + [iframe.longDesc: IDL set to true] + expected: FAIL + + [iframe.longDesc: IDL set to false] + expected: FAIL + + [iframe.longDesc: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.longDesc: IDL set to NaN] + expected: FAIL + + [iframe.longDesc: IDL set to Infinity] + expected: FAIL + + [iframe.longDesc: IDL set to -Infinity] + expected: FAIL + + [iframe.longDesc: IDL set to "\\0"] + expected: FAIL + + [iframe.longDesc: IDL set to null] + expected: FAIL + + [iframe.longDesc: IDL set to object "test-toString"] + expected: FAIL + + [iframe.longDesc: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.marginHeight: setAttribute() to ""] + expected: FAIL + + [iframe.marginHeight: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.marginHeight: setAttribute() to undefined] + expected: FAIL + + [iframe.marginHeight: setAttribute() to 7] + expected: FAIL + + [iframe.marginHeight: setAttribute() to 1.5] + expected: FAIL + + [iframe.marginHeight: setAttribute() to true] + expected: FAIL + + [iframe.marginHeight: setAttribute() to false] + expected: FAIL + + [iframe.marginHeight: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.marginHeight: setAttribute() to NaN] + expected: FAIL + + [iframe.marginHeight: setAttribute() to Infinity] + expected: FAIL + + [iframe.marginHeight: setAttribute() to -Infinity] + expected: FAIL + + [iframe.marginHeight: setAttribute() to "\\0"] + expected: FAIL + + [iframe.marginHeight: setAttribute() to null] + expected: FAIL + + [iframe.marginHeight: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.marginHeight: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.marginHeight: IDL set to ""] + expected: FAIL + + [iframe.marginHeight: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.marginHeight: IDL set to undefined] + expected: FAIL + + [iframe.marginHeight: IDL set to 7] + expected: FAIL + + [iframe.marginHeight: IDL set to 1.5] + expected: FAIL + + [iframe.marginHeight: IDL set to true] + expected: FAIL + + [iframe.marginHeight: IDL set to false] + expected: FAIL + + [iframe.marginHeight: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.marginHeight: IDL set to NaN] + expected: FAIL + + [iframe.marginHeight: IDL set to Infinity] + expected: FAIL + + [iframe.marginHeight: IDL set to -Infinity] + expected: FAIL + + [iframe.marginHeight: IDL set to "\\0"] + expected: FAIL + + [iframe.marginHeight: IDL set to null] + expected: FAIL + + [iframe.marginHeight: IDL set to object "test-toString"] + expected: FAIL + + [iframe.marginHeight: IDL set to object "test-valueOf"] + expected: FAIL + + [iframe.marginWidth: setAttribute() to ""] + expected: FAIL + + [iframe.marginWidth: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.marginWidth: setAttribute() to undefined] + expected: FAIL + + [iframe.marginWidth: setAttribute() to 7] + expected: FAIL + + [iframe.marginWidth: setAttribute() to 1.5] + expected: FAIL + + [iframe.marginWidth: setAttribute() to true] + expected: FAIL + + [iframe.marginWidth: setAttribute() to false] + expected: FAIL + + [iframe.marginWidth: setAttribute() to object "[object Object\]"] + expected: FAIL + + [iframe.marginWidth: setAttribute() to NaN] + expected: FAIL + + [iframe.marginWidth: setAttribute() to Infinity] + expected: FAIL + + [iframe.marginWidth: setAttribute() to -Infinity] + expected: FAIL + + [iframe.marginWidth: setAttribute() to "\\0"] + expected: FAIL + + [iframe.marginWidth: setAttribute() to null] + expected: FAIL + + [iframe.marginWidth: setAttribute() to object "test-toString"] + expected: FAIL + + [iframe.marginWidth: setAttribute() to object "test-valueOf"] + expected: FAIL + + [iframe.marginWidth: IDL set to ""] + expected: FAIL + + [iframe.marginWidth: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [iframe.marginWidth: IDL set to undefined] + expected: FAIL + + [iframe.marginWidth: IDL set to 7] + expected: FAIL + + [iframe.marginWidth: IDL set to 1.5] + expected: FAIL + + [iframe.marginWidth: IDL set to true] + expected: FAIL + + [iframe.marginWidth: IDL set to false] + expected: FAIL + + [iframe.marginWidth: IDL set to object "[object Object\]"] + expected: FAIL + + [iframe.marginWidth: IDL set to NaN] + expected: FAIL + + [iframe.marginWidth: IDL set to Infinity] + expected: FAIL + + [iframe.marginWidth: IDL set to -Infinity] + expected: FAIL + + [iframe.marginWidth: IDL set to "\\0"] + expected: FAIL + + [iframe.marginWidth: IDL set to null] + expected: FAIL + + [iframe.marginWidth: IDL set to object "test-toString"] + expected: FAIL + + [iframe.marginWidth: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.dir: setAttribute() to ""] + expected: FAIL + + [embed.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.dir: setAttribute() to undefined] + expected: FAIL + + [embed.dir: setAttribute() to 7] + expected: FAIL + + [embed.dir: setAttribute() to 1.5] + expected: FAIL + + [embed.dir: setAttribute() to true] + expected: FAIL + + [embed.dir: setAttribute() to false] + expected: FAIL + + [embed.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.dir: setAttribute() to NaN] + expected: FAIL + + [embed.dir: setAttribute() to Infinity] + expected: FAIL + + [embed.dir: setAttribute() to -Infinity] + expected: FAIL + + [embed.dir: setAttribute() to "\\0"] + expected: FAIL + + [embed.dir: setAttribute() to null] + expected: FAIL + + [embed.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.dir: setAttribute() to "ltr"] + expected: FAIL + + [embed.dir: setAttribute() to "xltr"] + expected: FAIL + + [embed.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [embed.dir: setAttribute() to "tr"] + expected: FAIL + + [embed.dir: setAttribute() to "LTR"] + expected: FAIL + + [embed.dir: setAttribute() to "rtl"] + expected: FAIL + + [embed.dir: setAttribute() to "xrtl"] + expected: FAIL + + [embed.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [embed.dir: setAttribute() to "tl"] + expected: FAIL + + [embed.dir: setAttribute() to "RTL"] + expected: FAIL + + [embed.dir: setAttribute() to "auto"] + expected: FAIL + + [embed.dir: setAttribute() to "xauto"] + expected: FAIL + + [embed.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [embed.dir: setAttribute() to "uto"] + expected: FAIL + + [embed.dir: setAttribute() to "AUTO"] + expected: FAIL + + [embed.dir: IDL set to ""] + expected: FAIL + + [embed.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.dir: IDL set to undefined] + expected: FAIL + + [embed.dir: IDL set to 7] + expected: FAIL + + [embed.dir: IDL set to 1.5] + expected: FAIL + + [embed.dir: IDL set to true] + expected: FAIL + + [embed.dir: IDL set to false] + expected: FAIL + + [embed.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.dir: IDL set to NaN] + expected: FAIL + + [embed.dir: IDL set to Infinity] + expected: FAIL + + [embed.dir: IDL set to -Infinity] + expected: FAIL + + [embed.dir: IDL set to "\\0"] + expected: FAIL + + [embed.dir: IDL set to null] + expected: FAIL + + [embed.dir: IDL set to object "test-toString"] + expected: FAIL + + [embed.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.dir: IDL set to "ltr"] + expected: FAIL + + [embed.dir: IDL set to "xltr"] + expected: FAIL + + [embed.dir: IDL set to "ltr\\0"] + expected: FAIL + + [embed.dir: IDL set to "tr"] + expected: FAIL + + [embed.dir: IDL set to "LTR"] + expected: FAIL + + [embed.dir: IDL set to "rtl"] + expected: FAIL + + [embed.dir: IDL set to "xrtl"] + expected: FAIL + + [embed.dir: IDL set to "rtl\\0"] + expected: FAIL + + [embed.dir: IDL set to "tl"] + expected: FAIL + + [embed.dir: IDL set to "RTL"] + expected: FAIL + + [embed.dir: IDL set to "auto"] + expected: FAIL + + [embed.dir: IDL set to "xauto"] + expected: FAIL + + [embed.dir: IDL set to "auto\\0"] + expected: FAIL + + [embed.dir: IDL set to "uto"] + expected: FAIL + + [embed.dir: IDL set to "AUTO"] + expected: FAIL + + [embed.accessKey: setAttribute() to ""] + expected: FAIL + + [embed.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.accessKey: setAttribute() to undefined] + expected: FAIL + + [embed.accessKey: setAttribute() to 7] + expected: FAIL + + [embed.accessKey: setAttribute() to 1.5] + expected: FAIL + + [embed.accessKey: setAttribute() to true] + expected: FAIL + + [embed.accessKey: setAttribute() to false] + expected: FAIL + + [embed.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.accessKey: setAttribute() to NaN] + expected: FAIL + + [embed.accessKey: setAttribute() to Infinity] + expected: FAIL + + [embed.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [embed.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [embed.accessKey: setAttribute() to null] + expected: FAIL + + [embed.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.accessKey: IDL set to ""] + expected: FAIL + + [embed.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.accessKey: IDL set to undefined] + expected: FAIL + + [embed.accessKey: IDL set to 7] + expected: FAIL + + [embed.accessKey: IDL set to 1.5] + expected: FAIL + + [embed.accessKey: IDL set to true] + expected: FAIL + + [embed.accessKey: IDL set to false] + expected: FAIL + + [embed.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.accessKey: IDL set to NaN] + expected: FAIL + + [embed.accessKey: IDL set to Infinity] + expected: FAIL + + [embed.accessKey: IDL set to -Infinity] + expected: FAIL + + [embed.accessKey: IDL set to "\\0"] + expected: FAIL + + [embed.accessKey: IDL set to null] + expected: FAIL + + [embed.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [embed.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.tabIndex: setAttribute() to -36] + expected: FAIL + + [embed.tabIndex: setAttribute() to -1] + expected: FAIL + + [embed.tabIndex: setAttribute() to 0] + expected: FAIL + + [embed.tabIndex: setAttribute() to 1] + expected: FAIL + + [embed.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [embed.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [embed.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "0"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "1"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [embed.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [embed.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [embed.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [embed.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [embed.tabIndex: IDL set to -36] + expected: FAIL + + [embed.tabIndex: IDL set to -1] + expected: FAIL + + [embed.tabIndex: IDL set to 0] + expected: FAIL + + [embed.tabIndex: IDL set to 1] + expected: FAIL + + [embed.tabIndex: IDL set to 2147483647] + expected: FAIL + + [embed.tabIndex: IDL set to -2147483648] + expected: FAIL + + [embed.src: setAttribute() to ""] + expected: FAIL + + [embed.src: setAttribute() to " foo "] + expected: FAIL + + [embed.src: setAttribute() to "http://site.example/"] + expected: FAIL + + [embed.src: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [embed.src: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [embed.src: setAttribute() to undefined] + expected: FAIL + + [embed.src: setAttribute() to 7] + expected: FAIL + + [embed.src: setAttribute() to 1.5] + expected: FAIL + + [embed.src: setAttribute() to true] + expected: FAIL + + [embed.src: setAttribute() to false] + expected: FAIL + + [embed.src: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.src: setAttribute() to NaN] + expected: FAIL + + [embed.src: setAttribute() to Infinity] + expected: FAIL + + [embed.src: setAttribute() to -Infinity] + expected: FAIL + + [embed.src: setAttribute() to "\\0"] + expected: FAIL + + [embed.src: setAttribute() to null] + expected: FAIL + + [embed.src: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.src: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.src: IDL set to ""] + expected: FAIL + + [embed.src: IDL set to " foo "] + expected: FAIL + + [embed.src: IDL set to "http://site.example/"] + expected: FAIL + + [embed.src: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [embed.src: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [embed.src: IDL set to undefined] + expected: FAIL + + [embed.src: IDL set to 7] + expected: FAIL + + [embed.src: IDL set to 1.5] + expected: FAIL + + [embed.src: IDL set to true] + expected: FAIL + + [embed.src: IDL set to false] + expected: FAIL + + [embed.src: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.src: IDL set to NaN] + expected: FAIL + + [embed.src: IDL set to Infinity] + expected: FAIL + + [embed.src: IDL set to -Infinity] + expected: FAIL + + [embed.src: IDL set to "\\0"] + expected: FAIL + + [embed.src: IDL set to null] + expected: FAIL + + [embed.src: IDL set to object "test-toString"] + expected: FAIL + + [embed.src: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.type: setAttribute() to ""] + expected: FAIL + + [embed.type: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.type: setAttribute() to undefined] + expected: FAIL + + [embed.type: setAttribute() to 7] + expected: FAIL + + [embed.type: setAttribute() to 1.5] + expected: FAIL + + [embed.type: setAttribute() to true] + expected: FAIL + + [embed.type: setAttribute() to false] + expected: FAIL + + [embed.type: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.type: setAttribute() to NaN] + expected: FAIL + + [embed.type: setAttribute() to Infinity] + expected: FAIL + + [embed.type: setAttribute() to -Infinity] + expected: FAIL + + [embed.type: setAttribute() to "\\0"] + expected: FAIL + + [embed.type: setAttribute() to null] + expected: FAIL + + [embed.type: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.type: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.type: IDL set to ""] + expected: FAIL + + [embed.type: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.type: IDL set to undefined] + expected: FAIL + + [embed.type: IDL set to 7] + expected: FAIL + + [embed.type: IDL set to 1.5] + expected: FAIL + + [embed.type: IDL set to true] + expected: FAIL + + [embed.type: IDL set to false] + expected: FAIL + + [embed.type: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.type: IDL set to NaN] + expected: FAIL + + [embed.type: IDL set to Infinity] + expected: FAIL + + [embed.type: IDL set to -Infinity] + expected: FAIL + + [embed.type: IDL set to "\\0"] + expected: FAIL + + [embed.type: IDL set to null] + expected: FAIL + + [embed.type: IDL set to object "test-toString"] + expected: FAIL + + [embed.type: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.width: setAttribute() to ""] + expected: FAIL + + [embed.width: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.width: setAttribute() to undefined] + expected: FAIL + + [embed.width: setAttribute() to 7] + expected: FAIL + + [embed.width: setAttribute() to 1.5] + expected: FAIL + + [embed.width: setAttribute() to true] + expected: FAIL + + [embed.width: setAttribute() to false] + expected: FAIL + + [embed.width: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.width: setAttribute() to NaN] + expected: FAIL + + [embed.width: setAttribute() to Infinity] + expected: FAIL + + [embed.width: setAttribute() to -Infinity] + expected: FAIL + + [embed.width: setAttribute() to "\\0"] + expected: FAIL + + [embed.width: setAttribute() to null] + expected: FAIL + + [embed.width: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.width: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.width: IDL set to ""] + expected: FAIL + + [embed.width: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.width: IDL set to undefined] + expected: FAIL + + [embed.width: IDL set to 7] + expected: FAIL + + [embed.width: IDL set to 1.5] + expected: FAIL + + [embed.width: IDL set to true] + expected: FAIL + + [embed.width: IDL set to false] + expected: FAIL + + [embed.width: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.width: IDL set to NaN] + expected: FAIL + + [embed.width: IDL set to Infinity] + expected: FAIL + + [embed.width: IDL set to -Infinity] + expected: FAIL + + [embed.width: IDL set to "\\0"] + expected: FAIL + + [embed.width: IDL set to null] + expected: FAIL + + [embed.width: IDL set to object "test-toString"] + expected: FAIL + + [embed.width: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.height: setAttribute() to ""] + expected: FAIL + + [embed.height: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.height: setAttribute() to undefined] + expected: FAIL + + [embed.height: setAttribute() to 7] + expected: FAIL + + [embed.height: setAttribute() to 1.5] + expected: FAIL + + [embed.height: setAttribute() to true] + expected: FAIL + + [embed.height: setAttribute() to false] + expected: FAIL + + [embed.height: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.height: setAttribute() to NaN] + expected: FAIL + + [embed.height: setAttribute() to Infinity] + expected: FAIL + + [embed.height: setAttribute() to -Infinity] + expected: FAIL + + [embed.height: setAttribute() to "\\0"] + expected: FAIL + + [embed.height: setAttribute() to null] + expected: FAIL + + [embed.height: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.height: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.height: IDL set to ""] + expected: FAIL + + [embed.height: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.height: IDL set to undefined] + expected: FAIL + + [embed.height: IDL set to 7] + expected: FAIL + + [embed.height: IDL set to 1.5] + expected: FAIL + + [embed.height: IDL set to true] + expected: FAIL + + [embed.height: IDL set to false] + expected: FAIL + + [embed.height: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.height: IDL set to NaN] + expected: FAIL + + [embed.height: IDL set to Infinity] + expected: FAIL + + [embed.height: IDL set to -Infinity] + expected: FAIL + + [embed.height: IDL set to "\\0"] + expected: FAIL + + [embed.height: IDL set to null] + expected: FAIL + + [embed.height: IDL set to object "test-toString"] + expected: FAIL + + [embed.height: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.align: setAttribute() to ""] + expected: FAIL + + [embed.align: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.align: setAttribute() to undefined] + expected: FAIL + + [embed.align: setAttribute() to 7] + expected: FAIL + + [embed.align: setAttribute() to 1.5] + expected: FAIL + + [embed.align: setAttribute() to true] + expected: FAIL + + [embed.align: setAttribute() to false] + expected: FAIL + + [embed.align: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.align: setAttribute() to NaN] + expected: FAIL + + [embed.align: setAttribute() to Infinity] + expected: FAIL + + [embed.align: setAttribute() to -Infinity] + expected: FAIL + + [embed.align: setAttribute() to "\\0"] + expected: FAIL + + [embed.align: setAttribute() to null] + expected: FAIL + + [embed.align: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.align: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.align: IDL set to ""] + expected: FAIL + + [embed.align: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.align: IDL set to undefined] + expected: FAIL + + [embed.align: IDL set to 7] + expected: FAIL + + [embed.align: IDL set to 1.5] + expected: FAIL + + [embed.align: IDL set to true] + expected: FAIL + + [embed.align: IDL set to false] + expected: FAIL + + [embed.align: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.align: IDL set to NaN] + expected: FAIL + + [embed.align: IDL set to Infinity] + expected: FAIL + + [embed.align: IDL set to -Infinity] + expected: FAIL + + [embed.align: IDL set to "\\0"] + expected: FAIL + + [embed.align: IDL set to null] + expected: FAIL + + [embed.align: IDL set to object "test-toString"] + expected: FAIL + + [embed.align: IDL set to object "test-valueOf"] + expected: FAIL + + [embed.name: setAttribute() to ""] + expected: FAIL + + [embed.name: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.name: setAttribute() to undefined] + expected: FAIL + + [embed.name: setAttribute() to 7] + expected: FAIL + + [embed.name: setAttribute() to 1.5] + expected: FAIL + + [embed.name: setAttribute() to true] + expected: FAIL + + [embed.name: setAttribute() to false] + expected: FAIL + + [embed.name: setAttribute() to object "[object Object\]"] + expected: FAIL + + [embed.name: setAttribute() to NaN] + expected: FAIL + + [embed.name: setAttribute() to Infinity] + expected: FAIL + + [embed.name: setAttribute() to -Infinity] + expected: FAIL + + [embed.name: setAttribute() to "\\0"] + expected: FAIL + + [embed.name: setAttribute() to null] + expected: FAIL + + [embed.name: setAttribute() to object "test-toString"] + expected: FAIL + + [embed.name: setAttribute() to object "test-valueOf"] + expected: FAIL + + [embed.name: IDL set to ""] + expected: FAIL + + [embed.name: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [embed.name: IDL set to undefined] + expected: FAIL + + [embed.name: IDL set to 7] + expected: FAIL + + [embed.name: IDL set to 1.5] + expected: FAIL + + [embed.name: IDL set to true] + expected: FAIL + + [embed.name: IDL set to false] + expected: FAIL + + [embed.name: IDL set to object "[object Object\]"] + expected: FAIL + + [embed.name: IDL set to NaN] + expected: FAIL + + [embed.name: IDL set to Infinity] + expected: FAIL + + [embed.name: IDL set to -Infinity] + expected: FAIL + + [embed.name: IDL set to "\\0"] + expected: FAIL + + [embed.name: IDL set to null] + expected: FAIL + + [embed.name: IDL set to object "test-toString"] + expected: FAIL + + [embed.name: IDL set to object "test-valueOf"] + expected: FAIL + + [object.dir: setAttribute() to ""] + expected: FAIL + + [object.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.dir: setAttribute() to undefined] + expected: FAIL + + [object.dir: setAttribute() to 7] + expected: FAIL + + [object.dir: setAttribute() to 1.5] + expected: FAIL + + [object.dir: setAttribute() to true] + expected: FAIL + + [object.dir: setAttribute() to false] + expected: FAIL + + [object.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.dir: setAttribute() to NaN] + expected: FAIL + + [object.dir: setAttribute() to Infinity] + expected: FAIL + + [object.dir: setAttribute() to -Infinity] + expected: FAIL + + [object.dir: setAttribute() to "\\0"] + expected: FAIL + + [object.dir: setAttribute() to null] + expected: FAIL + + [object.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [object.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.dir: setAttribute() to "ltr"] + expected: FAIL + + [object.dir: setAttribute() to "xltr"] + expected: FAIL + + [object.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [object.dir: setAttribute() to "tr"] + expected: FAIL + + [object.dir: setAttribute() to "LTR"] + expected: FAIL + + [object.dir: setAttribute() to "rtl"] + expected: FAIL + + [object.dir: setAttribute() to "xrtl"] + expected: FAIL + + [object.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [object.dir: setAttribute() to "tl"] + expected: FAIL + + [object.dir: setAttribute() to "RTL"] + expected: FAIL + + [object.dir: setAttribute() to "auto"] + expected: FAIL + + [object.dir: setAttribute() to "xauto"] + expected: FAIL + + [object.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [object.dir: setAttribute() to "uto"] + expected: FAIL + + [object.dir: setAttribute() to "AUTO"] + expected: FAIL + + [object.dir: IDL set to ""] + expected: FAIL + + [object.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.dir: IDL set to undefined] + expected: FAIL + + [object.dir: IDL set to 7] + expected: FAIL + + [object.dir: IDL set to 1.5] + expected: FAIL + + [object.dir: IDL set to true] + expected: FAIL + + [object.dir: IDL set to false] + expected: FAIL + + [object.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [object.dir: IDL set to NaN] + expected: FAIL + + [object.dir: IDL set to Infinity] + expected: FAIL + + [object.dir: IDL set to -Infinity] + expected: FAIL + + [object.dir: IDL set to "\\0"] + expected: FAIL + + [object.dir: IDL set to null] + expected: FAIL + + [object.dir: IDL set to object "test-toString"] + expected: FAIL + + [object.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [object.dir: IDL set to "ltr"] + expected: FAIL + + [object.dir: IDL set to "xltr"] + expected: FAIL + + [object.dir: IDL set to "ltr\\0"] + expected: FAIL + + [object.dir: IDL set to "tr"] + expected: FAIL + + [object.dir: IDL set to "LTR"] + expected: FAIL + + [object.dir: IDL set to "rtl"] + expected: FAIL + + [object.dir: IDL set to "xrtl"] + expected: FAIL + + [object.dir: IDL set to "rtl\\0"] + expected: FAIL + + [object.dir: IDL set to "tl"] + expected: FAIL + + [object.dir: IDL set to "RTL"] + expected: FAIL + + [object.dir: IDL set to "auto"] + expected: FAIL + + [object.dir: IDL set to "xauto"] + expected: FAIL + + [object.dir: IDL set to "auto\\0"] + expected: FAIL + + [object.dir: IDL set to "uto"] + expected: FAIL + + [object.dir: IDL set to "AUTO"] + expected: FAIL + + [object.accessKey: setAttribute() to ""] + expected: FAIL + + [object.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.accessKey: setAttribute() to undefined] + expected: FAIL + + [object.accessKey: setAttribute() to 7] + expected: FAIL + + [object.accessKey: setAttribute() to 1.5] + expected: FAIL + + [object.accessKey: setAttribute() to true] + expected: FAIL + + [object.accessKey: setAttribute() to false] + expected: FAIL + + [object.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.accessKey: setAttribute() to NaN] + expected: FAIL + + [object.accessKey: setAttribute() to Infinity] + expected: FAIL + + [object.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [object.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [object.accessKey: setAttribute() to null] + expected: FAIL + + [object.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [object.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.accessKey: IDL set to ""] + expected: FAIL + + [object.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.accessKey: IDL set to undefined] + expected: FAIL + + [object.accessKey: IDL set to 7] + expected: FAIL + + [object.accessKey: IDL set to 1.5] + expected: FAIL + + [object.accessKey: IDL set to true] + expected: FAIL + + [object.accessKey: IDL set to false] + expected: FAIL + + [object.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [object.accessKey: IDL set to NaN] + expected: FAIL + + [object.accessKey: IDL set to Infinity] + expected: FAIL + + [object.accessKey: IDL set to -Infinity] + expected: FAIL + + [object.accessKey: IDL set to "\\0"] + expected: FAIL + + [object.accessKey: IDL set to null] + expected: FAIL + + [object.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [object.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [object.tabIndex: setAttribute() to -36] + expected: FAIL + + [object.tabIndex: setAttribute() to -1] + expected: FAIL + + [object.tabIndex: setAttribute() to 0] + expected: FAIL + + [object.tabIndex: setAttribute() to 1] + expected: FAIL + + [object.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [object.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [object.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [object.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [object.tabIndex: setAttribute() to "0"] + expected: FAIL + + [object.tabIndex: setAttribute() to "1"] + expected: FAIL + + [object.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [object.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [object.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [object.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [object.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [object.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [object.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [object.tabIndex: IDL set to -36] + expected: FAIL + + [object.tabIndex: IDL set to -1] + expected: FAIL + + [object.tabIndex: IDL set to 0] + expected: FAIL + + [object.tabIndex: IDL set to 1] + expected: FAIL + + [object.tabIndex: IDL set to 2147483647] + expected: FAIL + + [object.tabIndex: IDL set to -2147483648] + expected: FAIL + + [object.data: setAttribute() to ""] + expected: FAIL + + [object.data: setAttribute() to " foo "] + expected: FAIL + + [object.data: setAttribute() to "http://site.example/"] + expected: FAIL + + [object.data: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [object.data: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [object.data: setAttribute() to undefined] + expected: FAIL + + [object.data: setAttribute() to 7] + expected: FAIL + + [object.data: setAttribute() to 1.5] + expected: FAIL + + [object.data: setAttribute() to true] + expected: FAIL + + [object.data: setAttribute() to false] + expected: FAIL + + [object.data: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.data: setAttribute() to NaN] + expected: FAIL + + [object.data: setAttribute() to Infinity] + expected: FAIL + + [object.data: setAttribute() to -Infinity] + expected: FAIL + + [object.data: setAttribute() to "\\0"] + expected: FAIL + + [object.data: setAttribute() to null] + expected: FAIL + + [object.data: setAttribute() to object "test-toString"] + expected: FAIL + + [object.data: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.data: IDL set to ""] + expected: FAIL + + [object.data: IDL set to " foo "] + expected: FAIL + + [object.data: IDL set to "http://site.example/"] + expected: FAIL + + [object.data: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [object.data: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [object.data: IDL set to undefined] + expected: FAIL + + [object.data: IDL set to 7] + expected: FAIL + + [object.data: IDL set to 1.5] + expected: FAIL + + [object.data: IDL set to true] + expected: FAIL + + [object.data: IDL set to false] + expected: FAIL + + [object.data: IDL set to object "[object Object\]"] + expected: FAIL + + [object.data: IDL set to NaN] + expected: FAIL + + [object.data: IDL set to Infinity] + expected: FAIL + + [object.data: IDL set to -Infinity] + expected: FAIL + + [object.data: IDL set to "\\0"] + expected: FAIL + + [object.data: IDL set to null] + expected: FAIL + + [object.data: IDL set to object "test-toString"] + expected: FAIL + + [object.data: IDL set to object "test-valueOf"] + expected: FAIL + + [object.typeMustMatch: setAttribute() to ""] + expected: FAIL + + [object.typeMustMatch: setAttribute() to " foo "] + expected: FAIL + + [object.typeMustMatch: setAttribute() to undefined] + expected: FAIL + + [object.typeMustMatch: setAttribute() to null] + expected: FAIL + + [object.typeMustMatch: setAttribute() to 7] + expected: FAIL + + [object.typeMustMatch: setAttribute() to 1.5] + expected: FAIL + + [object.typeMustMatch: setAttribute() to true] + expected: FAIL + + [object.typeMustMatch: setAttribute() to false] + expected: FAIL + + [object.typeMustMatch: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.typeMustMatch: setAttribute() to NaN] + expected: FAIL + + [object.typeMustMatch: setAttribute() to Infinity] + expected: FAIL + + [object.typeMustMatch: setAttribute() to -Infinity] + expected: FAIL + + [object.typeMustMatch: setAttribute() to "\\0"] + expected: FAIL + + [object.typeMustMatch: setAttribute() to object "test-toString"] + expected: FAIL + + [object.typeMustMatch: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.typeMustMatch: setAttribute() to "typeMustMatch"] + expected: FAIL + + [object.typeMustMatch: IDL set to ""] + expected: FAIL + + [object.typeMustMatch: IDL set to " foo "] + expected: FAIL + + [object.typeMustMatch: IDL set to undefined] + expected: FAIL + + [object.typeMustMatch: IDL set to null] + expected: FAIL + + [object.typeMustMatch: IDL set to 7] + expected: FAIL + + [object.typeMustMatch: IDL set to 1.5] + expected: FAIL + + [object.typeMustMatch: IDL set to false] + expected: FAIL + + [object.typeMustMatch: IDL set to object "[object Object\]"] + expected: FAIL + + [object.typeMustMatch: IDL set to NaN] + expected: FAIL + + [object.typeMustMatch: IDL set to Infinity] + expected: FAIL + + [object.typeMustMatch: IDL set to -Infinity] + expected: FAIL + + [object.typeMustMatch: IDL set to "\\0"] + expected: FAIL + + [object.typeMustMatch: IDL set to object "test-toString"] + expected: FAIL + + [object.typeMustMatch: IDL set to object "test-valueOf"] + expected: FAIL + + [object.name: setAttribute() to ""] + expected: FAIL + + [object.name: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.name: setAttribute() to undefined] + expected: FAIL + + [object.name: setAttribute() to 7] + expected: FAIL + + [object.name: setAttribute() to 1.5] + expected: FAIL + + [object.name: setAttribute() to true] + expected: FAIL + + [object.name: setAttribute() to false] + expected: FAIL + + [object.name: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.name: setAttribute() to NaN] + expected: FAIL + + [object.name: setAttribute() to Infinity] + expected: FAIL + + [object.name: setAttribute() to -Infinity] + expected: FAIL + + [object.name: setAttribute() to "\\0"] + expected: FAIL + + [object.name: setAttribute() to null] + expected: FAIL + + [object.name: setAttribute() to object "test-toString"] + expected: FAIL + + [object.name: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.name: IDL set to ""] + expected: FAIL + + [object.name: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.name: IDL set to undefined] + expected: FAIL + + [object.name: IDL set to 7] + expected: FAIL + + [object.name: IDL set to 1.5] + expected: FAIL + + [object.name: IDL set to true] + expected: FAIL + + [object.name: IDL set to false] + expected: FAIL + + [object.name: IDL set to object "[object Object\]"] + expected: FAIL + + [object.name: IDL set to NaN] + expected: FAIL + + [object.name: IDL set to Infinity] + expected: FAIL + + [object.name: IDL set to -Infinity] + expected: FAIL + + [object.name: IDL set to "\\0"] + expected: FAIL + + [object.name: IDL set to null] + expected: FAIL + + [object.name: IDL set to object "test-toString"] + expected: FAIL + + [object.name: IDL set to object "test-valueOf"] + expected: FAIL + + [object.useMap: setAttribute() to ""] + expected: FAIL + + [object.useMap: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.useMap: setAttribute() to undefined] + expected: FAIL + + [object.useMap: setAttribute() to 7] + expected: FAIL + + [object.useMap: setAttribute() to 1.5] + expected: FAIL + + [object.useMap: setAttribute() to true] + expected: FAIL + + [object.useMap: setAttribute() to false] + expected: FAIL + + [object.useMap: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.useMap: setAttribute() to NaN] + expected: FAIL + + [object.useMap: setAttribute() to Infinity] + expected: FAIL + + [object.useMap: setAttribute() to -Infinity] + expected: FAIL + + [object.useMap: setAttribute() to "\\0"] + expected: FAIL + + [object.useMap: setAttribute() to null] + expected: FAIL + + [object.useMap: setAttribute() to object "test-toString"] + expected: FAIL + + [object.useMap: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.useMap: IDL set to ""] + expected: FAIL + + [object.useMap: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.useMap: IDL set to undefined] + expected: FAIL + + [object.useMap: IDL set to 7] + expected: FAIL + + [object.useMap: IDL set to 1.5] + expected: FAIL + + [object.useMap: IDL set to true] + expected: FAIL + + [object.useMap: IDL set to false] + expected: FAIL + + [object.useMap: IDL set to object "[object Object\]"] + expected: FAIL + + [object.useMap: IDL set to NaN] + expected: FAIL + + [object.useMap: IDL set to Infinity] + expected: FAIL + + [object.useMap: IDL set to -Infinity] + expected: FAIL + + [object.useMap: IDL set to "\\0"] + expected: FAIL + + [object.useMap: IDL set to null] + expected: FAIL + + [object.useMap: IDL set to object "test-toString"] + expected: FAIL + + [object.useMap: IDL set to object "test-valueOf"] + expected: FAIL + + [object.width: setAttribute() to ""] + expected: FAIL + + [object.width: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.width: setAttribute() to undefined] + expected: FAIL + + [object.width: setAttribute() to 7] + expected: FAIL + + [object.width: setAttribute() to 1.5] + expected: FAIL + + [object.width: setAttribute() to true] + expected: FAIL + + [object.width: setAttribute() to false] + expected: FAIL + + [object.width: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.width: setAttribute() to NaN] + expected: FAIL + + [object.width: setAttribute() to Infinity] + expected: FAIL + + [object.width: setAttribute() to -Infinity] + expected: FAIL + + [object.width: setAttribute() to "\\0"] + expected: FAIL + + [object.width: setAttribute() to null] + expected: FAIL + + [object.width: setAttribute() to object "test-toString"] + expected: FAIL + + [object.width: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.width: IDL set to ""] + expected: FAIL + + [object.width: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.width: IDL set to undefined] + expected: FAIL + + [object.width: IDL set to 7] + expected: FAIL + + [object.width: IDL set to 1.5] + expected: FAIL + + [object.width: IDL set to true] + expected: FAIL + + [object.width: IDL set to false] + expected: FAIL + + [object.width: IDL set to object "[object Object\]"] + expected: FAIL + + [object.width: IDL set to NaN] + expected: FAIL + + [object.width: IDL set to Infinity] + expected: FAIL + + [object.width: IDL set to -Infinity] + expected: FAIL + + [object.width: IDL set to "\\0"] + expected: FAIL + + [object.width: IDL set to null] + expected: FAIL + + [object.width: IDL set to object "test-toString"] + expected: FAIL + + [object.width: IDL set to object "test-valueOf"] + expected: FAIL + + [object.height: setAttribute() to ""] + expected: FAIL + + [object.height: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.height: setAttribute() to undefined] + expected: FAIL + + [object.height: setAttribute() to 7] + expected: FAIL + + [object.height: setAttribute() to 1.5] + expected: FAIL + + [object.height: setAttribute() to true] + expected: FAIL + + [object.height: setAttribute() to false] + expected: FAIL + + [object.height: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.height: setAttribute() to NaN] + expected: FAIL + + [object.height: setAttribute() to Infinity] + expected: FAIL + + [object.height: setAttribute() to -Infinity] + expected: FAIL + + [object.height: setAttribute() to "\\0"] + expected: FAIL + + [object.height: setAttribute() to null] + expected: FAIL + + [object.height: setAttribute() to object "test-toString"] + expected: FAIL + + [object.height: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.height: IDL set to ""] + expected: FAIL + + [object.height: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.height: IDL set to undefined] + expected: FAIL + + [object.height: IDL set to 7] + expected: FAIL + + [object.height: IDL set to 1.5] + expected: FAIL + + [object.height: IDL set to true] + expected: FAIL + + [object.height: IDL set to false] + expected: FAIL + + [object.height: IDL set to object "[object Object\]"] + expected: FAIL + + [object.height: IDL set to NaN] + expected: FAIL + + [object.height: IDL set to Infinity] + expected: FAIL + + [object.height: IDL set to -Infinity] + expected: FAIL + + [object.height: IDL set to "\\0"] + expected: FAIL + + [object.height: IDL set to null] + expected: FAIL + + [object.height: IDL set to object "test-toString"] + expected: FAIL + + [object.height: IDL set to object "test-valueOf"] + expected: FAIL + + [object.align: setAttribute() to ""] + expected: FAIL + + [object.align: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.align: setAttribute() to undefined] + expected: FAIL + + [object.align: setAttribute() to 7] + expected: FAIL + + [object.align: setAttribute() to 1.5] + expected: FAIL + + [object.align: setAttribute() to true] + expected: FAIL + + [object.align: setAttribute() to false] + expected: FAIL + + [object.align: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.align: setAttribute() to NaN] + expected: FAIL + + [object.align: setAttribute() to Infinity] + expected: FAIL + + [object.align: setAttribute() to -Infinity] + expected: FAIL + + [object.align: setAttribute() to "\\0"] + expected: FAIL + + [object.align: setAttribute() to null] + expected: FAIL + + [object.align: setAttribute() to object "test-toString"] + expected: FAIL + + [object.align: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.align: IDL set to ""] + expected: FAIL + + [object.align: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.align: IDL set to undefined] + expected: FAIL + + [object.align: IDL set to 7] + expected: FAIL + + [object.align: IDL set to 1.5] + expected: FAIL + + [object.align: IDL set to true] + expected: FAIL + + [object.align: IDL set to false] + expected: FAIL + + [object.align: IDL set to object "[object Object\]"] + expected: FAIL + + [object.align: IDL set to NaN] + expected: FAIL + + [object.align: IDL set to Infinity] + expected: FAIL + + [object.align: IDL set to -Infinity] + expected: FAIL + + [object.align: IDL set to "\\0"] + expected: FAIL + + [object.align: IDL set to null] + expected: FAIL + + [object.align: IDL set to object "test-toString"] + expected: FAIL + + [object.align: IDL set to object "test-valueOf"] + expected: FAIL + + [object.archive: setAttribute() to ""] + expected: FAIL + + [object.archive: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.archive: setAttribute() to undefined] + expected: FAIL + + [object.archive: setAttribute() to 7] + expected: FAIL + + [object.archive: setAttribute() to 1.5] + expected: FAIL + + [object.archive: setAttribute() to true] + expected: FAIL + + [object.archive: setAttribute() to false] + expected: FAIL + + [object.archive: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.archive: setAttribute() to NaN] + expected: FAIL + + [object.archive: setAttribute() to Infinity] + expected: FAIL + + [object.archive: setAttribute() to -Infinity] + expected: FAIL + + [object.archive: setAttribute() to "\\0"] + expected: FAIL + + [object.archive: setAttribute() to null] + expected: FAIL + + [object.archive: setAttribute() to object "test-toString"] + expected: FAIL + + [object.archive: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.archive: IDL set to ""] + expected: FAIL + + [object.archive: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.archive: IDL set to undefined] + expected: FAIL + + [object.archive: IDL set to 7] + expected: FAIL + + [object.archive: IDL set to 1.5] + expected: FAIL + + [object.archive: IDL set to true] + expected: FAIL + + [object.archive: IDL set to false] + expected: FAIL + + [object.archive: IDL set to object "[object Object\]"] + expected: FAIL + + [object.archive: IDL set to NaN] + expected: FAIL + + [object.archive: IDL set to Infinity] + expected: FAIL + + [object.archive: IDL set to -Infinity] + expected: FAIL + + [object.archive: IDL set to "\\0"] + expected: FAIL + + [object.archive: IDL set to null] + expected: FAIL + + [object.archive: IDL set to object "test-toString"] + expected: FAIL + + [object.archive: IDL set to object "test-valueOf"] + expected: FAIL + + [object.code: setAttribute() to ""] + expected: FAIL + + [object.code: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.code: setAttribute() to undefined] + expected: FAIL + + [object.code: setAttribute() to 7] + expected: FAIL + + [object.code: setAttribute() to 1.5] + expected: FAIL + + [object.code: setAttribute() to true] + expected: FAIL + + [object.code: setAttribute() to false] + expected: FAIL + + [object.code: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.code: setAttribute() to NaN] + expected: FAIL + + [object.code: setAttribute() to Infinity] + expected: FAIL + + [object.code: setAttribute() to -Infinity] + expected: FAIL + + [object.code: setAttribute() to "\\0"] + expected: FAIL + + [object.code: setAttribute() to null] + expected: FAIL + + [object.code: setAttribute() to object "test-toString"] + expected: FAIL + + [object.code: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.code: IDL set to ""] + expected: FAIL + + [object.code: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.code: IDL set to undefined] + expected: FAIL + + [object.code: IDL set to 7] + expected: FAIL + + [object.code: IDL set to 1.5] + expected: FAIL + + [object.code: IDL set to true] + expected: FAIL + + [object.code: IDL set to false] + expected: FAIL + + [object.code: IDL set to object "[object Object\]"] + expected: FAIL + + [object.code: IDL set to NaN] + expected: FAIL + + [object.code: IDL set to Infinity] + expected: FAIL + + [object.code: IDL set to -Infinity] + expected: FAIL + + [object.code: IDL set to "\\0"] + expected: FAIL + + [object.code: IDL set to null] + expected: FAIL + + [object.code: IDL set to object "test-toString"] + expected: FAIL + + [object.code: IDL set to object "test-valueOf"] + expected: FAIL + + [object.declare: setAttribute() to ""] + expected: FAIL + + [object.declare: setAttribute() to " foo "] + expected: FAIL + + [object.declare: setAttribute() to undefined] + expected: FAIL + + [object.declare: setAttribute() to null] + expected: FAIL + + [object.declare: setAttribute() to 7] + expected: FAIL + + [object.declare: setAttribute() to 1.5] + expected: FAIL + + [object.declare: setAttribute() to true] + expected: FAIL + + [object.declare: setAttribute() to false] + expected: FAIL + + [object.declare: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.declare: setAttribute() to NaN] + expected: FAIL + + [object.declare: setAttribute() to Infinity] + expected: FAIL + + [object.declare: setAttribute() to -Infinity] + expected: FAIL + + [object.declare: setAttribute() to "\\0"] + expected: FAIL + + [object.declare: setAttribute() to object "test-toString"] + expected: FAIL + + [object.declare: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.declare: setAttribute() to "declare"] + expected: FAIL + + [object.declare: IDL set to ""] + expected: FAIL + + [object.declare: IDL set to " foo "] + expected: FAIL + + [object.declare: IDL set to undefined] + expected: FAIL + + [object.declare: IDL set to null] + expected: FAIL + + [object.declare: IDL set to 7] + expected: FAIL + + [object.declare: IDL set to 1.5] + expected: FAIL + + [object.declare: IDL set to false] + expected: FAIL + + [object.declare: IDL set to object "[object Object\]"] + expected: FAIL + + [object.declare: IDL set to NaN] + expected: FAIL + + [object.declare: IDL set to Infinity] + expected: FAIL + + [object.declare: IDL set to -Infinity] + expected: FAIL + + [object.declare: IDL set to "\\0"] + expected: FAIL + + [object.declare: IDL set to object "test-toString"] + expected: FAIL + + [object.declare: IDL set to object "test-valueOf"] + expected: FAIL + + [object.hspace: setAttribute() to -2147483649] + expected: FAIL + + [object.hspace: setAttribute() to -2147483648] + expected: FAIL + + [object.hspace: setAttribute() to -36] + expected: FAIL + + [object.hspace: setAttribute() to -1] + expected: FAIL + + [object.hspace: setAttribute() to 0] + expected: FAIL + + [object.hspace: setAttribute() to 1] + expected: FAIL + + [object.hspace: setAttribute() to 257] + expected: FAIL + + [object.hspace: setAttribute() to 2147483647] + expected: FAIL + + [object.hspace: setAttribute() to 2147483648] + expected: FAIL + + [object.hspace: setAttribute() to 4294967295] + expected: FAIL + + [object.hspace: setAttribute() to 4294967296] + expected: FAIL + + [object.hspace: setAttribute() to ""] + expected: FAIL + + [object.hspace: setAttribute() to "-1"] + expected: FAIL + + [object.hspace: setAttribute() to "-0"] + expected: FAIL + + [object.hspace: setAttribute() to "0"] + expected: FAIL + + [object.hspace: setAttribute() to "1"] + expected: FAIL + + [object.hspace: setAttribute() to "\\t7"] + expected: FAIL + + [object.hspace: setAttribute() to "\\v7"] + expected: FAIL + + [object.hspace: setAttribute() to "\\f7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to "7"] + expected: FAIL + + [object.hspace: setAttribute() to "\\n7"] + expected: FAIL + + [object.hspace: setAttribute() to "\\r7"] + expected: FAIL + + [object.hspace: setAttribute() to "
7"] + expected: FAIL + + [object.hspace: setAttribute() to "
7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to "᠎7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " 7"] + expected: FAIL + + [object.hspace: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.hspace: setAttribute() to undefined] + expected: FAIL + + [object.hspace: setAttribute() to 1.5] + expected: FAIL + + [object.hspace: setAttribute() to true] + expected: FAIL + + [object.hspace: setAttribute() to false] + expected: FAIL + + [object.hspace: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.hspace: setAttribute() to NaN] + expected: FAIL + + [object.hspace: setAttribute() to Infinity] + expected: FAIL + + [object.hspace: setAttribute() to -Infinity] + expected: FAIL + + [object.hspace: setAttribute() to "\\0"] + expected: FAIL + + [object.hspace: setAttribute() to object "2"] + expected: FAIL + + [object.hspace: setAttribute() to object "3"] + expected: FAIL + + [object.hspace: IDL set to 0] + expected: FAIL + + [object.hspace: IDL set to 1] + expected: FAIL + + [object.hspace: IDL set to 257] + expected: FAIL + + [object.hspace: IDL set to 2147483647] + expected: FAIL + + [object.hspace: IDL set to "-0"] + expected: FAIL + + [object.hspace: IDL set to 2147483648] + expected: FAIL + + [object.hspace: IDL set to 4294967295] + expected: FAIL + + [object.standby: setAttribute() to ""] + expected: FAIL + + [object.standby: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.standby: setAttribute() to undefined] + expected: FAIL + + [object.standby: setAttribute() to 7] + expected: FAIL + + [object.standby: setAttribute() to 1.5] + expected: FAIL + + [object.standby: setAttribute() to true] + expected: FAIL + + [object.standby: setAttribute() to false] + expected: FAIL + + [object.standby: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.standby: setAttribute() to NaN] + expected: FAIL + + [object.standby: setAttribute() to Infinity] + expected: FAIL + + [object.standby: setAttribute() to -Infinity] + expected: FAIL + + [object.standby: setAttribute() to "\\0"] + expected: FAIL + + [object.standby: setAttribute() to null] + expected: FAIL + + [object.standby: setAttribute() to object "test-toString"] + expected: FAIL + + [object.standby: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.standby: IDL set to ""] + expected: FAIL + + [object.standby: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.standby: IDL set to undefined] + expected: FAIL + + [object.standby: IDL set to 7] + expected: FAIL + + [object.standby: IDL set to 1.5] + expected: FAIL + + [object.standby: IDL set to true] + expected: FAIL + + [object.standby: IDL set to false] + expected: FAIL + + [object.standby: IDL set to object "[object Object\]"] + expected: FAIL + + [object.standby: IDL set to NaN] + expected: FAIL + + [object.standby: IDL set to Infinity] + expected: FAIL + + [object.standby: IDL set to -Infinity] + expected: FAIL + + [object.standby: IDL set to "\\0"] + expected: FAIL + + [object.standby: IDL set to null] + expected: FAIL + + [object.standby: IDL set to object "test-toString"] + expected: FAIL + + [object.standby: IDL set to object "test-valueOf"] + expected: FAIL + + [object.vspace: setAttribute() to -2147483649] + expected: FAIL + + [object.vspace: setAttribute() to -2147483648] + expected: FAIL + + [object.vspace: setAttribute() to -36] + expected: FAIL + + [object.vspace: setAttribute() to -1] + expected: FAIL + + [object.vspace: setAttribute() to 0] + expected: FAIL + + [object.vspace: setAttribute() to 1] + expected: FAIL + + [object.vspace: setAttribute() to 257] + expected: FAIL + + [object.vspace: setAttribute() to 2147483647] + expected: FAIL + + [object.vspace: setAttribute() to 2147483648] + expected: FAIL + + [object.vspace: setAttribute() to 4294967295] + expected: FAIL + + [object.vspace: setAttribute() to 4294967296] + expected: FAIL + + [object.vspace: setAttribute() to ""] + expected: FAIL + + [object.vspace: setAttribute() to "-1"] + expected: FAIL + + [object.vspace: setAttribute() to "-0"] + expected: FAIL + + [object.vspace: setAttribute() to "0"] + expected: FAIL + + [object.vspace: setAttribute() to "1"] + expected: FAIL + + [object.vspace: setAttribute() to "\\t7"] + expected: FAIL + + [object.vspace: setAttribute() to "\\v7"] + expected: FAIL + + [object.vspace: setAttribute() to "\\f7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to "7"] + expected: FAIL + + [object.vspace: setAttribute() to "\\n7"] + expected: FAIL + + [object.vspace: setAttribute() to "\\r7"] + expected: FAIL + + [object.vspace: setAttribute() to "
7"] + expected: FAIL + + [object.vspace: setAttribute() to "
7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to "᠎7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " 7"] + expected: FAIL + + [object.vspace: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.vspace: setAttribute() to undefined] + expected: FAIL + + [object.vspace: setAttribute() to 1.5] + expected: FAIL + + [object.vspace: setAttribute() to true] + expected: FAIL + + [object.vspace: setAttribute() to false] + expected: FAIL + + [object.vspace: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.vspace: setAttribute() to NaN] + expected: FAIL + + [object.vspace: setAttribute() to Infinity] + expected: FAIL + + [object.vspace: setAttribute() to -Infinity] + expected: FAIL + + [object.vspace: setAttribute() to "\\0"] + expected: FAIL + + [object.vspace: setAttribute() to object "2"] + expected: FAIL + + [object.vspace: setAttribute() to object "3"] + expected: FAIL + + [object.vspace: IDL set to 0] + expected: FAIL + + [object.vspace: IDL set to 1] + expected: FAIL + + [object.vspace: IDL set to 257] + expected: FAIL + + [object.vspace: IDL set to 2147483647] + expected: FAIL + + [object.vspace: IDL set to "-0"] + expected: FAIL + + [object.vspace: IDL set to 2147483648] + expected: FAIL + + [object.vspace: IDL set to 4294967295] + expected: FAIL + + [object.codeBase: setAttribute() to ""] + expected: FAIL + + [object.codeBase: setAttribute() to " foo "] + expected: FAIL + + [object.codeBase: setAttribute() to "http://site.example/"] + expected: FAIL + + [object.codeBase: setAttribute() to "//site.example/path???@#l"] + expected: FAIL + + [object.codeBase: setAttribute() to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [object.codeBase: setAttribute() to undefined] + expected: FAIL + + [object.codeBase: setAttribute() to 7] + expected: FAIL + + [object.codeBase: setAttribute() to 1.5] + expected: FAIL + + [object.codeBase: setAttribute() to true] + expected: FAIL + + [object.codeBase: setAttribute() to false] + expected: FAIL + + [object.codeBase: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.codeBase: setAttribute() to NaN] + expected: FAIL + + [object.codeBase: setAttribute() to Infinity] + expected: FAIL + + [object.codeBase: setAttribute() to -Infinity] + expected: FAIL + + [object.codeBase: setAttribute() to "\\0"] + expected: FAIL + + [object.codeBase: setAttribute() to null] + expected: FAIL + + [object.codeBase: setAttribute() to object "test-toString"] + expected: FAIL + + [object.codeBase: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.codeBase: IDL set to ""] + expected: FAIL + + [object.codeBase: IDL set to " foo "] + expected: FAIL + + [object.codeBase: IDL set to "http://site.example/"] + expected: FAIL + + [object.codeBase: IDL set to "//site.example/path???@#l"] + expected: FAIL + + [object.codeBase: IDL set to "\\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f "] + expected: FAIL + + [object.codeBase: IDL set to undefined] + expected: FAIL + + [object.codeBase: IDL set to 7] + expected: FAIL + + [object.codeBase: IDL set to 1.5] + expected: FAIL + + [object.codeBase: IDL set to true] + expected: FAIL + + [object.codeBase: IDL set to false] + expected: FAIL + + [object.codeBase: IDL set to object "[object Object\]"] + expected: FAIL + + [object.codeBase: IDL set to NaN] + expected: FAIL + + [object.codeBase: IDL set to Infinity] + expected: FAIL + + [object.codeBase: IDL set to -Infinity] + expected: FAIL + + [object.codeBase: IDL set to "\\0"] + expected: FAIL + + [object.codeBase: IDL set to null] + expected: FAIL + + [object.codeBase: IDL set to object "test-toString"] + expected: FAIL + + [object.codeBase: IDL set to object "test-valueOf"] + expected: FAIL + + [object.codeType: setAttribute() to ""] + expected: FAIL + + [object.codeType: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.codeType: setAttribute() to undefined] + expected: FAIL + + [object.codeType: setAttribute() to 7] + expected: FAIL + + [object.codeType: setAttribute() to 1.5] + expected: FAIL + + [object.codeType: setAttribute() to true] + expected: FAIL + + [object.codeType: setAttribute() to false] + expected: FAIL + + [object.codeType: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.codeType: setAttribute() to NaN] + expected: FAIL + + [object.codeType: setAttribute() to Infinity] + expected: FAIL + + [object.codeType: setAttribute() to -Infinity] + expected: FAIL + + [object.codeType: setAttribute() to "\\0"] + expected: FAIL + + [object.codeType: setAttribute() to null] + expected: FAIL + + [object.codeType: setAttribute() to object "test-toString"] + expected: FAIL + + [object.codeType: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.codeType: IDL set to ""] + expected: FAIL + + [object.codeType: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.codeType: IDL set to undefined] + expected: FAIL + + [object.codeType: IDL set to 7] + expected: FAIL + + [object.codeType: IDL set to 1.5] + expected: FAIL + + [object.codeType: IDL set to true] + expected: FAIL + + [object.codeType: IDL set to false] + expected: FAIL + + [object.codeType: IDL set to object "[object Object\]"] + expected: FAIL + + [object.codeType: IDL set to NaN] + expected: FAIL + + [object.codeType: IDL set to Infinity] + expected: FAIL + + [object.codeType: IDL set to -Infinity] + expected: FAIL + + [object.codeType: IDL set to "\\0"] + expected: FAIL + + [object.codeType: IDL set to null] + expected: FAIL + + [object.codeType: IDL set to object "test-toString"] + expected: FAIL + + [object.codeType: IDL set to object "test-valueOf"] + expected: FAIL + + [object.border: setAttribute() to ""] + expected: FAIL + + [object.border: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.border: setAttribute() to undefined] + expected: FAIL + + [object.border: setAttribute() to 7] + expected: FAIL + + [object.border: setAttribute() to 1.5] + expected: FAIL + + [object.border: setAttribute() to true] + expected: FAIL + + [object.border: setAttribute() to false] + expected: FAIL + + [object.border: setAttribute() to object "[object Object\]"] + expected: FAIL + + [object.border: setAttribute() to NaN] + expected: FAIL + + [object.border: setAttribute() to Infinity] + expected: FAIL + + [object.border: setAttribute() to -Infinity] + expected: FAIL + + [object.border: setAttribute() to "\\0"] + expected: FAIL + + [object.border: setAttribute() to null] + expected: FAIL + + [object.border: setAttribute() to object "test-toString"] + expected: FAIL + + [object.border: setAttribute() to object "test-valueOf"] + expected: FAIL + + [object.border: IDL set to ""] + expected: FAIL + + [object.border: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [object.border: IDL set to undefined] + expected: FAIL + + [object.border: IDL set to 7] + expected: FAIL + + [object.border: IDL set to 1.5] + expected: FAIL + + [object.border: IDL set to true] + expected: FAIL + + [object.border: IDL set to false] + expected: FAIL + + [object.border: IDL set to object "[object Object\]"] + expected: FAIL + + [object.border: IDL set to NaN] + expected: FAIL + + [object.border: IDL set to Infinity] + expected: FAIL + + [object.border: IDL set to -Infinity] + expected: FAIL + + [object.border: IDL set to "\\0"] + expected: FAIL + + [object.border: IDL set to null] + expected: FAIL + + [object.border: IDL set to object "test-toString"] + expected: FAIL + + [object.border: IDL set to object "test-valueOf"] + expected: FAIL + + [param.dir: setAttribute() to ""] + expected: FAIL + + [param.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.dir: setAttribute() to undefined] + expected: FAIL + + [param.dir: setAttribute() to 7] + expected: FAIL + + [param.dir: setAttribute() to 1.5] + expected: FAIL + + [param.dir: setAttribute() to true] + expected: FAIL + + [param.dir: setAttribute() to false] + expected: FAIL + + [param.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.dir: setAttribute() to NaN] + expected: FAIL + + [param.dir: setAttribute() to Infinity] + expected: FAIL + + [param.dir: setAttribute() to -Infinity] + expected: FAIL + + [param.dir: setAttribute() to "\\0"] + expected: FAIL + + [param.dir: setAttribute() to null] + expected: FAIL + + [param.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [param.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.dir: setAttribute() to "ltr"] + expected: FAIL + + [param.dir: setAttribute() to "xltr"] + expected: FAIL + + [param.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [param.dir: setAttribute() to "tr"] + expected: FAIL + + [param.dir: setAttribute() to "LTR"] + expected: FAIL + + [param.dir: setAttribute() to "rtl"] + expected: FAIL + + [param.dir: setAttribute() to "xrtl"] + expected: FAIL + + [param.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [param.dir: setAttribute() to "tl"] + expected: FAIL + + [param.dir: setAttribute() to "RTL"] + expected: FAIL + + [param.dir: setAttribute() to "auto"] + expected: FAIL + + [param.dir: setAttribute() to "xauto"] + expected: FAIL + + [param.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [param.dir: setAttribute() to "uto"] + expected: FAIL + + [param.dir: setAttribute() to "AUTO"] + expected: FAIL + + [param.dir: IDL set to ""] + expected: FAIL + + [param.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.dir: IDL set to undefined] + expected: FAIL + + [param.dir: IDL set to 7] + expected: FAIL + + [param.dir: IDL set to 1.5] + expected: FAIL + + [param.dir: IDL set to true] + expected: FAIL + + [param.dir: IDL set to false] + expected: FAIL + + [param.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [param.dir: IDL set to NaN] + expected: FAIL + + [param.dir: IDL set to Infinity] + expected: FAIL + + [param.dir: IDL set to -Infinity] + expected: FAIL + + [param.dir: IDL set to "\\0"] + expected: FAIL + + [param.dir: IDL set to null] + expected: FAIL + + [param.dir: IDL set to object "test-toString"] + expected: FAIL + + [param.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [param.dir: IDL set to "ltr"] + expected: FAIL + + [param.dir: IDL set to "xltr"] + expected: FAIL + + [param.dir: IDL set to "ltr\\0"] + expected: FAIL + + [param.dir: IDL set to "tr"] + expected: FAIL + + [param.dir: IDL set to "LTR"] + expected: FAIL + + [param.dir: IDL set to "rtl"] + expected: FAIL + + [param.dir: IDL set to "xrtl"] + expected: FAIL + + [param.dir: IDL set to "rtl\\0"] + expected: FAIL + + [param.dir: IDL set to "tl"] + expected: FAIL + + [param.dir: IDL set to "RTL"] + expected: FAIL + + [param.dir: IDL set to "auto"] + expected: FAIL + + [param.dir: IDL set to "xauto"] + expected: FAIL + + [param.dir: IDL set to "auto\\0"] + expected: FAIL + + [param.dir: IDL set to "uto"] + expected: FAIL + + [param.dir: IDL set to "AUTO"] + expected: FAIL + + [param.accessKey: setAttribute() to ""] + expected: FAIL + + [param.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.accessKey: setAttribute() to undefined] + expected: FAIL + + [param.accessKey: setAttribute() to 7] + expected: FAIL + + [param.accessKey: setAttribute() to 1.5] + expected: FAIL + + [param.accessKey: setAttribute() to true] + expected: FAIL + + [param.accessKey: setAttribute() to false] + expected: FAIL + + [param.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.accessKey: setAttribute() to NaN] + expected: FAIL + + [param.accessKey: setAttribute() to Infinity] + expected: FAIL + + [param.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [param.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [param.accessKey: setAttribute() to null] + expected: FAIL + + [param.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [param.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.accessKey: IDL set to ""] + expected: FAIL + + [param.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.accessKey: IDL set to undefined] + expected: FAIL + + [param.accessKey: IDL set to 7] + expected: FAIL + + [param.accessKey: IDL set to 1.5] + expected: FAIL + + [param.accessKey: IDL set to true] + expected: FAIL + + [param.accessKey: IDL set to false] + expected: FAIL + + [param.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [param.accessKey: IDL set to NaN] + expected: FAIL + + [param.accessKey: IDL set to Infinity] + expected: FAIL + + [param.accessKey: IDL set to -Infinity] + expected: FAIL + + [param.accessKey: IDL set to "\\0"] + expected: FAIL + + [param.accessKey: IDL set to null] + expected: FAIL + + [param.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [param.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [param.tabIndex: setAttribute() to -36] + expected: FAIL + + [param.tabIndex: setAttribute() to -1] + expected: FAIL + + [param.tabIndex: setAttribute() to 0] + expected: FAIL + + [param.tabIndex: setAttribute() to 1] + expected: FAIL + + [param.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [param.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [param.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [param.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [param.tabIndex: setAttribute() to "0"] + expected: FAIL + + [param.tabIndex: setAttribute() to "1"] + expected: FAIL + + [param.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [param.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [param.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [param.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [param.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [param.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [param.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [param.tabIndex: IDL set to -36] + expected: FAIL + + [param.tabIndex: IDL set to -1] + expected: FAIL + + [param.tabIndex: IDL set to 0] + expected: FAIL + + [param.tabIndex: IDL set to 1] + expected: FAIL + + [param.tabIndex: IDL set to 2147483647] + expected: FAIL + + [param.tabIndex: IDL set to -2147483648] + expected: FAIL + + [param.name: setAttribute() to ""] + expected: FAIL + + [param.name: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.name: setAttribute() to undefined] + expected: FAIL + + [param.name: setAttribute() to 7] + expected: FAIL + + [param.name: setAttribute() to 1.5] + expected: FAIL + + [param.name: setAttribute() to true] + expected: FAIL + + [param.name: setAttribute() to false] + expected: FAIL + + [param.name: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.name: setAttribute() to NaN] + expected: FAIL + + [param.name: setAttribute() to Infinity] + expected: FAIL + + [param.name: setAttribute() to -Infinity] + expected: FAIL + + [param.name: setAttribute() to "\\0"] + expected: FAIL + + [param.name: setAttribute() to null] + expected: FAIL + + [param.name: setAttribute() to object "test-toString"] + expected: FAIL + + [param.name: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.name: IDL set to ""] + expected: FAIL + + [param.name: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.name: IDL set to undefined] + expected: FAIL + + [param.name: IDL set to 7] + expected: FAIL + + [param.name: IDL set to 1.5] + expected: FAIL + + [param.name: IDL set to true] + expected: FAIL + + [param.name: IDL set to false] + expected: FAIL + + [param.name: IDL set to object "[object Object\]"] + expected: FAIL + + [param.name: IDL set to NaN] + expected: FAIL + + [param.name: IDL set to Infinity] + expected: FAIL + + [param.name: IDL set to -Infinity] + expected: FAIL + + [param.name: IDL set to "\\0"] + expected: FAIL + + [param.name: IDL set to null] + expected: FAIL + + [param.name: IDL set to object "test-toString"] + expected: FAIL + + [param.name: IDL set to object "test-valueOf"] + expected: FAIL + + [param.value: setAttribute() to ""] + expected: FAIL + + [param.value: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.value: setAttribute() to undefined] + expected: FAIL + + [param.value: setAttribute() to 7] + expected: FAIL + + [param.value: setAttribute() to 1.5] + expected: FAIL + + [param.value: setAttribute() to true] + expected: FAIL + + [param.value: setAttribute() to false] + expected: FAIL + + [param.value: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.value: setAttribute() to NaN] + expected: FAIL + + [param.value: setAttribute() to Infinity] + expected: FAIL + + [param.value: setAttribute() to -Infinity] + expected: FAIL + + [param.value: setAttribute() to "\\0"] + expected: FAIL + + [param.value: setAttribute() to null] + expected: FAIL + + [param.value: setAttribute() to object "test-toString"] + expected: FAIL + + [param.value: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.value: IDL set to ""] + expected: FAIL + + [param.value: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.value: IDL set to undefined] + expected: FAIL + + [param.value: IDL set to 7] + expected: FAIL + + [param.value: IDL set to 1.5] + expected: FAIL + + [param.value: IDL set to true] + expected: FAIL + + [param.value: IDL set to false] + expected: FAIL + + [param.value: IDL set to object "[object Object\]"] + expected: FAIL + + [param.value: IDL set to NaN] + expected: FAIL + + [param.value: IDL set to Infinity] + expected: FAIL + + [param.value: IDL set to -Infinity] + expected: FAIL + + [param.value: IDL set to "\\0"] + expected: FAIL + + [param.value: IDL set to null] + expected: FAIL + + [param.value: IDL set to object "test-toString"] + expected: FAIL + + [param.value: IDL set to object "test-valueOf"] + expected: FAIL + + [param.type: setAttribute() to ""] + expected: FAIL + + [param.type: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.type: setAttribute() to undefined] + expected: FAIL + + [param.type: setAttribute() to 7] + expected: FAIL + + [param.type: setAttribute() to 1.5] + expected: FAIL + + [param.type: setAttribute() to true] + expected: FAIL + + [param.type: setAttribute() to false] + expected: FAIL + + [param.type: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.type: setAttribute() to NaN] + expected: FAIL + + [param.type: setAttribute() to Infinity] + expected: FAIL + + [param.type: setAttribute() to -Infinity] + expected: FAIL + + [param.type: setAttribute() to "\\0"] + expected: FAIL + + [param.type: setAttribute() to null] + expected: FAIL + + [param.type: setAttribute() to object "test-toString"] + expected: FAIL + + [param.type: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.type: IDL set to ""] + expected: FAIL + + [param.type: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.type: IDL set to undefined] + expected: FAIL + + [param.type: IDL set to 7] + expected: FAIL + + [param.type: IDL set to 1.5] + expected: FAIL + + [param.type: IDL set to true] + expected: FAIL + + [param.type: IDL set to false] + expected: FAIL + + [param.type: IDL set to object "[object Object\]"] + expected: FAIL + + [param.type: IDL set to NaN] + expected: FAIL + + [param.type: IDL set to Infinity] + expected: FAIL + + [param.type: IDL set to -Infinity] + expected: FAIL + + [param.type: IDL set to "\\0"] + expected: FAIL + + [param.type: IDL set to null] + expected: FAIL + + [param.type: IDL set to object "test-toString"] + expected: FAIL + + [param.type: IDL set to object "test-valueOf"] + expected: FAIL + + [param.valueType: setAttribute() to ""] + expected: FAIL + + [param.valueType: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.valueType: setAttribute() to undefined] + expected: FAIL + + [param.valueType: setAttribute() to 7] + expected: FAIL + + [param.valueType: setAttribute() to 1.5] + expected: FAIL + + [param.valueType: setAttribute() to true] + expected: FAIL + + [param.valueType: setAttribute() to false] + expected: FAIL + + [param.valueType: setAttribute() to object "[object Object\]"] + expected: FAIL + + [param.valueType: setAttribute() to NaN] + expected: FAIL + + [param.valueType: setAttribute() to Infinity] + expected: FAIL + + [param.valueType: setAttribute() to -Infinity] + expected: FAIL + + [param.valueType: setAttribute() to "\\0"] + expected: FAIL + + [param.valueType: setAttribute() to null] + expected: FAIL + + [param.valueType: setAttribute() to object "test-toString"] + expected: FAIL + + [param.valueType: setAttribute() to object "test-valueOf"] + expected: FAIL + + [param.valueType: IDL set to ""] + expected: FAIL + + [param.valueType: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [param.valueType: IDL set to undefined] + expected: FAIL + + [param.valueType: IDL set to 7] + expected: FAIL + + [param.valueType: IDL set to 1.5] + expected: FAIL + + [param.valueType: IDL set to true] + expected: FAIL + + [param.valueType: IDL set to false] + expected: FAIL + + [param.valueType: IDL set to object "[object Object\]"] + expected: FAIL + + [param.valueType: IDL set to NaN] + expected: FAIL + + [param.valueType: IDL set to Infinity] + expected: FAIL + + [param.valueType: IDL set to -Infinity] + expected: FAIL + + [param.valueType: IDL set to "\\0"] + expected: FAIL + + [param.valueType: IDL set to null] + expected: FAIL + + [param.valueType: IDL set to object "test-toString"] + expected: FAIL + + [param.valueType: IDL set to object "test-valueOf"] + expected: FAIL + + [video.dir: setAttribute() to ""] + expected: FAIL + + [video.dir: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.dir: setAttribute() to undefined] + expected: FAIL + + [video.dir: setAttribute() to 7] + expected: FAIL + + [video.dir: setAttribute() to 1.5] + expected: FAIL + + [video.dir: setAttribute() to true] + expected: FAIL + + [video.dir: setAttribute() to false] + expected: FAIL + + [video.dir: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.dir: setAttribute() to NaN] + expected: FAIL + + [video.dir: setAttribute() to Infinity] + expected: FAIL + + [video.dir: setAttribute() to -Infinity] + expected: FAIL + + [video.dir: setAttribute() to "\\0"] + expected: FAIL + + [video.dir: setAttribute() to null] + expected: FAIL + + [video.dir: setAttribute() to object "test-toString"] + expected: FAIL + + [video.dir: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.dir: setAttribute() to "ltr"] + expected: FAIL + + [video.dir: setAttribute() to "xltr"] + expected: FAIL + + [video.dir: setAttribute() to "ltr\\0"] + expected: FAIL + + [video.dir: setAttribute() to "tr"] + expected: FAIL + + [video.dir: setAttribute() to "LTR"] + expected: FAIL + + [video.dir: setAttribute() to "rtl"] + expected: FAIL + + [video.dir: setAttribute() to "xrtl"] + expected: FAIL + + [video.dir: setAttribute() to "rtl\\0"] + expected: FAIL + + [video.dir: setAttribute() to "tl"] + expected: FAIL + + [video.dir: setAttribute() to "RTL"] + expected: FAIL + + [video.dir: setAttribute() to "auto"] + expected: FAIL + + [video.dir: setAttribute() to "xauto"] + expected: FAIL + + [video.dir: setAttribute() to "auto\\0"] + expected: FAIL + + [video.dir: setAttribute() to "uto"] + expected: FAIL + + [video.dir: setAttribute() to "AUTO"] + expected: FAIL + + [video.dir: IDL set to ""] + expected: FAIL + + [video.dir: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.dir: IDL set to undefined] + expected: FAIL + + [video.dir: IDL set to 7] + expected: FAIL + + [video.dir: IDL set to 1.5] + expected: FAIL + + [video.dir: IDL set to true] + expected: FAIL + + [video.dir: IDL set to false] + expected: FAIL + + [video.dir: IDL set to object "[object Object\]"] + expected: FAIL + + [video.dir: IDL set to NaN] + expected: FAIL + + [video.dir: IDL set to Infinity] + expected: FAIL + + [video.dir: IDL set to -Infinity] + expected: FAIL + + [video.dir: IDL set to "\\0"] + expected: FAIL + + [video.dir: IDL set to null] + expected: FAIL + + [video.dir: IDL set to object "test-toString"] + expected: FAIL + + [video.dir: IDL set to object "test-valueOf"] + expected: FAIL + + [video.dir: IDL set to "ltr"] + expected: FAIL + + [video.dir: IDL set to "xltr"] + expected: FAIL + + [video.dir: IDL set to "ltr\\0"] + expected: FAIL + + [video.dir: IDL set to "tr"] + expected: FAIL + + [video.dir: IDL set to "LTR"] + expected: FAIL + + [video.dir: IDL set to "rtl"] + expected: FAIL + + [video.dir: IDL set to "xrtl"] + expected: FAIL + + [video.dir: IDL set to "rtl\\0"] + expected: FAIL + + [video.dir: IDL set to "tl"] + expected: FAIL + + [video.dir: IDL set to "RTL"] + expected: FAIL + + [video.dir: IDL set to "auto"] + expected: FAIL + + [video.dir: IDL set to "xauto"] + expected: FAIL + + [video.dir: IDL set to "auto\\0"] + expected: FAIL + + [video.dir: IDL set to "uto"] + expected: FAIL + + [video.dir: IDL set to "AUTO"] + expected: FAIL + + [video.accessKey: setAttribute() to ""] + expected: FAIL + + [video.accessKey: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.accessKey: setAttribute() to undefined] + expected: FAIL + + [video.accessKey: setAttribute() to 7] + expected: FAIL + + [video.accessKey: setAttribute() to 1.5] + expected: FAIL + + [video.accessKey: setAttribute() to true] + expected: FAIL + + [video.accessKey: setAttribute() to false] + expected: FAIL + + [video.accessKey: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.accessKey: setAttribute() to NaN] + expected: FAIL + + [video.accessKey: setAttribute() to Infinity] + expected: FAIL + + [video.accessKey: setAttribute() to -Infinity] + expected: FAIL + + [video.accessKey: setAttribute() to "\\0"] + expected: FAIL + + [video.accessKey: setAttribute() to null] + expected: FAIL + + [video.accessKey: setAttribute() to object "test-toString"] + expected: FAIL + + [video.accessKey: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.accessKey: IDL set to ""] + expected: FAIL + + [video.accessKey: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.accessKey: IDL set to undefined] + expected: FAIL + + [video.accessKey: IDL set to 7] + expected: FAIL + + [video.accessKey: IDL set to 1.5] + expected: FAIL + + [video.accessKey: IDL set to true] + expected: FAIL + + [video.accessKey: IDL set to false] + expected: FAIL + + [video.accessKey: IDL set to object "[object Object\]"] + expected: FAIL + + [video.accessKey: IDL set to NaN] + expected: FAIL + + [video.accessKey: IDL set to Infinity] + expected: FAIL + + [video.accessKey: IDL set to -Infinity] + expected: FAIL + + [video.accessKey: IDL set to "\\0"] + expected: FAIL + + [video.accessKey: IDL set to null] + expected: FAIL + + [video.accessKey: IDL set to object "test-toString"] + expected: FAIL + + [video.accessKey: IDL set to object "test-valueOf"] + expected: FAIL + + [video.tabIndex: setAttribute() to -36] + expected: FAIL + + [video.tabIndex: setAttribute() to -1] + expected: FAIL + + [video.tabIndex: setAttribute() to 0] + expected: FAIL + + [video.tabIndex: setAttribute() to 1] + expected: FAIL + + [video.tabIndex: setAttribute() to 2147483647] + expected: FAIL + + [video.tabIndex: setAttribute() to -2147483648] + expected: FAIL + + [video.tabIndex: setAttribute() to "-1"] + expected: FAIL + + [video.tabIndex: setAttribute() to "-0"] + expected: FAIL + + [video.tabIndex: setAttribute() to "0"] + expected: FAIL + + [video.tabIndex: setAttribute() to "1"] + expected: FAIL + + [video.tabIndex: setAttribute() to "\\t7"] + expected: FAIL + + [video.tabIndex: setAttribute() to "\\f7"] + expected: FAIL + + [video.tabIndex: setAttribute() to " 7"] + expected: FAIL + + [video.tabIndex: setAttribute() to "\\n7"] + expected: FAIL + + [video.tabIndex: setAttribute() to "\\r7"] + expected: FAIL + + [video.tabIndex: setAttribute() to 1.5] + expected: FAIL + + [video.tabIndex: setAttribute() to object "2"] + expected: FAIL + + [video.tabIndex: IDL set to -36] + expected: FAIL + + [video.tabIndex: IDL set to -1] + expected: FAIL + + [video.tabIndex: IDL set to 0] + expected: FAIL + + [video.tabIndex: IDL set to 1] + expected: FAIL + + [video.tabIndex: IDL set to 2147483647] + expected: FAIL + + [video.tabIndex: IDL set to -2147483648] + expected: FAIL + + [video.crossOrigin: setAttribute() to ""] + expected: FAIL + + [video.crossOrigin: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.crossOrigin: setAttribute() to undefined] + expected: FAIL + + [video.crossOrigin: setAttribute() to 7] + expected: FAIL + + [video.crossOrigin: setAttribute() to 1.5] + expected: FAIL + + [video.crossOrigin: setAttribute() to true] + expected: FAIL + + [video.crossOrigin: setAttribute() to false] + expected: FAIL + + [video.crossOrigin: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.crossOrigin: setAttribute() to NaN] + expected: FAIL + + [video.crossOrigin: setAttribute() to Infinity] + expected: FAIL + + [video.crossOrigin: setAttribute() to -Infinity] + expected: FAIL + + [video.crossOrigin: setAttribute() to "\\0"] + expected: FAIL + + [video.crossOrigin: setAttribute() to null] + expected: FAIL + + [video.crossOrigin: setAttribute() to object "test-toString"] + expected: FAIL + + [video.crossOrigin: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "anonymous"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "xanonymous"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "anonymous\\0"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "nonymous"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "ANONYMOUS"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "use-credentials"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "xuse-credentials"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "use-credentials\\0"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "se-credentials"] + expected: FAIL + + [video.crossOrigin: setAttribute() to "USE-CREDENTIALS"] + expected: FAIL + + [video.crossOrigin: IDL set to ""] + expected: FAIL + + [video.crossOrigin: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.crossOrigin: IDL set to undefined] + expected: FAIL + + [video.crossOrigin: IDL set to 7] + expected: FAIL + + [video.crossOrigin: IDL set to 1.5] + expected: FAIL + + [video.crossOrigin: IDL set to true] + expected: FAIL + + [video.crossOrigin: IDL set to false] + expected: FAIL + + [video.crossOrigin: IDL set to object "[object Object\]"] + expected: FAIL + + [video.crossOrigin: IDL set to NaN] + expected: FAIL + + [video.crossOrigin: IDL set to Infinity] + expected: FAIL + + [video.crossOrigin: IDL set to -Infinity] + expected: FAIL + + [video.crossOrigin: IDL set to "\\0"] + expected: FAIL + + [video.crossOrigin: IDL set to null] + expected: FAIL + + [video.crossOrigin: IDL set to object "test-toString"] + expected: FAIL + + [video.crossOrigin: IDL set to object "test-valueOf"] + expected: FAIL + + [video.crossOrigin: IDL set to "anonymous"] + expected: FAIL + + [video.crossOrigin: IDL set to "xanonymous"] + expected: FAIL + + [video.crossOrigin: IDL set to "anonymous\\0"] + expected: FAIL + + [video.crossOrigin: IDL set to "nonymous"] + expected: FAIL + + [video.crossOrigin: IDL set to "ANONYMOUS"] + expected: FAIL + + [video.crossOrigin: IDL set to "use-credentials"] + expected: FAIL + + [video.crossOrigin: IDL set to "xuse-credentials"] + expected: FAIL + + [video.crossOrigin: IDL set to "use-credentials\\0"] + expected: FAIL + + [video.crossOrigin: IDL set to "se-credentials"] + expected: FAIL + + [video.crossOrigin: IDL set to "USE-CREDENTIALS"] + expected: FAIL + + [video.loop: setAttribute() to ""] + expected: FAIL + + [video.loop: setAttribute() to " foo "] + expected: FAIL + + [video.loop: setAttribute() to undefined] + expected: FAIL + + [video.loop: setAttribute() to null] + expected: FAIL + + [video.loop: setAttribute() to 7] + expected: FAIL + + [video.loop: setAttribute() to 1.5] + expected: FAIL + + [video.loop: setAttribute() to true] + expected: FAIL + + [video.loop: setAttribute() to false] + expected: FAIL + + [video.loop: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.loop: setAttribute() to NaN] + expected: FAIL + + [video.loop: setAttribute() to Infinity] + expected: FAIL + + [video.loop: setAttribute() to -Infinity] + expected: FAIL + + [video.loop: setAttribute() to "\\0"] + expected: FAIL + + [video.loop: setAttribute() to object "test-toString"] + expected: FAIL + + [video.loop: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.loop: setAttribute() to "loop"] + expected: FAIL + + [video.loop: IDL set to ""] + expected: FAIL + + [video.loop: IDL set to " foo "] + expected: FAIL + + [video.loop: IDL set to undefined] + expected: FAIL + + [video.loop: IDL set to null] + expected: FAIL + + [video.loop: IDL set to 7] + expected: FAIL + + [video.loop: IDL set to 1.5] + expected: FAIL + + [video.loop: IDL set to false] + expected: FAIL + + [video.loop: IDL set to object "[object Object\]"] + expected: FAIL + + [video.loop: IDL set to NaN] + expected: FAIL + + [video.loop: IDL set to Infinity] + expected: FAIL + + [video.loop: IDL set to -Infinity] + expected: FAIL + + [video.loop: IDL set to "\\0"] + expected: FAIL + + [video.loop: IDL set to object "test-toString"] + expected: FAIL + + [video.loop: IDL set to object "test-valueOf"] + expected: FAIL + + [video.mediaGroup: setAttribute() to ""] + expected: FAIL + + [video.mediaGroup: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.mediaGroup: setAttribute() to undefined] + expected: FAIL + + [video.mediaGroup: setAttribute() to 7] + expected: FAIL + + [video.mediaGroup: setAttribute() to 1.5] + expected: FAIL + + [video.mediaGroup: setAttribute() to true] + expected: FAIL + + [video.mediaGroup: setAttribute() to false] + expected: FAIL + + [video.mediaGroup: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.mediaGroup: setAttribute() to NaN] + expected: FAIL + + [video.mediaGroup: setAttribute() to Infinity] + expected: FAIL + + [video.mediaGroup: setAttribute() to -Infinity] + expected: FAIL + + [video.mediaGroup: setAttribute() to "\\0"] + expected: FAIL + + [video.mediaGroup: setAttribute() to null] + expected: FAIL + + [video.mediaGroup: setAttribute() to object "test-toString"] + expected: FAIL + + [video.mediaGroup: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.mediaGroup: IDL set to ""] + expected: FAIL + + [video.mediaGroup: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] + expected: FAIL + + [video.mediaGroup: IDL set to undefined] + expected: FAIL + + [video.mediaGroup: IDL set to 7] + expected: FAIL + + [video.mediaGroup: IDL set to 1.5] + expected: FAIL + + [video.mediaGroup: IDL set to true] + expected: FAIL + + [video.mediaGroup: IDL set to false] + expected: FAIL + + [video.mediaGroup: IDL set to object "[object Object\]"] + expected: FAIL + + [video.mediaGroup: IDL set to NaN] + expected: FAIL + + [video.mediaGroup: IDL set to Infinity] + expected: FAIL + + [video.mediaGroup: IDL set to -Infinity] + expected: FAIL + + [video.mediaGroup: IDL set to "\\0"] + expected: FAIL + + [video.mediaGroup: IDL set to null] + expected: FAIL + + [video.mediaGroup: IDL set to object "test-toString"] + expected: FAIL + + [video.mediaGroup: IDL set to object "test-valueOf"] + expected: FAIL + + [video.controls: setAttribute() to ""] + expected: FAIL + + [video.controls: setAttribute() to " foo "] + expected: FAIL + + [video.controls: setAttribute() to undefined] + expected: FAIL + + [video.controls: setAttribute() to null] + expected: FAIL + + [video.controls: setAttribute() to 7] + expected: FAIL + + [video.controls: setAttribute() to 1.5] + expected: FAIL + + [video.controls: setAttribute() to true] + expected: FAIL + + [video.controls: setAttribute() to false] + expected: FAIL + + [video.controls: setAttribute() to object "[object Object\]"] + expected: FAIL + + [video.controls: setAttribute() to NaN] + expected: FAIL + + [video.controls: setAttribute() to Infinity] + expected: FAIL + + [video.controls: setAttribute() to -Infinity] + expected: FAIL + + [video.controls: setAttribute() to "\\0"] + expected: FAIL + + [video.controls: setAttribute() to object "test-toString"] + expected: FAIL + + [video.controls: setAttribute() to object "test-valueOf"] + expected: FAIL + + [video.controls: setAttribute() to "controls"] + expected: FAIL + + [video.controls: IDL set to ""] + expected: FAIL + + [video.controls: IDL set to " foo "] + expected: FAIL + + [video.controls: IDL set to undefined] + expected: FAIL + + [video.controls: IDL set to null] + expected: FAIL + + [video.controls: IDL set to 7] + expected: FAIL + + [video.controls: IDL set to 1.5] + expected: FAIL + + [video.controls: IDL set to false] + expected: FAIL + + [video.controls: IDL set to object "[object Object\]"] + expected: FAIL + + [video.controls: IDL set to NaN] + expected: FAIL + + [video.controls: IDL set to Infinity] + expected: FAIL + + [video.controls: IDL set to -Infinity] + expected: FAIL + + [video.controls: IDL set to "\\0"] + expected: FAIL + + [video.controls: IDL set to object "test-toString"] + expected: FAIL + + [video.controls: IDL set to object "test-valueOf"] + expected: FAIL + + [video.defaultMuted (: Setting .protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104] + expected: FAIL + + [: Setting .protocol = 'b' Can’t switch from special scheme to non-special. Note: this may change, see https://github.com/whatwg/url/issues/104] + expected: FAIL + + [: Setting .protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.] + expected: FAIL + + [URL: Setting .protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104] + expected: FAIL + + [: Setting .protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104] + expected: FAIL + + [: Setting .protocol = 'http' Can’t switch from non-special scheme to special. Note: this may change, see https://github.com/whatwg/url/issues/104] + expected: FAIL + + [: Setting .protocol = 'https:foo : bar' Stuff after the first ':' is ignored] + expected: FAIL + + [: Setting Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored] + expected: FAIL + + [: Setting .username = 'me' No host means no username] + expected: FAIL + + [: Setting .username = 'me' No host means no username] + expected: FAIL + + [: Setting .username = 'me' Cannot-be-a-base means no username] + expected: FAIL + + [: Setting .username = 'me'] + expected: FAIL + + [: Setting .username = 'me'] + expected: FAIL + + [: Setting .username = ''] + expected: FAIL + + [: Setting .username = ''] + expected: FAIL + + [: Setting .username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [: Setting .username = '%c3%89té' Bytes already percent-encoded are left as-is.] + expected: FAIL + + [: Setting .password = 'secret' No host means no password] + expected: FAIL + + [: Setting .password = 'secret' No host means no password] + expected: FAIL + + [: Setting .password = 'secret' Cannot-be-a-base means no password] + expected: FAIL + + [: Setting .password = 'secret'] + expected: FAIL + + [: Setting .password = 'secret'] + expected: FAIL + + [: Setting .password = ''] + expected: FAIL + + [: Setting .password = ''] + expected: FAIL + + [: Setting .password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [: Setting .password = '%c3%89té' Bytes already percent-encoded are left as-is.] + expected: FAIL + + [: Setting .host = 'example.com' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .host = 'example.net' Cannot-be-a-base means no password] + expected: FAIL + + [: Setting .host = 'example.com:8080'] + expected: FAIL + + [: Setting .host = 'example.com' Port number is unchanged if not specified in the new value] + expected: FAIL + + [URL: Setting .host = 'example.com:' Port number is unchanged if not specified] + expected: FAIL + + [: Setting .host = 'example.com:' Port number is unchanged if not specified] + expected: FAIL + + [: Setting .host = 'example.com:' Port number is unchanged if not specified] + expected: FAIL + + [: Setting .host = '' The empty host is not valid for special schemes] + expected: FAIL + + [: Setting .host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [: Setting .host = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [: Setting .host = '0x7F000001:8080' IPv4 address syntax is normalized] + expected: FAIL + + [: Setting .host = '[::0:01\]:2' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .host = 'example.com:80' Default port number is removed] + expected: FAIL + + [: Setting .host = 'example.com:443' Default port number is removed] + expected: FAIL + + [: Setting .host = 'example.com:80' Default port number is only removed for the relevant scheme] + expected: FAIL + + [: Setting .host = 'example.com/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, and it’s invalid in a domain] + expected: FAIL + + [: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .host = 'example.com:65535' Port numbers are 16 bit integers] + expected: FAIL + + [: Setting .host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.] + expected: FAIL + + [: Setting .hostname = 'example.com' Cannot-be-a-base means no host] + expected: FAIL + + [: Setting .hostname = 'example.net' Cannot-be-a-base means no password] + expected: FAIL + + [: Setting .hostname = 'example.com'] + expected: FAIL + + [: Setting .hostname = '' The empty host is not valid for special schemes] + expected: FAIL + + [: Setting .hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [: Setting .hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [: Setting .hostname = '0x7F000001' IPv4 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = '[::0:01\]' IPv6 address syntax is normalized] + expected: FAIL + + [: Setting .hostname = 'example.com:8080' Stuff after a : delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com:' Stuff after a : delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, and it’s invalid in a domain] + expected: FAIL + + [: Setting .port = '8080'] + expected: FAIL + + [: Setting .port = '' Port number is removed if empty is the new value] + expected: FAIL + + [: Setting .port = '80' Default port number is removed] + expected: FAIL + + [: Setting .port = '443' Default port number is removed] + expected: FAIL + + [: Setting .port = '80' Default port number is only removed for the relevant scheme] + expected: FAIL + + [: Setting .port = '8080/stuff' Stuff after a / delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080?stuff' Stuff after a ? delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080#stuff' Stuff after a # delimiter is ignored] + expected: FAIL + + [: Setting .port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes] + expected: FAIL + + [: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error] + expected: FAIL + + [: Setting .port = '65535' Port numbers are 16 bit integers] + expected: FAIL + + [: Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [: Setting .pathname = '/foo' Cannot-be-a-base don’t have a path] + expected: FAIL + + [: Setting .pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [: Setting .pathname = 'home'] + expected: FAIL + + [: Setting .pathname = '../home'] + expected: FAIL + + [: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: FAIL + + [: Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs] + expected: FAIL + + [URL: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, except %2E.] + expected: FAIL + + [: Setting .pathname = '?' ? needs to be encoded] + expected: FAIL + + [: Setting .search = 'lang=fr'] + expected: FAIL + + [: Setting .search = 'lang=fr'] + expected: FAIL + + [: Setting .search = '?lang=fr'] + expected: FAIL + + [: Setting .search = '??lang=fr'] + expected: FAIL + + [: Setting .search = '?'] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [URL: Setting .search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [: Setting .search = '%c3%89té' Bytes already percent-encoded are left as-is] + expected: FAIL + + [: Setting .hash = 'main'] + expected: FAIL + + [: Setting .hash = 'main'] + expected: FAIL + + [: Setting .hash = '##nav'] + expected: FAIL + + [: Setting .hash = '#main'] + expected: FAIL + + [: Setting .hash = '#'] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL + + [URL: Setting .hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' No percent-encoding at all (!); nuls, tabs, and newlines are removed] + expected: FAIL + + [: Setting .hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' No percent-encoding at all (!); nuls, tabs, and newlines are removed] + expected: FAIL + + [: Setting .hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' No percent-encoding at all (!); nuls, tabs, and newlines are removed] + expected: FAIL + + [: Setting .hash = '%c3%89té' Bytes already percent-encoded are left as-is] + expected: FAIL + diff --git a/tests/wpt/metadata/websockets/multi-globals/message-received.html.ini b/tests/wpt/metadata/websockets/multi-globals/message-received.html.ini new file mode 100644 index 00000000000..7c5c35722cf --- /dev/null +++ b/tests/wpt/metadata/websockets/multi-globals/message-received.html.ini @@ -0,0 +1,8 @@ +[message-received.html] + type: testharness + [ArrayBuffer should be created in the relevant realm of the WebSocket] + expected: FAIL + + [Blob should be created in the relevant realm of the WebSocket] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js.ini b/tests/wpt/metadata/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js.ini index 71011a2a4ca..e15edf551e2 100644 --- a/tests/wpt/metadata/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js.ini +++ b/tests/wpt/metadata/workers/constructors/Worker/DedicatedWorkerGlobalScope-members.worker.js.ini @@ -1,4 +1,4 @@ -[DedicatedWorkerGlobalScope-members.worker] +[DedicatedWorkerGlobalScope-members.worker.html] type: testharness [existence of onoffline] expected: FAIL diff --git a/tests/wpt/metadata/workers/constructors/Worker/expected-self-properties.worker.js.ini b/tests/wpt/metadata/workers/constructors/Worker/expected-self-properties.worker.js.ini index 1e27dc99102..4b41f263de2 100644 --- a/tests/wpt/metadata/workers/constructors/Worker/expected-self-properties.worker.js.ini +++ b/tests/wpt/metadata/workers/constructors/Worker/expected-self-properties.worker.js.ini @@ -1,7 +1,8 @@ -[expected-self-properties.worker] +[expected-self-properties.worker.html] type: testharness [existence of MessageChannel] expected: FAIL [existence of SharedWorker] expected: FAIL + diff --git a/tests/wpt/metadata/workers/data-url-shared.html.ini b/tests/wpt/metadata/workers/data-url-shared.html.ini new file mode 100644 index 00000000000..8ca363c84bd --- /dev/null +++ b/tests/wpt/metadata/workers/data-url-shared.html.ini @@ -0,0 +1,5 @@ +[data-url-shared.html] + type: testharness + [data URL shared worker] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/interfaces.worker.js.ini b/tests/wpt/metadata/workers/interfaces.worker.js.ini index a3335ec02ae..9c663a5335d 100644 --- a/tests/wpt/metadata/workers/interfaces.worker.js.ini +++ b/tests/wpt/metadata/workers/interfaces.worker.js.ini @@ -1,71 +1,3 @@ -[interfaces.worker] +[interfaces.worker.html] type: testharness - expected: - if os == "mac": TIMEOUT - if os == "linux": CRASH - [WorkerGlobalScope interface: operation close()] - expected: FAIL - - [WorkerGlobalScope interface: attribute onerror] - expected: FAIL - - [WorkerGlobalScope interface: attribute onlanguagechange] - expected: FAIL - - [WorkerGlobalScope interface: attribute onoffline] - expected: FAIL - - [WorkerGlobalScope interface: attribute ononline] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: operation postMessage(any,[object Object\])] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: attribute onmessage] - expected: FAIL - - [WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type (4)] - expected: FAIL - - [WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type (5)] - expected: FAIL - - [WorkerGlobalScope interface: self must inherit property "ononline" with the proper type (6)] - expected: FAIL - - [WorkerNavigator interface: attribute languages] - expected: FAIL - - [WorkerNavigator interface: attribute onLine] - expected: FAIL - - [WorkerLocation interface: attribute origin] - expected: FAIL - - [WorkerLocation interface: self.location must inherit property "origin" with the proper type (1)] - expected: FAIL - - [WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (7)] - expected: FAIL - - [WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type (8)] - expected: FAIL - - [EventTarget interface: existence and properties of interface object] - expected: FAIL - - [WorkerGlobalScope interface: existence and properties of interface object] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: existence and properties of interface object] - expected: FAIL - - [WorkerNavigator interface: existence and properties of interface object] - expected: FAIL - - [WorkerLocation interface: existence and properties of interface object] - expected: FAIL - - [WorkerGlobalScope interface: self must inherit property "close" with the proper type (2)] - expected: FAIL - + disabled: https://github.com/servo/servo/issues/12654 diff --git a/tests/wpt/metadata/workers/interfaces/WorkerUtils/navigator/window-only.worker.js.ini b/tests/wpt/metadata/workers/interfaces/WorkerUtils/navigator/window-only.worker.js.ini deleted file mode 100644 index 33a27f8a6fd..00000000000 --- a/tests/wpt/metadata/workers/interfaces/WorkerUtils/navigator/window-only.worker.js.ini +++ /dev/null @@ -1,11 +0,0 @@ -[window-only.worker] - type: testharness - [NavigatorID properties exposed only for Window: appCodeName] - expected: FAIL - - [NavigatorID properties exposed only for Window: product] - expected: FAIL - - [NavigatorID properties exposed only for Window: taintEnabled] - expected: FAIL - diff --git a/tests/wpt/metadata/workers/semantics/interface-objects/001.worker.js.ini b/tests/wpt/metadata/workers/semantics/interface-objects/001.worker.js.ini index 60807857f7a..bf57cc0f245 100644 --- a/tests/wpt/metadata/workers/semantics/interface-objects/001.worker.js.ini +++ b/tests/wpt/metadata/workers/semantics/interface-objects/001.worker.js.ini @@ -1,4 +1,4 @@ -[001.worker] +[001.worker.html] type: testharness [The SharedWorker interface object should be exposed.] expected: FAIL @@ -9,21 +9,9 @@ [The MessageChannel interface object should be exposed.] expected: FAIL - [The CanvasProxy interface object should be exposed.] - expected: FAIL - [The ImageBitmap interface object should be exposed.] expected: FAIL - [The DrawingStyle interface object should be exposed.] - expected: FAIL - - [The Path interface object should be exposed.] - expected: FAIL - - [The TextMetrics interface object should be exposed.] - expected: FAIL - [The CanvasPath interface object should be exposed.] expected: FAIL @@ -80,3 +68,4 @@ [The IDBTransaction interface object should be exposed.] expected: FAIL + diff --git a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini index 9d9c868c272..d05ef098814 100644 --- a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini +++ b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini @@ -1,4 +1,4 @@ -[002.worker] +[002.worker.html] type: testharness [The Location interface object should not be exposed.] expected: FAIL diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 4752ad4381f..26d7ae9189b 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -8105,7 +8105,7 @@ "mozilla/interfaces.worker.js": [ { "path": "mozilla/interfaces.worker.js", - "url": "/_mozilla/mozilla/interfaces.worker" + "url": "/_mozilla/mozilla/interfaces.worker.html" } ], "mozilla/iterable.html": [ diff --git a/tests/wpt/mozilla/meta/css/matchMedia.html.ini b/tests/wpt/mozilla/meta/css/matchMedia.html.ini index 4c3498a53a7..41b0d9b51c6 100644 --- a/tests/wpt/mozilla/meta/css/matchMedia.html.ini +++ b/tests/wpt/mozilla/meta/css/matchMedia.html.ini @@ -1,6 +1,5 @@ [matchMedia.html] type: testharness - expected: OK [window.matchMedia exists] expected: FAIL diff --git a/tests/wpt/web-platform-tests/.gitignore b/tests/wpt/web-platform-tests/.gitignore index 0274bf6ed95..b70cb0f2b34 100644 --- a/tests/wpt/web-platform-tests/.gitignore +++ b/tests/wpt/web-platform-tests/.gitignore @@ -11,3 +11,4 @@ scratch testharness_runner.html webdriver/.idea .vscode/ +.DS_Store diff --git a/tests/wpt/web-platform-tests/.travis.yml b/tests/wpt/web-platform-tests/.travis.yml index d2f88f203fa..d2ed86edd56 100644 --- a/tests/wpt/web-platform-tests/.travis.yml +++ b/tests/wpt/web-platform-tests/.travis.yml @@ -1,14 +1,50 @@ -sudo: false # cause Travis to start builds much faster +dist: trusty language: python -python: - - "2.7" +addons: + hosts: + - web-platform.test + - www.web-platform.test + - www1.web-platform.test + - www2.web-platform.test + - xn--n8j6ds53lwwkrqhv28a.web-platform.test + - xn--lve-6lad.web-platform.test before_install: - git submodule update --init --recursive -# command to run tests, e.g. python setup.py test + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start +install: + - pip install -U setuptools + - pip install -U requests +matrix: + include: + - os: linux + python: "2.7" + env: + - SCRIPT=ci_lint.sh + - os: linux + python: "2.7" + addons: + apt: + packages: + - libnss3-tools + env: + - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" + - SCRIPT=ci_stability.sh + - PRODUCT=firefox + - os: linux + sudo: required + python: "2.7" + addons: + apt: + packages: + - libappindicator1 + - fonts-liberation + env: + - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" + - SCRIPT=ci_stability.sh + - PRODUCT=chrome script: - - ./lint - - ./manifest - - ./diff-manifest.py + - bash $SCRIPT notifications: email: on_success: never diff --git a/tests/wpt/web-platform-tests/2dcontext/compositing/2d.composite.globalAlpha.canvascopy.html b/tests/wpt/web-platform-tests/2dcontext/compositing/2d.composite.globalAlpha.canvascopy.html new file mode 100644 index 00000000000..e7978c89137 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/compositing/2d.composite.globalAlpha.canvascopy.html @@ -0,0 +1,40 @@ + + +Canvas test: 2d.composite.globalAlpha.canvascopy + + + + + + +

2d.composite.globalAlpha.canvascopy

+

+ + +

Actual output:

+

FAIL (fallback content)

+

Expected output:

+

    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html new file mode 100644 index 00000000000..3dbda598b63 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-1 + + + + + + +

    2d.fillStyle.parse.css-color-4-hsl-1

    +

    + +

    +

    Actual output:

    +

    FAIL (fallback content)

    +

    Expected output:

    +

      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html new file mode 100644 index 00000000000..25e98dc794c --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-2 + + + + + + +

      2d.fillStyle.parse.css-color-4-hsl-2

      +

      + +

      +

      Actual output:

      +

      FAIL (fallback content)

      +

      Expected output:

      +

        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html new file mode 100644 index 00000000000..de600d94bd8 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-3 + + + + + + +

        2d.fillStyle.parse.css-color-4-hsl-3

        +

        + +

        +

        Actual output:

        +

        FAIL (fallback content)

        +

        Expected output:

        +

          + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html new file mode 100644 index 00000000000..52d917c6cf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-4 + + + + + + +

          2d.fillStyle.parse.css-color-4-hsl-4

          +

          + +

          +

          Actual output:

          +

          FAIL (fallback content)

          +

          Expected output:

          +

            + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html new file mode 100644 index 00000000000..4f65b3dea2a --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-5 + + + + + + +

            2d.fillStyle.parse.css-color-4-hsl-5

            +

            + +

            +

            Actual output:

            +

            FAIL (fallback content)

            +

            Expected output:

            +

              + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html new file mode 100644 index 00000000000..19aa5974f2c --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-6 + + + + + + +

              2d.fillStyle.parse.css-color-4-hsl-6

              +

              + +

              +

              Actual output:

              +

              FAIL (fallback content)

              +

              Expected output:

              +

                + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html new file mode 100644 index 00000000000..d9b6a3c98c3 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-7 + + + + + + +

                2d.fillStyle.parse.css-color-4-hsl-7

                +

                + +

                +

                Actual output:

                +

                FAIL (fallback content)

                +

                Expected output:

                +

                  + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html new file mode 100644 index 00000000000..24e2b51830c --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-8 + + + + + + +

                  2d.fillStyle.parse.css-color-4-hsl-8

                  +

                  + +

                  +

                  Actual output:

                  +

                  FAIL (fallback content)

                  +

                  Expected output:

                  +

                    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html new file mode 100644 index 00000000000..9da548f3e72 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsl-9 + + + + + + +

                    2d.fillStyle.parse.css-color-4-hsl-9

                    +

                    + +

                    +

                    Actual output:

                    +

                    FAIL (fallback content)

                    +

                    Expected output:

                    +

                      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html new file mode 100644 index 00000000000..65881eeb15f --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-1 + + + + + + +

                      2d.fillStyle.parse.css-color-4-hsla-1

                      +

                      + +

                      +

                      Actual output:

                      +

                      FAIL (fallback content)

                      +

                      Expected output:

                      +

                        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html new file mode 100644 index 00000000000..91f5e345959 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-2 + + + + + + +

                        2d.fillStyle.parse.css-color-4-hsla-2

                        +

                        + +

                        +

                        Actual output:

                        +

                        FAIL (fallback content)

                        +

                        Expected output:

                        +

                          + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html new file mode 100644 index 00000000000..eb6c69526e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-3 + + + + + + +

                          2d.fillStyle.parse.css-color-4-hsla-3

                          +

                          + +

                          +

                          Actual output:

                          +

                          FAIL (fallback content)

                          +

                          Expected output:

                          +

                            + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html new file mode 100644 index 00000000000..ce5bdef7ac3 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-4 + + + + + + +

                            2d.fillStyle.parse.css-color-4-hsla-4

                            +

                            + +

                            +

                            Actual output:

                            +

                            FAIL (fallback content)

                            +

                            Expected output:

                            +

                              + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html new file mode 100644 index 00000000000..47b426daf54 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-5 + + + + + + +

                              2d.fillStyle.parse.css-color-4-hsla-5

                              +

                              + +

                              +

                              Actual output:

                              +

                              FAIL (fallback content)

                              +

                              Expected output:

                              +

                                + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html new file mode 100644 index 00000000000..6dc5e7aef3f --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-6 + + + + + + +

                                2d.fillStyle.parse.css-color-4-hsla-6

                                +

                                + +

                                +

                                Actual output:

                                +

                                FAIL (fallback content)

                                +

                                Expected output:

                                +

                                  + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html new file mode 100644 index 00000000000..a1069fea9fe --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-7 + + + + + + +

                                  2d.fillStyle.parse.css-color-4-hsla-7

                                  +

                                  + +

                                  +

                                  Actual output:

                                  +

                                  FAIL (fallback content)

                                  +

                                  Expected output:

                                  +

                                    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html new file mode 100644 index 00000000000..7d04b1ca552 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-8 + + + + + + +

                                    2d.fillStyle.parse.css-color-4-hsla-8

                                    +

                                    + +

                                    +

                                    Actual output:

                                    +

                                    FAIL (fallback content)

                                    +

                                    Expected output:

                                    +

                                      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html new file mode 100644 index 00000000000..0a10c6e61c5 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-hsla-9 + + + + + + +

                                      2d.fillStyle.parse.css-color-4-hsla-9

                                      +

                                      + +

                                      +

                                      Actual output:

                                      +

                                      FAIL (fallback content)

                                      +

                                      Expected output:

                                      +

                                        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html new file mode 100644 index 00000000000..fd6376e1a2a --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-1 + + + + + + +

                                        2d.fillStyle.parse.css-color-4-rgb-1

                                        +

                                        + +

                                        +

                                        Actual output:

                                        +

                                        FAIL (fallback content)

                                        +

                                        Expected output:

                                        +

                                          + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html new file mode 100644 index 00000000000..ec0f62344f0 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-2 + + + + + + +

                                          2d.fillStyle.parse.css-color-4-rgb-2

                                          +

                                          + +

                                          +

                                          Actual output:

                                          +

                                          FAIL (fallback content)

                                          +

                                          Expected output:

                                          +

                                            + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html new file mode 100644 index 00000000000..980abef36c4 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-3 + + + + + + +

                                            2d.fillStyle.parse.css-color-4-rgb-3

                                            +

                                            + +

                                            +

                                            Actual output:

                                            +

                                            FAIL (fallback content)

                                            +

                                            Expected output:

                                            +

                                              + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html new file mode 100644 index 00000000000..a2543b566ab --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-4 + + + + + + +

                                              2d.fillStyle.parse.css-color-4-rgb-4

                                              +

                                              + +

                                              +

                                              Actual output:

                                              +

                                              FAIL (fallback content)

                                              +

                                              Expected output:

                                              +

                                                + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html new file mode 100644 index 00000000000..6b310d763ba --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-5 + + + + + + +

                                                2d.fillStyle.parse.css-color-4-rgb-5

                                                +

                                                + +

                                                +

                                                Actual output:

                                                +

                                                FAIL (fallback content)

                                                +

                                                Expected output:

                                                +

                                                  + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html new file mode 100644 index 00000000000..d38f7e0ac0e --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgb-6 + + + + + + +

                                                  2d.fillStyle.parse.css-color-4-rgb-6

                                                  +

                                                  + +

                                                  +

                                                  Actual output:

                                                  +

                                                  FAIL (fallback content)

                                                  +

                                                  Expected output:

                                                  +

                                                    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html new file mode 100644 index 00000000000..83dfb2f86af --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-1 + + + + + + +

                                                    2d.fillStyle.parse.css-color-4-rgba-1

                                                    +

                                                    + +

                                                    +

                                                    Actual output:

                                                    +

                                                    FAIL (fallback content)

                                                    +

                                                    Expected output:

                                                    +

                                                      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html new file mode 100644 index 00000000000..390d0bd0fab --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-2 + + + + + + +

                                                      2d.fillStyle.parse.css-color-4-rgba-2

                                                      +

                                                      + +

                                                      +

                                                      Actual output:

                                                      +

                                                      FAIL (fallback content)

                                                      +

                                                      Expected output:

                                                      +

                                                        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html new file mode 100644 index 00000000000..f0fd88ee6c3 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-3 + + + + + + +

                                                        2d.fillStyle.parse.css-color-4-rgba-3

                                                        +

                                                        + +

                                                        +

                                                        Actual output:

                                                        +

                                                        FAIL (fallback content)

                                                        +

                                                        Expected output:

                                                        +

                                                          + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html new file mode 100644 index 00000000000..bd3e8edb2f8 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-4 + + + + + + +

                                                          2d.fillStyle.parse.css-color-4-rgba-4

                                                          +

                                                          + +

                                                          +

                                                          Actual output:

                                                          +

                                                          FAIL (fallback content)

                                                          +

                                                          Expected output:

                                                          +

                                                            + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.png new file mode 100644 index 00000000000..2733836c998 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html new file mode 100644 index 00000000000..0287ef693cd --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-5 + + + + + + +

                                                            2d.fillStyle.parse.css-color-4-rgba-5

                                                            +

                                                            + +

                                                            +

                                                            Actual output:

                                                            +

                                                            FAIL (fallback content)

                                                            +

                                                            Expected output:

                                                            +

                                                              + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html new file mode 100644 index 00000000000..09042c8778e --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.css-color-4-rgba-6 + + + + + + +

                                                              2d.fillStyle.parse.css-color-4-rgba-6

                                                              +

                                                              + +

                                                              +

                                                              Actual output:

                                                              +

                                                              FAIL (fallback content)

                                                              +

                                                              Expected output:

                                                              +

                                                                + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.png b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.png new file mode 100644 index 00000000000..c5661de82b2 Binary files /dev/null and b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.png differ diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html new file mode 100644 index 00000000000..25bab97b05d --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-1 + + + + + + +

                                                                2d.fillStyle.parse.invalid.css-color-4-hsl-1

                                                                +

                                                                + + +

                                                                Actual output:

                                                                +

                                                                FAIL (fallback content)

                                                                +

                                                                Expected output:

                                                                +

                                                                  + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html new file mode 100644 index 00000000000..f4a47f5d8aa --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-2 + + + + + + +

                                                                  2d.fillStyle.parse.invalid.css-color-4-hsl-2

                                                                  +

                                                                  + + +

                                                                  Actual output:

                                                                  +

                                                                  FAIL (fallback content)

                                                                  +

                                                                  Expected output:

                                                                  +

                                                                    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-7.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html similarity index 82% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-7.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html index 06580f64816..490c66f362e 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-7.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgba-7 +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-3 -

                                                                    2d.fillStyle.parse.invalid.rgba-7

                                                                    +

                                                                    2d.fillStyle.parse.invalid.css-color-4-hsl-3

                                                                    @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'hsl(0, 100% 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-7.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html similarity index 82% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-7.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html index bc0bb5ef6f6..a3ab91c16a8 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-7.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgb-7 +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-4 -

                                                                    2d.fillStyle.parse.invalid.rgb-7

                                                                    +

                                                                    2d.fillStyle.parse.invalid.css-color-4-hsl-4

                                                                    @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'hsl(0 100% 50% /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html new file mode 100644 index 00000000000..a437cd99cc7 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-5 + + + + + + +

                                                                    2d.fillStyle.parse.invalid.css-color-4-hsl-5

                                                                    +

                                                                    + + +

                                                                    Actual output:

                                                                    +

                                                                    FAIL (fallback content)

                                                                    +

                                                                    Expected output:

                                                                    +

                                                                      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html new file mode 100644 index 00000000000..5f71de33098 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-1 + + + + + + +

                                                                      2d.fillStyle.parse.invalid.css-color-4-hsla-1

                                                                      +

                                                                      + + +

                                                                      Actual output:

                                                                      +

                                                                      FAIL (fallback content)

                                                                      +

                                                                      Expected output:

                                                                      +

                                                                        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html new file mode 100644 index 00000000000..36c9fd1a6e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-2 + + + + + + +

                                                                        2d.fillStyle.parse.invalid.css-color-4-hsla-2

                                                                        +

                                                                        + + +

                                                                        Actual output:

                                                                        +

                                                                        FAIL (fallback content)

                                                                        +

                                                                        Expected output:

                                                                        +

                                                                          + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html new file mode 100644 index 00000000000..049ad397e00 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-3 + + + + + + +

                                                                          2d.fillStyle.parse.invalid.css-color-4-hsla-3

                                                                          +

                                                                          + + +

                                                                          Actual output:

                                                                          +

                                                                          FAIL (fallback content)

                                                                          +

                                                                          Expected output:

                                                                          +

                                                                            + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html new file mode 100644 index 00000000000..7a2534ceb29 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-1 + + + + + + +

                                                                            2d.fillStyle.parse.invalid.css-color-4-rgb-1

                                                                            +

                                                                            + + +

                                                                            Actual output:

                                                                            +

                                                                            FAIL (fallback content)

                                                                            +

                                                                            Expected output:

                                                                            +

                                                                              + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html similarity index 82% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-4.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html index e4d78b20e14..ca5a591ef64 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-4.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgb-4 +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-2 -

                                                                              2d.fillStyle.parse.invalid.rgb-4

                                                                              +

                                                                              2d.fillStyle.parse.invalid.css-color-4-rgb-2

                                                                              @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgb(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html new file mode 100644 index 00000000000..e34ddfdf9af --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-3 + + + + + + +

                                                                              2d.fillStyle.parse.invalid.css-color-4-rgb-3

                                                                              +

                                                                              + + +

                                                                              Actual output:

                                                                              +

                                                                              FAIL (fallback content)

                                                                              +

                                                                              Expected output:

                                                                              +

                                                                                + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html similarity index 82% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-5.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html index 92f933db799..682da31d2db 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-5.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgb-5 +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-4 -

                                                                                2d.fillStyle.parse.invalid.rgb-5

                                                                                +

                                                                                2d.fillStyle.parse.invalid.css-color-4-rgb-4

                                                                                @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255 0 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgb(0 0 0 /)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html new file mode 100644 index 00000000000..75a11dc199f --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-5 + + + + + + +

                                                                                2d.fillStyle.parse.invalid.css-color-4-rgb-5

                                                                                +

                                                                                + + +

                                                                                Actual output:

                                                                                +

                                                                                FAIL (fallback content)

                                                                                +

                                                                                Expected output:

                                                                                +

                                                                                  + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html new file mode 100644 index 00000000000..778fa479ce9 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-1 + + + + + + +

                                                                                  2d.fillStyle.parse.invalid.css-color-4-rgba-1

                                                                                  +

                                                                                  + + +

                                                                                  Actual output:

                                                                                  +

                                                                                  FAIL (fallback content)

                                                                                  +

                                                                                  Expected output:

                                                                                  +

                                                                                    + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html similarity index 82% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-6.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html index e3de9df5387..14c83a56912 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-6.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgb-6 +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-2 -

                                                                                    2d.fillStyle.parse.invalid.rgb-6

                                                                                    +

                                                                                    2d.fillStyle.parse.invalid.css-color-4-rgba-2

                                                                                    @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(255 0 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html new file mode 100644 index 00000000000..9647877b2a0 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-3 + + + + + + +

                                                                                    2d.fillStyle.parse.invalid.css-color-4-rgba-3

                                                                                    +

                                                                                    + + +

                                                                                    Actual output:

                                                                                    +

                                                                                    FAIL (fallback content)

                                                                                    +

                                                                                    Expected output:

                                                                                    +

                                                                                      + + diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html index 87b6a5731ce..0e3f8514847 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100%, 100%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html index 008e278b558..6343ab12525 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'hsl(0, 100.%, 50%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'hsl(0, 100%, 50%,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-6.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html similarity index 84% rename from tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-6.html rename to tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html index 3e7f06ad436..698a6cb9abc 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-6.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html @@ -1,13 +1,13 @@ -Canvas test: 2d.fillStyle.parse.invalid.rgba-6 +Canvas test: 2d.fillStyle.parse.invalid.hsla-3 -

                                                                                      2d.fillStyle.parse.invalid.rgba-6

                                                                                      +

                                                                                      2d.fillStyle.parse.invalid.hsla-3

                                                                                      @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'hsla(0, 0, 50%, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html index fc0433eae59..66fb8e13d28 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255.0, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html index 68c06e5ebec..7f9457c8220 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255, 0.0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgb(100%, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html index f864c9f2bc4..2530569c28d 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgb(255.0, 0, 0,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgb(255, - 1, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html index 774aed13d51..1dc343ad188 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html index 14065e63426..5f5bb7941ae 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255.0, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html index 5947169fe55..67ed7f2a226 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(100%, 0, 0, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(255, 0, 0, 1.)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html index 9870b14f9d1..aea9725a2dc 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 100%)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(255, 0, 0, '; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html index 4274996cae3..a149ed343a3 100644 --- a/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html +++ b/tests/wpt/web-platform-tests/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html @@ -21,7 +21,7 @@ _addTest(function(canvas, ctx) { ctx.fillStyle = '#0f0'; -try { ctx.fillStyle = 'rgba(255, 0, 0, 1. 0)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does +try { ctx.fillStyle = 'rgba(255, 0, 0, 1,)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); diff --git a/tests/wpt/web-platform-tests/2dcontext/line-styles/setLineDash.html b/tests/wpt/web-platform-tests/2dcontext/line-styles/setLineDash.html new file mode 100644 index 00000000000..06fcada768f --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/line-styles/setLineDash.html @@ -0,0 +1,104 @@ + + +setLineDash + + + + + diff --git a/tests/wpt/web-platform-tests/2dcontext/path-objects/2d.path.lineTo.nonfinite.details.html b/tests/wpt/web-platform-tests/2dcontext/path-objects/2d.path.lineTo.nonfinite.details.html new file mode 100644 index 00000000000..88886ebe245 --- /dev/null +++ b/tests/wpt/web-platform-tests/2dcontext/path-objects/2d.path.lineTo.nonfinite.details.html @@ -0,0 +1,31 @@ + + +Canvas test: 2d.path.lineTo.nonfinite.details + + + + + + +

                                                                                      2d.path.lineTo.nonfinite.details

                                                                                      +

                                                                                      lineTo() with Infinity/NaN for first arg still converts the second arg

                                                                                      + + +

                                                                                      Actual output:

                                                                                      +

                                                                                      FAIL (fallback content)

                                                                                      +

                                                                                      Expected output:

                                                                                      +

                                                                                        + + diff --git a/tests/wpt/web-platform-tests/2dcontext/tools/tests2d.yaml b/tests/wpt/web-platform-tests/2dcontext/tools/tests2d.yaml index 546e994fbe9..20a77dbd1f5 100644 --- a/tests/wpt/web-platform-tests/2dcontext/tools/tests2d.yaml +++ b/tests/wpt/web-platform-tests/2dcontext/tools/tests2d.yaml @@ -1005,6 +1005,26 @@ @assert pixel 50,25 ==~ 2,253,0,255; expected: green +- name: 2d.composite.globalAlpha.canvascopy + testing: + - 2d.composite.globalAlpha.image + code: | + var canvas2 = document.createElement('canvas'); + canvas2.width = 100; + canvas2.height = 50; + var ctx2 = canvas2.getContext('2d'); + ctx2.fillStyle = '#0f0'; + ctx2.fillRect(0, 0, 100, 50); + + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, 100, 50); + + ctx.globalCompositeOperation = 'copy' + ctx.globalAlpha = 0.51; + ctx.drawImage(canvas2, 0, 0); + @assert pixel 50,25 ==~ 0,255,0,130; + expected: green + - meta: | # Composite operation tests @@ -1372,6 +1392,40 @@ ('hsla-clamp-6', 'hsla(120, 100%, 0%, -2)', 0,0,0,0, ""), ('svg-1', 'gray', 128,128,128,255, ""), ('svg-2', 'grey', 128,128,128,255, ""), + # css-color-4 rgb() color function + # https://drafts.csswg.org/css-color/#numeric-rgb + ('css-color-4-rgb-1', 'rgb(0, 255.0, 0)', 0,255,0,255, ""), + ('css-color-4-rgb-2', 'rgb(0, 255, 0, 0.2)', 0,255,0,51, ""), + ('css-color-4-rgb-3', 'rgb(0, 255, 0, 20%)', 0,255,0,51, ""), + ('css-color-4-rgb-4', 'rgb(0 255 0)', 0,255,0,255, ""), + ('css-color-4-rgb-5', 'rgb(0 255 0 / 0.2)', 0,255,0,51, ""), + ('css-color-4-rgb-6', 'rgb(0 255 0 / 20%)', 0,255,0,51, ""), + ('css-color-4-rgba-1', 'rgba(0, 255.0, 0)', 0,255,0,255, ""), + ('css-color-4-rgba-2', 'rgba(0, 255, 0, 0.2)', 0,255,0,51, ""), + ('css-color-4-rgba-3', 'rgba(0, 255, 0, 20%)', 0,255,0,51, ""), + ('css-color-4-rgba-4', 'rgba(0 255 0)', 0,255,0,255, ""), + ('css-color-4-rgba-5', 'rgba(0 255 0 / 0.2)', 0,255,0,51, ""), + ('css-color-4-rgba-6', 'rgba(0 255 0 / 20%)', 0,255,0,51, ""), + # css-color-4 hsl() color function + # https://drafts.csswg.org/css-color/#the-hsl-notation + ('css-color-4-hsl-1', 'hsl(120 100.0% 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsl-2', 'hsl(120 100.0% 50.0% / 0.2)', 0,255,0,51, ""), + ('css-color-4-hsl-3', 'hsl(120.0, 100.0%, 50.0%, 0.2)', 0,255,0,51, ""), + ('css-color-4-hsl-4', 'hsl(120.0, 100.0%, 50.0%, 20%)', 0,255,0,51, ""), + ('css-color-4-hsl-5', 'hsl(120deg, 100.0%, 50.0%, 0.2)', 0,255,0,51, ""), + ('css-color-4-hsl-6', 'hsl(120deg, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsl-7', 'hsl(133.33333333grad, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsl-8', 'hsl(2.0943951024rad, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsl-9', 'hsl(0.3333333333turn, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsla-1', 'hsl(120 100.0% 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsla-2', 'hsl(120 100.0% 50.0% / 0.2)', 0,255,0,51, ""), + ('css-color-4-hsla-3', 'hsl(120.0, 100.0%, 50.0%, 0.2)', 0,255,0,51, ""), + ('css-color-4-hsla-4', 'hsl(120.0, 100.0%, 50.0%, 20%)', 0,255,0,51, ""), + ('css-color-4-hsla-5', 'hsl(120deg, 100.0%, 50.0%, 0.2)', 0,255,0,51, ""), + ('css-color-4-hsla-6', 'hsl(120deg, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsla-7', 'hsl(133.33333333grad, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsla-8', 'hsl(2.0943951024rad, 100.0%, 50.0%)', 0,255,0,255, ""), + ('css-color-4-hsla-9', 'hsl(0.3333333333turn, 100.0%, 50.0%)', 0,255,0,255, ""), # currentColor is handled later ]: # TODO: test by retrieving fillStyle, instead of actually drawing? @@ -1404,33 +1458,47 @@ ('hex6', '#fg0000'), ('hex7', '#ff0000f'), ('hex8', '#fg0000ff'), - ('rgb-1', 'rgb(255.0, 0, 0)'), - ('rgb-2', 'rgb(255, 0.0, 0)'), - ('rgb-3', 'rgb(255.0, 0, 0,)'), - ('rgb-4', 'rgb(100%, 0, 0)'), - ('rgb-5', 'rgb(255 0 0)'), - ('rgb-6', 'rgb(255, - 1, 0)'), - ('rgb-7', 'rgb(255, 0, 0, 1)'), - ('rgba-1', 'rgba(255, 0, 0)'), - ('rgba-2', 'rgba(255.0, 0, 0, 1)'), - ('rgba-3', 'rgba(100%, 0, 0, 1)'), - ('rgba-4', 'rgba(255, 0, 0, 100%)'), - ('rgba-5', 'rgba(255, 0, 0, 1. 0)'), - ('rgba-6', 'rgba(255, 0, 0, 1.)'), - ('rgba-7', 'rgba(255, 0, 0, '), + ('rgb-1', 'rgb(255.0, 0, 0,)'), + ('rgb-2', 'rgb(100%, 0, 0)'), + ('rgb-3', 'rgb(255, - 1, 0)'), + ('rgba-1', 'rgba(100%, 0, 0, 1)'), + ('rgba-2', 'rgba(255, 0, 0, 1. 0)'), + ('rgba-3', 'rgba(255, 0, 0, 1.)'), + ('rgba-4', 'rgba(255, 0, 0, '), + ('rgba-5', 'rgba(255, 0, 0, 1,)'), ('hsl-1', 'hsl(0%, 100%, 50%)'), ('hsl-2', 'hsl(z, 100%, 50%)'), ('hsl-3', 'hsl(0, 0, 50%)'), ('hsl-4', 'hsl(0, 100%, 0)'), - ('hsl-5', 'hsl(0, 100%, 100%, 1)'), - ('hsl-6', 'hsl(0, 100.%, 50%)'), + ('hsl-5', 'hsl(0, 100.%, 50%)'), + ('hsl-6', 'hsl(0, 100%, 50%,)'), ('hsla-1', 'hsla(0%, 100%, 50%, 1)'), ('hsla-2', 'hsla(0, 0, 50%, 1)'), + ('hsla-3', 'hsla(0, 0, 50%, 1,)'), ('name-1', 'darkbrown'), ('name-2', 'firebrick1'), ('name-3', 'red blue'), ('name-4', '"red"'), ('name-5', '"red'), + # css-color-4 color function + # comma and comma-less expressions should not mix together. + ('css-color-4-rgb-1', 'rgb(255, 0, 0 / 1)'), + ('css-color-4-rgb-2', 'rgb(255 0 0, 1)'), + ('css-color-4-rgb-3', 'rgb(255, 0 0)'), + ('css-color-4-rgba-1', 'rgba(255, 0, 0 / 1)'), + ('css-color-4-rgba-2', 'rgba(255 0 0, 1)'), + ('css-color-4-rgba-3', 'rgba(255, 0 0)'), + ('css-color-4-hsl-1', 'hsl(0, 100%, 50% / 1)'), + ('css-color-4-hsl-2', 'hsl(0 100% 50%, 1)'), + ('css-color-4-hsl-3', 'hsl(0, 100% 50%)'), + ('css-color-4-hsla-1', 'hsla(0, 100%, 50% / 1)'), + ('css-color-4-hsla-2', 'hsla(0 100% 50%, 1)'), + ('css-color-4-hsla-3', 'hsla(0, 100% 50%)'), + # trailing slash + ('css-color-4-rgb-4', 'rgb(0 0 0 /)'), + ('css-color-4-rgb-5', 'rgb(0, 0, 0 /)'), + ('css-color-4-hsl-4', 'hsl(0 100% 50% /)'), + ('css-color-4-hsl-5', 'hsl(0, 100%, 50% /)'), ]: test = { 'name': '2d.fillStyle.parse.invalid.%s' % name, @@ -6197,6 +6265,18 @@ @assert pixel 90,45 == 0,255,0,255; expected: green +- name: 2d.path.lineTo.nonfinite.details + desc: lineTo() with Infinity/NaN for first arg still converts the second arg + testing: + - 2d.nonfinite + code: | + for (var arg1 of [Infinity, -Infinity, NaN]) { + var converted = false; + ctx.lineTo(arg1, { valueOf: function() { converted = true; return 0; } }); + @assert converted; + } + expected: clear + - name: 2d.path.quadraticCurveTo.ensuresubpath.1 desc: If there is no subpath, the first control point is added (and nothing is drawn up to it) testing: diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm b/tests/wpt/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm new file mode 100644 index 00000000000..0d35218b9e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm @@ -0,0 +1,382 @@ + + + +IDBCursor.continuePrimaryKey() - Exception Orders + + + + + + + + +
                                                                                        diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-abort.html b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-abort.html new file mode 100644 index 00000000000..f8dca52020e --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-abort.html @@ -0,0 +1,110 @@ + +IndexedDB: index renaming support in aborted transactions + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-errors.html b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-errors.html new file mode 100644 index 00000000000..1f50f36c64f --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename-errors.html @@ -0,0 +1,130 @@ + +IndexedDB: index renaming error handling + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename.html b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename.html new file mode 100644 index 00000000000..2ef26d295e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbindex-rename.html @@ -0,0 +1,298 @@ + +IndexedDB: index renaming support + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-abort.html b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-abort.html new file mode 100644 index 00000000000..b59117a8084 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-abort.html @@ -0,0 +1,120 @@ + +IndexedDB: object store renaming support in aborted transactions + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-errors.html b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-errors.html new file mode 100644 index 00000000000..8e603baeccd --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-errors.html @@ -0,0 +1,118 @@ + +IndexedDB: object store renaming error handling + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-store.html b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-store.html new file mode 100644 index 00000000000..47860b59014 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/idbobjectstore-rename-store.html @@ -0,0 +1,366 @@ + +IndexedDB: object store renaming support + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/interfaces.html b/tests/wpt/web-platform-tests/IndexedDB/interfaces.html index cc4e7f20392..55e752f2630 100644 --- a/tests/wpt/web-platform-tests/IndexedDB/interfaces.html +++ b/tests/wpt/web-platform-tests/IndexedDB/interfaces.html @@ -21,8 +21,8 @@ setup(function() { var idls = request.responseText; idlArray.add_untested_idls("[PrimaryGlobal] interface Window { };"); - idlArray.add_untested_idls("interface Event { };"); - idlArray.add_untested_idls("interface EventTarget { };"); + idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface Event { };"); + idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface EventTarget { };"); // From Indexed DB: idlArray.add_idls(idls); diff --git a/tests/wpt/web-platform-tests/IndexedDB/interfaces.idl b/tests/wpt/web-platform-tests/IndexedDB/interfaces.idl index 353864de259..de196bf2d3a 100644 --- a/tests/wpt/web-platform-tests/IndexedDB/interfaces.idl +++ b/tests/wpt/web-platform-tests/IndexedDB/interfaces.idl @@ -9,6 +9,7 @@ enum IDBRequestReadyState { "done" }; +[Exposed=(Window,Worker)] interface IDBKeyRange { readonly attribute any lower; readonly attribute any upper; @@ -42,6 +43,7 @@ dictionary IDBVersionChangeEventInit : EventInit { unsigned long long? newVersion = null; }; +[Exposed=(Window,Worker)] interface IDBRequest : EventTarget { readonly attribute any result; readonly attribute DOMError error; @@ -52,12 +54,14 @@ interface IDBRequest : EventTarget { attribute EventHandler onerror; }; +[Exposed=(Window,Worker)] interface IDBOpenDBRequest : IDBRequest { attribute EventHandler onblocked; attribute EventHandler onupgradeneeded; }; -[Constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict)] +[Exposed=(Window,Worker), + Constructor(DOMString type, optional IDBVersionChangeEventInit eventInitDict)] interface IDBVersionChangeEvent : Event { readonly attribute unsigned long long oldVersion; readonly attribute unsigned long long? newVersion; @@ -68,12 +72,14 @@ interface IDBEnvironment { readonly attribute IDBFactory indexedDB; }; +[Exposed=(Window,Worker)] interface IDBFactory { IDBOpenDBRequest open (DOMString name, [EnforceRange] optional unsigned long long version); IDBOpenDBRequest deleteDatabase (DOMString name); short cmp (any first, any second); }; +[Exposed=(Window,Worker)] interface IDBDatabase : EventTarget { readonly attribute DOMString name; readonly attribute unsigned long long version; @@ -88,6 +94,7 @@ interface IDBDatabase : EventTarget { attribute EventHandler onversionchange; }; +[Exposed=(Window,Worker)] interface IDBObjectStore { attribute DOMString name; readonly attribute any keyPath; @@ -106,6 +113,7 @@ interface IDBObjectStore { IDBRequest count (optional any key); }; +[Exposed=(Window,Worker)] interface IDBIndex { attribute DOMString name; readonly attribute IDBObjectStore objectStore; @@ -119,6 +127,7 @@ interface IDBIndex { IDBRequest count (optional any key); }; +[Exposed=(Window,Worker)] interface IDBCursor { readonly attribute (IDBObjectStore or IDBIndex) source; readonly attribute IDBCursorDirection direction; @@ -130,10 +139,12 @@ interface IDBCursor { IDBRequest delete (); }; +[Exposed=(Window,Worker)] interface IDBCursorWithValue : IDBCursor { readonly attribute any value; }; +[Exposed=(Window,Worker)] interface IDBTransaction : EventTarget { readonly attribute IDBTransactionMode mode; readonly attribute IDBDatabase db; diff --git a/tests/wpt/web-platform-tests/IndexedDB/interfaces.worker.js b/tests/wpt/web-platform-tests/IndexedDB/interfaces.worker.js index 161acca34da..87e33805087 100644 --- a/tests/wpt/web-platform-tests/IndexedDB/interfaces.worker.js +++ b/tests/wpt/web-platform-tests/IndexedDB/interfaces.worker.js @@ -10,9 +10,9 @@ request.onload = function() { var idlArray = new IdlArray(); var idls = request.responseText; - idlArray.add_untested_idls("interface WorkerGlobalScope {};"); - idlArray.add_untested_idls("interface Event { };"); - idlArray.add_untested_idls("interface EventTarget { };"); + idlArray.add_untested_idls("[Exposed=Worker] interface WorkerGlobalScope {};"); + idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface Event { };"); + idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface EventTarget { };"); // From Indexed DB: idlArray.add_idls("WorkerGlobalScope implements IDBEnvironment;"); diff --git a/tests/wpt/web-platform-tests/IndexedDB/support-promises.js b/tests/wpt/web-platform-tests/IndexedDB/support-promises.js new file mode 100644 index 00000000000..c24a9fb92bd --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/support-promises.js @@ -0,0 +1,200 @@ +// Returns an IndexedDB database name likely to be unique to the test case. +const databaseName = (testCase) => { + return 'db' + self.location.pathname + '-' + testCase.name; +}; + +// Creates an EventWatcher covering all the events that can be issued by +// IndexedDB requests and transactions. +const requestWatcher = (testCase, request) => { + return new EventWatcher(testCase, request, + ['error', 'success', 'upgradeneeded']); +}; + +// Migrates an IndexedDB database whose name is unique for the test case. +// +// newVersion must be greater than the database's current version. +// +// migrationCallback will be called during a versionchange transaction and will +// be given the created database and the versionchange transaction. +// +// Returns a promise. If the versionchange transaction goes through, the promise +// resolves to an IndexedDB database that must be closed by the caller. If the +// versionchange transaction is aborted, the promise resolves to an error. +const migrateDatabase = (testCase, newVersion, migrationCallback) => { + // We cannot use eventWatcher.wait_for('upgradeneeded') here, because + // the versionchange transaction auto-commits before the Promise's then + // callback gets called. + return new Promise((resolve, reject) => { + const request = indexedDB.open(databaseName(testCase), newVersion); + request.onupgradeneeded = testCase.step_func(event => { + const database = event.target.result; + const transaction = event.target.transaction; + let abortCalled = false; + + // We wrap IDBTransaction.abort so we can set up the correct event + // listeners and expectations if the test chooses to abort the + // versionchange transaction. + const transactionAbort = transaction.abort.bind(transaction); + transaction.abort = () => { + request.onerror = event => { + event.preventDefault(); + resolve(event); + }; + request.onsuccess = () => reject(new Error( + 'indexedDB.open should not succeed after the ' + + 'versionchange transaction is aborted')); + transactionAbort(); + abortCalled = true; + } + + migrationCallback(database, transaction); + if (!abortCalled) { + request.onsuccess = null; + resolve(requestWatcher(testCase, request).wait_for('success')); + } + }); + request.onerror = event => reject(event.target.error); + request.onsuccess = () => reject(new Error( + 'indexedDB.open should not succeed without creating a ' + + 'versionchange transaction')); + }).then(event => event.target.result || event.target.error); +}; + +// Creates an IndexedDB database whose name is unique for the test case. +// +// setupCallback will be called during a versionchange transaction, and will be +// given the created database and the versionchange transaction. +// +// Returns a promise that resolves to an IndexedDB database. The caller must +// close the database. +const createDatabase = (testCase, setupCallback) => { + const request = indexedDB.deleteDatabase(databaseName(testCase)); + const eventWatcher = requestWatcher(testCase, request); + + return eventWatcher.wait_for('success').then(event => + migrateDatabase(testCase, 1, setupCallback)); +}; + +// Opens an IndexedDB database without performing schema changes. +// +// The given version number must match the database's current version. +// +// Returns a promise that resolves to an IndexedDB database. The caller must +// close the database. +const openDatabase = (testCase, version) => { + const request = indexedDB.open(databaseName(testCase), version); + const eventWatcher = requestWatcher(testCase, request); + return eventWatcher.wait_for('success').then( + event => event.target.result); +} + +// The data in the 'books' object store records in the first example of the +// IndexedDB specification. +const BOOKS_RECORD_DATA = [ + { title: 'Quarry Memories', author: 'Fred', isbn: 123456 }, + { title: 'Water Buffaloes', author: 'Fred', isbn: 234567 }, + { title: 'Bedrock Nights', author: 'Barney', isbn: 345678 }, +]; + +// Creates a 'books' object store whose contents closely resembles the first +// example in the IndexedDB specification. +const createBooksStore = (testCase, database) => { + const store = database.createObjectStore('books', + { keyPath: 'isbn', autoIncrement: true }); + store.createIndex('by_author', 'author'); + store.createIndex('by_title', 'title', { unique: true }); + for (let record of BOOKS_RECORD_DATA) + store.put(record); + return store; +}; + +// Creates a 'not_books' object store used to test renaming into existing or +// deleted store names. +const createNotBooksStore = (testCase, database) => { + const store = database.createObjectStore('not_books'); + store.createIndex('not_by_author', 'author'); + store.createIndex('not_by_title', 'title', { unique: true }); + return store; +}; + +// Verifies that an object store's indexes match the indexes used to create the +// books store in the test database's version 1. +// +// The errorMessage is used if the assertions fail. It can state that the +// IndexedDB implementation being tested is incorrect, or that the testing code +// is using it incorrectly. +const checkStoreIndexes = (testCase, store, errorMessage) => { + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], errorMessage); + const authorIndex = store.index('by_author'); + const titleIndex = store.index('by_title'); + return Promise.all([ + checkAuthorIndexContents(testCase, authorIndex, errorMessage), + checkTitleIndexContents(testCase, titleIndex, errorMessage), + ]); +}; + +// Verifies that an object store's key generator is in the same state as the +// key generator created for the books store in the test database's version 1. +// +// The errorMessage is used if the assertions fail. It can state that the +// IndexedDB implementation being tested is incorrect, or that the testing code +// is using it incorrectly. +const checkStoreGenerator = (testCase, store, expectedKey, errorMessage) => { + const request = store.put( + { title: 'Bedrock Nights ' + expectedKey, author: 'Barney' }); + const eventWatcher = requestWatcher(testCase, request); + return eventWatcher.wait_for('success').then(() => { + const result = request.result; + assert_equals(result, expectedKey, errorMessage); + }); +}; + +// Verifies that an object store's contents matches the contents used to create +// the books store in the test database's version 1. +// +// The errorMessage is used if the assertions fail. It can state that the +// IndexedDB implementation being tested is incorrect, or that the testing code +// is using it incorrectly. +const checkStoreContents = (testCase, store, errorMessage) => { + const request = store.get(123456); + const eventWatcher = requestWatcher(testCase, request); + return eventWatcher.wait_for('success').then(() => { + const result = request.result; + assert_equals(result.isbn, BOOKS_RECORD_DATA[0].isbn, errorMessage); + assert_equals(result.author, BOOKS_RECORD_DATA[0].author, errorMessage); + assert_equals(result.title, BOOKS_RECORD_DATA[0].title, errorMessage); + }); +}; + +// Verifies that index matches the 'by_author' index used to create the +// by_author books store in the test database's version 1. +// +// The errorMessage is used if the assertions fail. It can state that the +// IndexedDB implementation being tested is incorrect, or that the testing code +// is using it incorrectly. +const checkAuthorIndexContents = (testCase, index, errorMessage) => { + const request = index.get(BOOKS_RECORD_DATA[2].author); + const eventWatcher = requestWatcher(testCase, request); + return eventWatcher.wait_for('success').then(() => { + const result = request.result; + assert_equals(result.isbn, BOOKS_RECORD_DATA[2].isbn, errorMessage); + assert_equals(result.title, BOOKS_RECORD_DATA[2].title, errorMessage); + }); +}; + +// Verifies that an index matches the 'by_title' index used to create the books +// store in the test database's version 1. +// +// The errorMessage is used if the assertions fail. It can state that the +// IndexedDB implementation being tested is incorrect, or that the testing code +// is using it incorrectly. +const checkTitleIndexContents = (testCase, index, errorMessage) => { + const request = index.get(BOOKS_RECORD_DATA[2].title); + const eventWatcher = requestWatcher(testCase, request); + return eventWatcher.wait_for('success').then(() => { + const result = request.result; + assert_equals(result.isbn, BOOKS_RECORD_DATA[2].isbn, errorMessage); + assert_equals(result.author, BOOKS_RECORD_DATA[2].author, errorMessage); + }); +}; diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-generator-revert.html b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-generator-revert.html new file mode 100644 index 00000000000..770d623f7b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-generator-revert.html @@ -0,0 +1,108 @@ + +IndexedDB: aborting transactions reverts an object store's key generator state + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert.html b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert.html new file mode 100644 index 00000000000..88ea28e22fa --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert.html @@ -0,0 +1,276 @@ + +IndexedDB: aborting transactions reverts index metadata + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert.html b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert.html new file mode 100644 index 00000000000..4a00d4113ad --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert.html @@ -0,0 +1,291 @@ + +IndexedDB: aborting transactions reverts multiple operations on the same metadata + + + + + + diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert.html b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert.html new file mode 100644 index 00000000000..1a109d06928 --- /dev/null +++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert.html @@ -0,0 +1,233 @@ + +IndexedDB: aborting transactions reverts object store metadata + + + + + + diff --git a/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js b/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js index 7a36f366660..5d1c5486f3d 100644 --- a/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js +++ b/tests/wpt/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.worker.js @@ -1,3 +1,4 @@ +// timeout=long importScripts("/resources/testharness.js"); importScripts("wrapKey_unwrapKey.js"); diff --git a/tests/wpt/web-platform-tests/WebIDL/current-realm.html b/tests/wpt/web-platform-tests/WebIDL/current-realm.html new file mode 100644 index 00000000000..fd24709b3be --- /dev/null +++ b/tests/wpt/web-platform-tests/WebIDL/current-realm.html @@ -0,0 +1,145 @@ + + + +Current Realm + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-after-send.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-after-send.htm index c4885c9911b..523a0d616b6 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-after-send.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-after-send.htm @@ -4,6 +4,7 @@ XMLHttpRequest: abort() after send() + @@ -19,36 +20,26 @@ var test = async_test() test.step(function() { var client = new XMLHttpRequest(), - control_flag = false, - result = [], - expected = [1, 4, 'progress', 'abort', 'loadend'] // open() -> 1, abort() -> 4 - client.onreadystatechange = function() { - test.step(function() { - result.push(client.readyState) - if(client.readyState == 4) { - control_flag = true - assert_equals(client.responseXML, null) - assert_equals(client.responseText, "") - assert_equals(client.status, 0) - assert_equals(client.statusText, "") - assert_equals(client.getAllResponseHeaders(), "") - assert_equals(client.getResponseHeader('Content-Type'), null) - } - }) - } + control_flag = false; + prepare_xhr_for_event_order_test(client); + client.addEventListener("readystatechange", test.step_func(function() { + if(client.readyState == 4) { + control_flag = true + assert_equals(client.responseXML, null) + assert_equals(client.responseText, "") + assert_equals(client.status, 0) + assert_equals(client.statusText, "") + assert_equals(client.getAllResponseHeaders(), "") + assert_equals(client.getResponseHeader('Content-Type'), null) + } + })) client.open("GET", "resources/well-formed.xml", true) client.send(null) - client.addEventListener('progress', logEvt) - client.addEventListener('abort', logEvt) - client.addEventListener('loadend', logEvt) client.abort() assert_true(control_flag) assert_equals(client.readyState, 0) - assert_array_equals(result, expected) + assert_xhr_event_order_matches([1, "loadstart(0,0,false)", 4, "abort(0,0,false)", "loadend(0,0,false)"]) test.done() - function logEvt (e) { - result.push(e.type) - } }) diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js index 4ddb84fe8b7..381a0bff81e 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-open.js @@ -7,8 +7,8 @@ test.step(function() { assert_unreached() }) } + assert_equals(client.readyState, 1, "before abort()") client.abort() - assert_equals(client.readyState, 0) - assert_throws("InvalidStateError", function() { client.send("test") }, "calling send() after abort()") + assert_equals(client.readyState, 1, "after abort()") }) test.done() diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-upload.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-upload.htm index 766dcc4693d..9fbc8b9bbb4 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-upload.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-during-upload.htm @@ -18,7 +18,7 @@ client.open("POST", "resources/delay.py?ms=1000") client.addEventListener("loadend", function(e) { test.step(function() { - assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,9999,true)", 4, "upload.progress(0,0,false)", "upload.abort(0,0,false)", "upload.loadend(0,0,false)", "progress(0,0,false)", "abort(0,0,false)", "loadend(0,0,false)"]); + assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,9999,true)", 4, "upload.abort(0,0,false)", "upload.loadend(0,0,false)", "abort(0,0,false)", "loadend(0,0,false)"]); test.done() }) }); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-abort.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-abort.htm index 2382241cad3..eb2b2b743e6 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-abort.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-abort.htm @@ -4,7 +4,7 @@ - XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. send() throws after abort(). + XMLHttpRequest: The abort() method: do not fire abort event in OPENED state when send() flag is unset. @@ -24,6 +24,7 @@ if (xhr.readyState == 1) { xhr.abort(); + assert_equals(xhr.readyState, 1, "abort() cannot change readyState when readyState is 1 and send() flag is unset") } }); }; @@ -37,7 +38,7 @@ }; xhr.open("GET", "./resources/content.py", true); // This should cause a readystatechange event that calls abort() - assert_throws("InvalidStateError", function(){ xhr.send() }) + xhr.send() // should not throw since abort() was a no-op test.done() }); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-order.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-order.htm index cb405a71acc..f05c20628c4 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-order.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/abort-event-order.htm @@ -37,7 +37,7 @@ { test.step(function() { - assert_xhr_event_order_matches([1, "loadstart(0,0,false)", 4, "upload.progress(0,0,false)", "upload.abort(0,0,false)", "upload.loadend(0,0,false)", "progress(0,0,false)", "abort(0,0,false)", "loadend(0,0,false)"]); + assert_xhr_event_order_matches([1, "loadstart(0,0,false)", 4, "upload.abort(0,0,false)", "upload.loadend(0,0,false)", "abort(0,0,false)", "loadend(0,0,false)"]); assert_equals(xhr.readyState, 0, 'state should be UNSENT'); test.done(); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/event-timeout-order.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/event-timeout-order.htm index 1d9ba31d6e0..7376ca2f8b1 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/event-timeout-order.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/event-timeout-order.htm @@ -20,7 +20,7 @@ prepare_xhr_for_event_order_test(xhr); xhr.addEventListener("loadend", function() { test.step(function() { - assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,12,true)", 4, "upload.progress(0,0,false)", "upload.timeout(0,0,false)", "upload.loadend(0,0,false)", "progress(0,0,false)", "timeout(0,0,false)", "loadend(0,0,false)"]); + assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,12,true)", 4, "upload.timeout(0,0,false)", "upload.loadend(0,0,false)", "timeout(0,0,false)", "loadend(0,0,false)"]); test.done(); }); }); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm similarity index 100% rename from tests/wpt/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.sub.htm rename to tests/wpt/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/open-during-abort.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/open-during-abort.htm index 1d01415d55b..d03ca7afa63 100755 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/open-during-abort.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/open-during-abort.htm @@ -26,6 +26,7 @@ abort_flag = true client.abort() assert_array_equals(result, expected) + assert_equals(client.readyState, 1) // abort() should only set state to UNSENT when DONE }) diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm index dc166a2396a..058064636d4 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm @@ -36,17 +36,20 @@ * If lengthComputable is true: * Event.total must match Content-length header - * event.loaded should be a smaller number while resource is loading - and match Content-length when loading is finished - * Setting event.loaded to equal event.total for each progress event if the - resource is not fully downloaded would be cheating + * event.loaded must only ever increase in progress events + (and may never repeat its value). + * event.loaded must never exceed the Content-length. * If lengthComputable is false: * event.total should be 0 + * event.loaded must only ever increase in progress events + (and may never repeat its value). * event.loaded should be the length of the decompressed content, i.e. bigger than Content-length header value when finished loading */ + var lastTotal; + var lastLoaded = -1; client.addEventListener('loadend', test.step_func(function(e){ var len = parseInt(client.getResponseHeader('content-length'), 10) if(e.lengthComputable){ @@ -59,14 +62,17 @@ test.done(); }), false) client.addEventListener('progress', test.step_func(function(e){ - if(e.lengthComputable && e.total && e.loaded && e.target.readyState < 4){ - assert_not_equals(e.total, e.loaded, 'total should not equal loaded while download/decode is incomplete') - // We should only do this assertation once - // it's theoretically possible that all the data would get in - // and a progress event fire before the readyState switches from 3 to 4 - - // in this case we might report bogus and random failures. Better to remove the event listener again.. - client.removeEventListener('progress', arguments.callee, false); + if(lastTotal === undefined){ + lastTotal = e.total; } + if(e.lengthComputable && e.total && e.loaded){ + assert_equals(e.total, lastTotal, 'event.total should remain invariant') + assert_less_than_equal(e.loaded, lastTotal, 'event.loaded should not exceed content-length') + }else{ + assert_equals(e.total, 0, 'event.total should be 0') + } + assert_greater_than(e.loaded, lastLoaded, 'event.loaded should only ever increase') + lastLoaded = e.loaded; }), false) // image.gif is 165375 bytes compressed. Sending 45000 bytes at a time with 1 second delay will load it in 4 seconds client.open("GET", "resources/image.gif?pipe=gzip|trickle(45000:d1:r2)", true) diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm new file mode 100644 index 00000000000..4e4c3faff90 --- /dev/null +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm @@ -0,0 +1,23 @@ + + + + XMLHttpRequest: send() with document.domain set: loading documents from original origin after setting document.domain + + + + + + + diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm new file mode 100644 index 00000000000..073268c21c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm @@ -0,0 +1,20 @@ + + + + XMLHttpRequest: send() with document.domain set: loading documents from the origin document.domain was set to should throw + + + + + + + diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js new file mode 100644 index 00000000000..f5c762b042b --- /dev/null +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js @@ -0,0 +1,29 @@ +function assert_equals(value, expected) { + if (value != expected) { + throw "Got wrong value.\nExpected '" + expected + "',\ngot '" + value + "'"; + } +} + +function assert_throws(expected_exc, func) { + try { + func.call(this); + } catch(e) { + var actual = e.name || e.type; + if (actual != expected_exc) { + throw "Got wrong exception.\nExpected '" + expected_exc + "',\ngot '" + actual + "'."; + } + return; + } + throw "Expected exception, but none was thrown"; +} + +function run_test(test, name) { + var result = {passed: true, message: null, name: name}; + try { + test(); + } catch(e) { + result.passed = false; + result.message = e + ""; + } + opener.postMessage(result, "*"); +} diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-event-order.js b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-event-order.js index 820f9ee2214..77fc0e784ef 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-event-order.js +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-event-order.js @@ -21,13 +21,60 @@ } } + function getNextEvent(arr) { + var eventStr = arr.shift(); + + // we can only handle strings, numbers (readystates) and undefined + if (eventStr === undefined) { + return event; + } + if (typeof eventStr !== "string") { + if (Number.isInteger(eventStr)) { + eventStr = "readystatechange(" + eventStr + ")"; + } else { + throw "Test error: unexpected event type " + eventStr; + } + } + + // parse out the general type, loaded and total values + var type = eventStr.type = eventStr.split("(")[0].split(".").pop(); + eventStr.mayFollowOptionalProgressEvents = type == "progress" || + type == "load" || type == "abort" || type == "error"; + var loadedAndTotal = eventStr.match(/\((\d)+,(\d)+/); + if (loadedAndTotal) { + eventStr.loaded = parseInt(loadedAndTotal[0]); + eventStr.total = parseInt(loadedAndTotal[1]); + } + + return eventStr; + } + global.assert_xhr_event_order_matches = function(expected) { - try { - assert_array_equals(recorded_xhr_events, expected); - } catch(e) { - e.message += "\nRecorded events were:" + recorded_xhr_events.join(", "); - e.message += "\nExpected events were:" + expected.join(", "); - throw e; + var recorded = recorded_xhr_events; + var lastRecordedLoaded = -1; + + while(expected.length && recorded.length) { + var currentExpected = getNextEvent(expected), + currentRecorded = getNextEvent(recorded); + + // skip to the last progress event if we've hit one + while (recorded.length && currentRecorded.type == "progress") { + assert_greater(currentRecorded.loaded, lastRecordedLoaded, + "progress event 'loaded' values must only increase"); + lastRecordedLoaded = currentRecorded.loaded; + currentRecorded = getNextEvent(recorded); + } + if (currentRecorded.type == "loadstart") { + lastRecordedLoaded = -1; + } + + assert_equals(currentRecorded, currentExpected); + } + if (recorded.length) { + throw "\nUnexpected extra events: " + recorded.join(", "); + } + if (expected.length) { + throw "\nExpected more events: " + expected.join(", "); } } }(this)); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-basic.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-basic.htm index cc4b8dc4838..a3ce7b5b544 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-basic.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-basic.htm @@ -19,7 +19,7 @@ assert_equals(client.responseXML.documentElement.localName, "html", 'localName is html') assert_equals(client.responseXML.documentElement.childNodes.length, 5, 'childNodes is 5') assert_equals(client.responseXML.getElementById("n1").localName, client.responseXML.documentElement.childNodes[1].localName) - assert_equals(client.responseXML.getElementById("n2"), client.responseXML.documentElement.childrenNodes[3], 'getElementById("n2")') + assert_equals(client.responseXML.getElementById("n2"), client.responseXML.documentElement.childNodes[3], 'getElementById("n2")') assert_equals(client.responseXML.getElementsByTagName("p")[1].namespaceURI, "namespacesarejuststrings", 'namespaceURI') }) test(function() { diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm index c12f21b260b..18e3fb2f2b7 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm @@ -10,7 +10,7 @@
                                                                                        -
                                                                                        diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html b/tests/wpt/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html index 98fef659238..e7ab989fdc6 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html @@ -20,17 +20,19 @@ ["invalid mime type", new Blob(["data"], {type: "Invalid \r\n mime \r\n type"})] ]; - blobTests.forEach(function(item){ + function doSyncTest(testItem, method) { test(function() { var xhr = new XMLHttpRequest(); - xhr.open("POST", "./resources/content.py", false); - xhr.send(item[1]); + xhr.open(method, "./resources/content.py", false); + xhr.send(testItem[1]); assert_equals(xhr.getResponseHeader("X-Request-Content-Length"), "4"); assert_equals(xhr.getResponseHeader("X-Request-Content-Type"), "NO"); - }, "Synchronous blob loading with " + item[0]); + }, "Synchronous blob loading with " + testItem[0] + " [" + method + "]"); + } - var atest = async_test("Asynchronous blob loading with " + item[0]); + function doAsyncTest(testItem, method) { + var atest = async_test("Asynchronous blob loading with " + testItem[0] + " [" + method + "]"); atest.step(function() { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { @@ -42,9 +44,17 @@ atest.done(); } } - xhr.open("POST", "./resources/content.py", true); - xhr.send(item[1]); + xhr.open(method, "./resources/content.py", true); + xhr.send(testItem[1]); }); + } + + blobTests.forEach(function(item){ + doSyncTest(item, "POST"); + doAsyncTest(item, "POST"); + + doSyncTest(item, "PUT"); + doAsyncTest(item, "PUT"); }); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm index 357a9cff9d9..b8a3b4ae690 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm @@ -17,9 +17,8 @@ client.abort(); }} client.open('POST', 'resources/content.py') - assert_throws("InvalidStateError", function(){ - client.send(objAbortsOnStringification) - }) + client.send(objAbortsOnStringification) + assert_equals(client.readyState, 1) test1.done() }); diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-non-same-origin.sub.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm similarity index 100% rename from tests/wpt/web-platform-tests/XMLHttpRequest/send-non-same-origin.sub.htm rename to tests/wpt/web-platform-tests/XMLHttpRequest/send-non-same-origin.htm diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-response-event-order.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-response-event-order.htm index 64dfaa670f8..041cb23c6ea 100644 --- a/tests/wpt/web-platform-tests/XMLHttpRequest/send-response-event-order.htm +++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-response-event-order.htm @@ -12,6 +12,7 @@ + XMLHttpRequest: The send() method: event order when synchronous flag is unset @@ -24,38 +25,12 @@ test.step(function() { var xhr = new XMLHttpRequest(); - var expect = ["loadstart", "upload.loadstart", "upload.progress", "upload.load", "upload.loadend", "progress", 4, "load", "loadend"]; - var actual = []; + prepare_xhr_for_event_order_test(xhr); - xhr.onreadystatechange = function() - { - test.step(function() - { - if (xhr.readyState == 4) - { - actual.push(xhr.readyState); - } - }); - }; - - xhr.onloadstart = function(e){ actual.push(e.type); }; - xhr.onload = function(e){ actual.push(e.type); }; - xhr.onloadend = function(e){ actual.push(e.type); VerifyResult()}; - xhr.onprogress = function(e){ actual.push(e.type);}; - - xhr.upload.onloadstart = function(e){ actual.push("upload." + e.type); }; - xhr.upload.onload = function(e){ actual.push("upload." + e.type); }; - xhr.upload.onloadend = function(e){ actual.push("upload." + e.type);}; - xhr.upload.onprogress = function(e){ actual.push("upload." + e.type);}; - - function VerifyResult() - { - test.step(function() - { - assert_array_equals(actual, expect); - test.done(); - }); - }; + xhr.addEventListener("loadend", test.step_func(function() { + assert_xhr_event_order_matches([1, "loadstart(0,0,false)", "upload.loadstart(0,12,true)", "upload.progress(12,12,true)", "upload.load(12,12,true)", "upload.loadend(12,12,true)", 2, 3, "progress(12,12,true)", 4, "load(12,12,true)", "loadend(12,12,true)"]); + test.done(); + })); xhr.open("POST", "./resources/content.py", true); xhr.send("Test Message"); diff --git a/tests/wpt/web-platform-tests/annotation-model/CONTRIBUTING.md b/tests/wpt/web-platform-tests/annotation-model/CONTRIBUTING.md index b71eaa5a9d9..f591d2a9702 100644 --- a/tests/wpt/web-platform-tests/annotation-model/CONTRIBUTING.md +++ b/tests/wpt/web-platform-tests/annotation-model/CONTRIBUTING.md @@ -53,6 +53,7 @@ Context](JSONtest-v1.jsonld). That context defines the following terms: |description | string | A long self-describing paragraph that explains the purpose of the test and the expected input |ref | URI | An optional reference to the portion of the specification to which the test relates |testType | `automated`, `manual`, `ref` | The type of test - this informs [WPT](https://github.com/w3c/web-platform-tests) how the test should be controlled and presented +|skipFailures | list of strings | An optional list of assertionType values that, if present, should have their test skipped if the result would be "unexpected". Defaults to the empty list. |assertions | list of URI, List @@@ATRISK@@@, or AssertionObject | The ordered collection of tests the input should be run against. See [JSON Schema Usage](#jsonSchema) for the structure of the objects. URI is relative to the top level folder of the test collection if it has a slash; relative to the current directory if it does not. @@@@ATRISK@@@@ Lists can be nested to define groups of sub-tests. Assertions / groups can be conditionally skipped. See [Assertion Lists](#assertionLists) for more details. |content | URI or object | An object containing content to be checked against the referenced assertions, or a URI from which to retrieve that content @@ -71,9 +72,10 @@ Each test case has a suffix of `.test` and a shape like: { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Verify annotation has target", - "type": "object", + "assertionType": "must", "expectedResult": "valid", "errorMessage": "The object was missing a required 'target' property", + "type": "object", "properties": { "target": { "anyOf": [ diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationMusts-manual.html b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationMusts-manual.html index d2435ed0991..adfcca89da8 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationMusts-manual.html +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationMusts-manual.html @@ -12,12 +12,13 @@ setup({explicit_timeout: true, explicit_done: true }); var theDefinitions=[ - "definitions/specificResource.json", "definitions/choiceSet.json", + "definitions/id.json", "definitions/bodyTarget.json", "definitions/annotations.json", + "definitions/specificResource.json", "definitions/otherProperties.json", - "definitions/id.json" + "definitions/collections.json" ]; var theTestFile="annotationMusts.test"; diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals-manual.html b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals-manual.html index 2b9f4e74511..65be15a582c 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals-manual.html +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals-manual.html @@ -12,12 +12,13 @@ setup({explicit_timeout: true, explicit_done: true }); var theDefinitions=[ - "definitions/specificResource.json", "definitions/choiceSet.json", + "definitions/id.json", "definitions/bodyTarget.json", "definitions/annotations.json", + "definitions/specificResource.json", "definitions/otherProperties.json", - "definitions/id.json" + "definitions/collections.json" ]; var theTestFile="annotationOptionals.test"; diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals.test b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals.test index 955ac39d41d..16def6b4474 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals.test +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationOptionals.test @@ -3,6 +3,7 @@ "name": "Annotation implements optional keys and meets optional key value constraints", "description": "Web Annotations:
                                                                                        • Should include certain properties (keys)
                                                                                        • May include additional keys
                                                                                        • should have Annotation key values that conform to model recommended constraints
                                                                                        Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.", "testType": "manual", + "skipFailures": [ "should", "may" ], "ref": "https://www.w3.org/TR/annotation-model/#other-properties", "assertions": [ "annotations/3.3.1-annotationSingleCreatorImplemented.json", diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals-manual.html b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals-manual.html index bb1590624cf..b187008dade 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals-manual.html +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals-manual.html @@ -12,12 +12,13 @@ setup({explicit_timeout: true, explicit_done: true }); var theDefinitions=[ - "definitions/specificResource.json", "definitions/choiceSet.json", + "definitions/id.json", "definitions/bodyTarget.json", "definitions/annotations.json", + "definitions/specificResource.json", "definitions/otherProperties.json", - "definitions/id.json" + "definitions/collections.json" ]; var theTestFile="annotationsAgentOptionals.test"; diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals.test b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals.test index c5eb8713a6a..3b6616eed80 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals.test +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/annotationsAgentOptionals.test @@ -3,6 +3,7 @@ "name": "Annotation implements optional keys and meets optional key value constraints for Creator and Generator Agents", "description": "Agents (Creators, Generators) involved in an Annotation:
                                                                                        • Should include certain properties (keys)
                                                                                        • May include additional keys
                                                                                        • should have Agent key values that conform to model recommended constraints
                                                                                        Note: failing an assertion indicates that a recommended or optional feature has not been implemented or has not been implemented correctly.", "testType": "manual", + "skipFailures": [ "should", "may" ], "ref": "https://www.w3.org/TR/annotation-model/#other-properties", "assertions": [ diff --git a/tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json b/tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json index 03c6ab210c7..8e875951b9e 100644 --- a/tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json +++ b/tests/wpt/web-platform-tests/annotation-model/annotations/bodiesTargets/3.2.4-targNoTypeTextualBody.json @@ -13,15 +13,15 @@ "target": { "allOf": [ - { "not": { "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" } }, - { "not": { "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" } }, + { "not": { "$ref": "bodyTarget.json#/definitions/embeddedTextTypeInclTextualBodyWithoutId" } }, + { "not": { "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeInclTextualBodyWithoutId" } }, { "items": { "not": { "anyOf": [ - { "$ref": "bodyTarget.json#/definitions/embeddedTextTypeIncludesTextualBody" }, - { "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeIncludesTextualBody" } + { "$ref": "bodyTarget.json#/definitions/embeddedTextTypeInclTextualBodyWithoutId" }, + { "$ref": "bodyTarget.json#/definitions/itemEmbeddedTextTypeInclTextualBodyWithoutId" } ] } } diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedImplemented.json new file mode 100644 index 00000000000..d57ecd1efef --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedImplemented.json @@ -0,0 +1,17 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-collectionCreatedImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Valid Annotation Collection-level created key not found. Annotation Collection may have exactly one created key value.", + "title": "Implements Annotation Collection-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Collection implements exactly one created key value (Sections 3.3.1 and 5.1)", + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent"}, + { "type": "object", + "required" : [ "created" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedValidated.json new file mode 100644 index 00000000000..09ff1aa9d08 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatedValidated.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-collectionCreatedValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has multiple created key values or a single created key value that is not of format date-time.", + "title": "If present the Annotation Collection-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when no Annotation Collection created key present or when created key has a single value that is of format date-time (Section 3.3.1)", + "type": "object", + "allOf": [ + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatorImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatorImplemented.json new file mode 100644 index 00000000000..1bd4d144255 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionCreatorImplemented.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-collectionCreatorImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection creator key not found. Annotation Collection may have zero or more creators.", + "title": "Implements **Annotation Collection _creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Collection implements creator key (Section 3.3.1)", + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/creatorValidIfPresent"}, + { "type": "object", + "required": [ "creator" ] } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedImplemented.json new file mode 100644 index 00000000000..8deba356bd5 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedImplemented.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-collectionModifiedImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Valid Annotation Collection-level modified key not found. Annotation Collection may have zero or exactly one modified key value.", + "title": "Implements Annotation Collection-level **_modified_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Collection implements exactly one modified key value (Section 3.3.1, 5.1)", + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent"}, + { "type": "object", + "required": [ "modified" ] } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedValidated.json new file mode 100644 index 00000000000..65a571e84ee --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.1-collectionModifiedValidated.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-collectionModifiedValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has multiple modified key values or a single modified key value that is not of format date-time.", + "title": "If present the Annotation Collection-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when no Annotation Collection modified key present or when modified key has a single value that is of format date-time (Section 3.3.1)", + "type": "object", + "allOf": [ + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmailImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmailImplemented.json new file mode 100644 index 00000000000..34b5c560b98 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmailImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentEmailImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Email for Annotation Collection Creator (Agent) not found. Agents may have one or more email values.", + "title": "Implements Annotation Collection-level creator (Agent) **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more email values for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentEmailFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmailFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmail_sha1Implemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmail_sha1Implemented.json new file mode 100644 index 00000000000..6e8ef750755 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentEmail_sha1Implemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentEmail_sha1Implemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Email_sha1 for Annotation Collection Creator (Agent) not found. Agents may have one or more email_sha1 values.", + "title": "Implements Annotation Collection-level creator (Agent) **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more email_sha1 values for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentHomepageImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentHomepageImplemented.json new file mode 100644 index 00000000000..c3ed8d3b0c4 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentHomepageImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentHomepageImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Homepage for Annotation Collection Creator (Agent) not found. Agents may have one or more homepage values.", + "title": "Implements Annotation Collection-level creator (Agent) **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more homepage values for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentHomepageFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentHomepageFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentIdImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentIdImplemented.json new file mode 100644 index 00000000000..3f7241d0553 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentIdImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentIdImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Id for Annotation Collection Creator (Agent) not found or more than 1 found. Agents should have exactly one id of format uri.", + "title": "Implements Annotation Collection-level creator (Agent) **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when type for Annotation Collection Creator (Agent) has exactly one id (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "id.json#/definitions/idValueFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNameImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNameImplemented.json new file mode 100644 index 00000000000..5f1a07b0f0a --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNameImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentNameImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Name for Annotation Collection Creator (Agent) not found. Agents may have one or more name values.", + "title": "Implements Annotation Collection-level creator (Agent) **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more name values for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentNameFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNicknameImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNicknameImplemented.json new file mode 100644 index 00000000000..9da32ff09f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentNicknameImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentNicknameImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Nickname for Annotation Collection Creator (Agent) not found. Agents should have exactly one nickname value.", + "title": "Implements Annotation Collection-level creator (Agent) **_nickname_ key** with a **single value** that is a string - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when exactly one nickname for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentTypeImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentTypeImplemented.json new file mode 100644 index 00000000000..43f5fc32f40 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.2-collectionCreatorAgentTypeImplemented.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-collectionCreatorAgentTypeImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Type (Person, Organization, Software) for Annotation Collection Creator (Agent) not found. Agents should have one or more type values.", + "title": "Implements Annotation Collection-level creator (Agent) **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when type for Annotation Collection Creator (Agent) is implemented (Section 3.3.2)", + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentTypeFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentTypeFound" } } } + } + ] + } + }, + "required": ["creator"] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsImplemented.json new file mode 100644 index 00000000000..927f93eb3e3 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsImplemented.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.6-collectionRightsImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection-level rights key having string value(s) of format uri not found. Annotation Collection may have zero or more rights key values.", + "title": "Implements Annotation Collection-level **_rights_** key which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "description": "True when the Annotation Collection implements rights key with with string(s) of format uri value(s) (Sections 5.1 and 3.3.6)", + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent"}, + { "type": "object", + "required": [ "rights" ]} + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsValidated.json new file mode 100644 index 00000000000..68410460589 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/3.3.6-collectionRightsValidated.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.6-collectionRightsValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection Collection has one or more values for the rights key that are not strings of format uri.", + "title": "If present the Annotation Collection Collection-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "description": "True when no Annotation Collection Collection rights key present or when all values of rights key are strings of format uri (Section 3.3.6)", + "type": "object", + "allOf": [ + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionContextValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionContextValidated.json new file mode 100644 index 00000000000..d9a5dc31235 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionContextValidated.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionContextValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.", + "title": "Implements **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "description": "True when the Annotation Collection has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 5.1)", + "type": "object", + "required": [ "@context" ], + "properties": { + "@context": { + "oneOf": [ + { "$ref": "collections.json#/definitions/contextValueFound" }, + { "$ref": "collections.json#/definitions/contextValueInArrayFound" } + ] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstImplemented.json new file mode 100644 index 00000000000..0eee805921e --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstImplemented.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionFirstImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection is allowed exactly one first key.", + "title": "Implements **Annotation Collection _first_ key** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/firstFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstValidated.json new file mode 100644 index 00000000000..4c31e1fd744 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionFirstValidated.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionFirstValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has invalid first key or has total value more than zero without a valid first key.", + "title": "**Annotation Collection has _first_ key**, or no **_total_ key**, or **_total_ key** with value of zero - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/firstRequiredIfTotalMoreThanZero" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionIdValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionIdValidated.json new file mode 100644 index 00000000000..164620879ee --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionIdValidated.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionIdValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection is missing id key or value of id key is not a single string of format uri.", + "title": "Implements **Annotation Collection _id_ key** which has a **single value** that is a **string of format uri** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "description": "True when the Annotation Collection has a single id that is a string of format uri (Section 5.1)", + "$ref": "id.json#/definitions/idValueFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelImplemented.json new file mode 100644 index 00000000000..916ba5c80d7 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelImplemented.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionLabelImplemented.json", + "assertionType": "should", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection should have a label key.", + "title": "Implements **Annotation Collection _label_ key** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/labelFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelValidated.json new file mode 100644 index 00000000000..7543d515da4 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLabelValidated.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionLabelValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has label key with non-string value or an array as value containing non-string value.", + "title": "**Annotation Collection _label_ key**, if present, is **a value of type string** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/labelDefinition" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastImplemented.json new file mode 100644 index 00000000000..528a5616e88 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastImplemented.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionLastImplemented.json", + "assertionType": "should", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection should include exactly one last key with value that is string of uri format.", + "title": "Implements **Annotation Collection _last_ key** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/lastFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastValidated.json new file mode 100644 index 00000000000..d00e90da69b --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionLastValidated.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionLastValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has last key with non-uri value or array as value containing more than one item.", + "title": "**Annotation Collection _last_ key**, if present, is **a single value of format uri** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/lastValidIfPresent" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalImplemented.json new file mode 100644 index 00000000000..088e785c2e6 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalImplemented.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionTotalImplemented.json", + "assertionType": "should", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Collection should include exactly one total key with non-negative numeric value.", + "title": "Implements **Annotation Collection _total_ key** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/totalFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalValidated.json new file mode 100644 index 00000000000..51b3ff263a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTotalValidated.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionTotalValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection has total key with non-numeric value, a negative numeric value, or more than one value.", + "title": "**Annotation Collection _total_ key**, if present, is **a non-negative integer value** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/totalDefinition" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTypeValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTypeValidated.json new file mode 100644 index 00000000000..3c858ab92d3 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/5.1-collectionTypeValidated.json @@ -0,0 +1,10 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.1-collectionTypeValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Collection is missing type key or 'AnnotationCollection' is not a value of type.", + "title": "Implements **Annotation Collection _type_ key** such that '**AnnotationCollection**' is **a value of _type_** - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "$ref": "collections.json#/definitions/annotationCollectionTypeValueFound" +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts-manual.html b/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts-manual.html new file mode 100644 index 00000000000..d1ff44491b1 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts-manual.html @@ -0,0 +1,49 @@ + + + +A single Annotation Collection has all required keys and all collection keys used meet required value constraints + + + + + + + + + +

                                                                                        Fill the textarea below with JSON output from your annotation client +implementation that supports the following criteria:

                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        +

                                                                                        +
                                                                                        +

                                                                                        Specifically, the following assertions will be evaluated:

                                                                                        +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts.test b/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts.test new file mode 100644 index 00000000000..31864b784f7 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/collectionMusts.test @@ -0,0 +1,19 @@ +{ + "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", + "name": "A single Annotation Collection has all required keys and all collection keys used meet required value constraints", + "description": "Collections of Web Annotations:
                                                                                        • MUST include certain properties (keys)
                                                                                        • MUST satisfy model constraints on values of required and any optional Annotation keys used
                                                                                        Note: Implementation of optional Annotation Collection keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation Collection checked by other tests.
                                                                                        Please fill textarea with json-ld serialization of a single Annotation Collection description", + "testType": "manual", + "ref": "https://www.w3.org/TR/annotation-model/", + "assertions": [ + "collections/5.1-collectionContextValidated.json", + "collections/5.1-collectionIdValidated.json", + "collections/5.1-collectionTypeValidated.json", + "collections/5.1-collectionLabelValidated.json", + "collections/5.1-collectionTotalValidated.json", + "collections/5.1-collectionFirstValidated.json", + "collections/5.1-collectionLastValidated.json", + "collections/3.3.1-collectionCreatedValidated.json", + "collections/3.3.1-collectionModifiedValidated.json", + "collections/3.3.6-collectionRightsValidated.json" + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals-manual.html b/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals-manual.html new file mode 100644 index 00000000000..ce489fce204 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals-manual.html @@ -0,0 +1,49 @@ + + + +A single Annotation Collection implements optional keys and meets optional key value constraints + + + + + + + + + +

                                                                                        Fill the textarea below with JSON output from your annotation client +implementation that supports the following criteria:

                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        +

                                                                                        +
                                                                                        +

                                                                                        Specifically, the following assertions will be evaluated:

                                                                                        +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals.test b/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals.test new file mode 100644 index 00000000000..885b3f4020c --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/collectionOptionals.test @@ -0,0 +1,24 @@ +{ + "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", + "name": "A single Annotation Collection implements optional keys and meets optional key value constraints", + "description": "A Collection of Web Annotations:
                                                                                        • Should include certain properties (keys)
                                                                                        • May include additional keys
                                                                                        • May have creator Agent key values that conform to model recommended constraints
                                                                                        Note: failing an assertion indicates only that a recommended or optional feature has not been implemented or has not been implemented correctly.
                                                                                        Please fill textarea with json-ld serialization of a single Annotation Collection description", + "testType": "manual", + "ref": "https://www.w3.org/TR/annotation-model/", + "assertions": [ + "collections/5.1-collectionLabelImplemented.json", + "collections/5.1-collectionLastImplemented.json", + "collections/5.1-collectionTotalImplemented.json", + "collections/5.1-collectionFirstImplemented.json", + "collections/3.3.1-collectionModifiedImplemented.json", + "collections/3.3.1-collectionCreatorImplemented.json", + "collections/3.3.1-collectionCreatedImplemented.json", + "collections/3.3.6-collectionRightsImplemented.json", + "collections/3.3.2-collectionCreatorAgentEmail_sha1Implemented.json", + "collections/3.3.2-collectionCreatorAgentEmailImplemented.json", + "collections/3.3.2-collectionCreatorAgentHomepageImplemented.json", + "collections/3.3.2-collectionCreatorAgentIdImplemented.json", + "collections/3.3.2-collectionCreatorAgentNameImplemented.json", + "collections/3.3.2-collectionCreatorAgentNicknameImplemented.json", + "collections/3.3.2-collectionCreatorAgentTypeImplemented.json" + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json new file mode 100644 index 00000000000..e65ea8f29c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedImplemented.json @@ -0,0 +1,37 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-pageCreatedImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Valid Annotation Page-level created key not found. Annotation Page may have exactly one created key value inherited from Collection.", + "title": "Implements Annotation Page-level **_created_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Page implements exactly one created key value (Sections 3.3.1 and 5.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/createdImplemented" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/createdImplemented" } + }, + "required": [ "first" ] + } + ], + "definitions": + { + "createdImplemented": + { + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent"}, + { "type": "object", + "required" : [ "created" ] + } + ] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json new file mode 100644 index 00000000000..be4e9c32487 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatedValidated.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-pageCreatedValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation page has multiple created key values or a single created key value that is not of format date-time.", + "title": "If present the Annotation page-level **_created_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when no Annotation page created key present or when created key has a single value that is of format date-time (Section 3.3.1)", + "type": "object", + "oneOf": [ + { "allOf": [ + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "properties": + {"first": + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json new file mode 100644 index 00000000000..8b6ded3a4ec --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageCreatorImplemented.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-pageCreatorImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Valid Annotation Page-level creator key not found. Annotation Page may have zero or more creators inherited from Collection.", + "title": "Implements **Annotation Page-level _creator_ key** which has one or more values, each of which is a **string of format uri** or an **object** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Page implements creator key (Section 3.3.1)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorImplemented" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorImplemented" } + }, + "required": [ "first" ] + } + ], + "definitions": + { + "creatorImplemented": + { + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/creatorValidIfPresent"}, + { "type": "object", + "required": [ "creator" ] } + ] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json new file mode 100644 index 00000000000..5bccc821152 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedImplemented.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-pageModifiedImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Valid Annotation Page-level modified key not found. Annotation Page may have zero or exactly one modified key value inherited from Collection.", + "title": "Implements Annotation Page-level **_modified_ key** which has a **single value** that is a **string of format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when the Annotation Page implements exactly one modified key value (Section 3.3.1, 5.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/modifiedImplemented" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/modifiedImplemented" } + }, + "required": [ "first" ] + } + ], + "definitions": + { + "modifiedImplemented": + { + "allOf": + [ + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent"}, + { "type": "object", + "required": [ "modified" ] } + ] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json new file mode 100644 index 00000000000..d8591cd16a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.1-pageModifiedValidated.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.1-pageModifiedValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation page has multiple modified key values or a single modified key value that is not of format date-time.", + "title": "If present the Annotation page-level **_modified_ key** has a **single value** that is of **format date-time** - [model 3.3.1](https://www.w3.org/TR/annotation-model/#lifecycle-information)", + "description": "True when no Annotation page modified key present or when modified key has a single value that is of format date-time (Section 3.3.1)", + "type": "object", + "oneOf": [ + { "allOf": [ + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "properties": + {"first": + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json new file mode 100644 index 00000000000..c30f81ac28f --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentEmailImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Email for Annotation Page Creator (Agent), inherited from Collection, not found. Agents may have one or more email values.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_email_ key** with one or more values, each of which is a **mailto: uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more email values for Annotation Page Creator (Agent), inherited from Collection, is implemented (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentEmailFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentEmailFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentEmailFound": + { "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentEmailFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmailFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json new file mode 100644 index 00000000000..41e6ec0f6a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentEmail_sha1Implemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Email_sha1 for Annotation Page Creator (Agent), inherited from Collection, not found. Agents may have one or more email_sha1 values.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **email_sha1 key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more email_sha1 values for Annotation Page Creator (Agent), inherited from Collection, is implemented (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentEmail_sha1Found" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentEmail_sha1Found" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentEmail_sha1Found": + { "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentEmail_sha1Found" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json new file mode 100644 index 00000000000..d325b17ba83 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentHomepageImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Homepage for Annotation Page Creator (Agent), inherited from Collection, not found. Agents may have one or more homepage values.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_homepage_ key** with one or more values, each of which is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more homepage values for Annotation Page Creator (Agent), inherited from Collection, is implemented (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentHomePageFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentHomePageFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentHomePageFound": + { "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentHomepageFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentHomepageFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json new file mode 100644 index 00000000000..6d45c1df72b --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentIdImplemented.json @@ -0,0 +1,43 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentIdImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Single id for Annotation Page Creator (Agent), inherited from Collection, not found for any Creator. Agents should have exactly one id of format uri.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_id_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when at least one Annotation Page Creator (Agent), inherited from Collection, has exactly one id (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentIdFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentIdFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentIdFound": + { + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "id.json#/definitions/idValueFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "id.json#/definitions/idValueFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json new file mode 100644 index 00000000000..077c3d51402 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNameImplemented.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentNameImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Name for Annotation Page Creator (Agent), inherited from Collection, not found. Agents may have one or more name values.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_name_ key** with one or more values - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when one or more name values for Annotation Page Creator (Agent), inherited from Collection, is implemented (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentNameFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentNameFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentNameFound": + { "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentNameFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json new file mode 100644 index 00000000000..60398fed77c --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json @@ -0,0 +1,45 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentNicknameImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Single nickname for Annotation Page Creator (Agent), inherited from Collection, not found for any Creator. Agents should have exactly one id of format uri.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_nickname_ key** with **single value** that is a **string of format uri** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when at least one Annotation Page Creator (Agent), inherited from Collection, has exactly one nickname (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentNicknameFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentNicknameFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentNicknameFound": + { + "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentSingularNicknameFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json new file mode 100644 index 00000000000..8144fa24e5a --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.2-pageCreatorAgentTypeImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Type (Person, Organization, Software) for Annotation Page Creator (Agent), inherited from Collection, not found. Agents should have one or more type values.", + "title": "Implements Annotation Page-level creator (Agent), inherited from Collection, **_type_ key** with one or more values from **model-recommended list (Person, Organization, Software)** - [model 3.2.2](https://www.w3.org/TR/annotation-model/#agents)", + "description": "True when type for Annotation Page Creator (Agent), inherited from Collection, is implemented (Section 3.3.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "#/definitions/creatorAgentNameFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "#/definitions/creatorAgentNameFound" } + }, + "required": [ "first" ] + } + ], + "definitions": { + "creatorAgentNameFound": + { "properties": + { "creator": + { "oneOf": + [ + { "$ref": "otherProperties.json#/definitions/agentNameFound" }, + { "type": "array", + "minItems": 1, + "not": + { "items": { "not": { "$ref": "otherProperties.json#/definitions/agentNameFound" } } } + } + ] + } + }, + "required": ["creator"] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json new file mode 100644 index 00000000000..56e4e910124 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsImplemented.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.6-pageRightsImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page rights key (inherited from Collection) having string value(s) of format uri not found. Annotation Page may may have zero or more rights key values.", + "title": "Implements Annotation Page **_rights_** key (inherited from Collection) which has one or more values, each of which is a **string of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "description": "True when the Annotation Page implements rights key with with string(s) of format uri value(s) (Sections 5.1 and 3.3.6)", + "oneOf": [ + { "allOf": [ + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" }, + { "type": "object", + "required": [ "rights" ]}, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "allOf": [ + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" }, + { "type": "object", + "required": [ "rights" ]} + ] + } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json new file mode 100644 index 00000000000..472c316dc6b --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/3.3.6-pageRightsValidated.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "3.3.6-pageRightsValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation page page has one or more values for the rights key that are not strings of format uri.", + "title": "If present the Annotation page page-level **_rights_ key** has values that are all **strings of format uri** - [model 3.3.6](https://www.w3.org/TR/annotation-model/#rights-information)", + "description": "True when no Annotation page page rights key present or when all values of rights key are strings of format uri (Section 3.3.6)", + "type": "object", + "oneOf": [ + { "allOf": [ + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "properties": + {"first": + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageContextValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageContextValidated.json new file mode 100644 index 00000000000..66cbe0779fd --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageContextValidated.json @@ -0,0 +1,20 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageContextValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page/Collection is missing @context key or 'http://www.w3.org/ns/anno.jsonld' is not a value of @context.", + "title": "Implements **Annotation Page** (or Annotation Collection for embedded Page) **_@context_ key** and '**http://www.w3.org/ns/anno.jsonld**' is **a value of _@context_** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "description": "True when the Annotation Page/Collection has @context key and 'http://www.w3.org/ns/anno.jsonld' is an @context value (Section 5.2)", + "type": "object", + "required": [ "@context" ], + "properties": { + "@context": { + "oneOf": [ + { "$ref": "collections.json#/definitions/contextValueFound" }, + { "$ref": "collections.json#/definitions/contextValueInArrayFound" } + ] + } + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json new file mode 100644 index 00000000000..1c7dfb141e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstImplemented.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageFirstImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no first key (inherited from Collection).", + "title": "Implements **Annotation Page _first_ key** (inherited from Collection) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/firstFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/firstFound" } + }, + "required": [ "first" ] + } + ] +} + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstValidated.json new file mode 100644 index 00000000000..2e260b1d36e --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageFirstValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageFirstValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has invalid first key.", + "title": "**Annotation Page _first_ key** (inherited from Collection), if present, has value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/firstValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/firstValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageIdValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageIdValidated.json new file mode 100644 index 00000000000..bafa019c465 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageIdValidated.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageIdValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page is missing id key or value of id key is not a single string of format uri.", + "title": "Implements **Annotation Page _id_ key** which has a **single value** that is a **string of format uri** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "description": "True when the Annotation Page has a single id that is a string of format uri (Section 5.2)", + "oneOf": [ + { "allOf": [ + { "$ref": "id.json#/definitions/idValueFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "id.json#/definitions/idValueFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageItemsValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageItemsValidated.json new file mode 100644 index 00000000000..57bedba8506 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageItemsValidated.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageItemsValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page is missing items key or value of items key is not an array of strings of format uri and/or objects of type Annotation.", + "title": "Implements **Annotation Page _items_ key** such that value of items key is an array of strings of format uri and/or objects of type Annotation - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/itemsFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/itemsFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json new file mode 100644 index 00000000000..e64d5d80b24 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelImplemented.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageLabelImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no label key (inherited from Collection).", + "title": "Implements **Annotation Page _label_ key** (inherited from Collection) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/labelFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/labelFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelValidated.json new file mode 100644 index 00000000000..740bd622aed --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLabelValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageLabelValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has label key with non-string value or an array as value containing non-string value.", + "title": "**Annotation Page _label_ key**, if present (inherited from Collection), is **a value of type string** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/labelDefinition" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/labelDefinition" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastImplemented.json new file mode 100644 index 00000000000..dc0806404fd --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastImplemented.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageLastImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no last key (inherited from Collection).", + "title": "Implements **Annotation Page _last_ key** (inherited from Collection) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/lastFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/lastFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastValidated.json new file mode 100644 index 00000000000..9d02948b39d --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageLastValidated.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageLastValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has last key with non-uri value or array as value containing more than one item.", + "title": "**Annotation Page _last_ key** (inherited from Collection), if present, is **a single value of format uri** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/lastValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/lastValidIfPresent" } + }, + "required": [ "first" ] + } + ] + + + + +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextImplemented.json new file mode 100644 index 00000000000..fb057117596 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextImplemented.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageNextImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no next key.", + "title": "Implements **Annotation Page _next_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/nextFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/nextFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextValidated.json new file mode 100644 index 00000000000..ab9198cc204 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageNextValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageNextValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has an invalid next value.", + "title": "True when **Annotation Page has no _next_ key** or has **_next_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/nextValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/nextValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json new file mode 100644 index 00000000000..a23e27ea689 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfImplemented.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pagePartOfImplemented.json", + "assertionType": "should", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no partOf key.", + "title": "Implements **Annotation Page _partOf_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/partOfFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/partOfFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json new file mode 100644 index 00000000000..d073c63050b --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePartOfValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pagePartOfValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has an invalid partOf value.", + "title": "True when **Annotation Page has no _partOf_ key** or has **_partOf_ key** with valid value oof string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/partOfValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/partOfValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json new file mode 100644 index 00000000000..0ba0e8792e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevImplemented.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pagePrevImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no prev key.", + "title": "Implements **Annotation Page _prev_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/prevFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/prevFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevValidated.json new file mode 100644 index 00000000000..a9fbc71e6d3 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pagePrevValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pagePrevValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has an invalid prev value.", + "title": "True when **Annotation Page has no _prev_ key** or has **_prev_ key** with valid value of string of format uri - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/prevValidIfPresent" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/prevValidIfPresent" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json new file mode 100644 index 00000000000..00a1eddd28c --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexImplemented.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageStartIndexImplemented.json", + "assertionType": "should", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has has no valid startIndex value.", + "title": "Implements **Annotation Page _startIndex_ key** with valid value of _type_ integer >= 0 - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/startIndexFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/startIndexFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json new file mode 100644 index 00000000000..21771937700 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageStartIndexValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageStartIndexValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has an invalid startIndex value.", + "title": "True when **Annotation Page has no _startIndex_ key** or has **_startIndex_ key** with valid value of _type_ integer >= 0 - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/startIndexDefinition" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/startIndexDefinition" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json new file mode 100644 index 00000000000..6e0e61a5c15 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalImplemented.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageTotalImplemented.json", + "assertionType": "may", + "expectedResult": "valid", + "onUnexpectedResult" : "passAndContinue", + "errorMessage": "Annotation Page has no total key (inherited from Collection).", + "title": "Implements **Annotation Page _total_ key** (inherited from Collection) with valid value - [model 5.1](https://www.w3.org/TR/annotation-model/#annotation-collection)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/totalFound" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/totalFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalValidated.json new file mode 100644 index 00000000000..eb9411d8522 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTotalValidated.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageTotalValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page has total key with non-numeric value, a negative numeric value, or more than one value.", + "title": "**Annotation Page _total_ key**, if present (inherited from Collection), is **a non-negative integer value** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "allOf": [ + { "$ref": "collections.json#/definitions/totalDefinition" }, + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/totalDefinition" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTypeValidated.json b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTypeValidated.json new file mode 100644 index 00000000000..cb0e2f362db --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/5.2-pageTypeValidated.json @@ -0,0 +1,19 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "5.2-pageTypeValidated.json", + "assertionType": "must", + "expectedResult": "valid", + "onUnexpectedResult" : "failAndContinue", + "errorMessage": "ERROR: Annotation Page is missing type key or 'AnnotationPage' is not a value of type.", + "title": "Implements **Annotation Page _type_ key** such that '**AnnotationPage**' is **a value of _type_** - [model 5.2](https://www.w3.org/TR/annotation-model/#annotation-page)", + "oneOf": [ + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" }, + { "type": "object", + "properties": + {"first": + { "$ref": "collections.json#/definitions/annotationPageTypeValueFound" } + }, + "required": [ "first" ] + } + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts-manual.html b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts-manual.html new file mode 100644 index 00000000000..843faaf5e78 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts-manual.html @@ -0,0 +1,49 @@ + + + +A single Annotation Page has all required keys and all page keys present meet required value constraints + + + + + + + + + +

                                                                                        Fill the textarea below with JSON output from your annotation client +implementation that supports the following criteria:

                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        +

                                                                                        +
                                                                                        +

                                                                                        Specifically, the following assertions will be evaluated:

                                                                                        +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts.test b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts.test new file mode 100644 index 00000000000..38722d75d26 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageMusts.test @@ -0,0 +1,24 @@ +{ + "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", + "name": "A single Annotation Page has all required keys and all page keys present meet required value constraints", + "description": "Pages of Web Annotations:
                                                                                        • MUST include certain properties (keys)
                                                                                        • MUST satisfy model constraints on values of required and any optional Annotation keys used
                                                                                        Note: Implementation of optional Annotation Collection keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation Collection checked by other tests.
                                                                                        Please fill textarea with json-ld serialization of a single Annotation Page or an Annotation Collection with an embedded Page", + "testType": "manual", + "ref": "https://www.w3.org/TR/annotation-model/", + "assertions": [ + "collections/pages/5.2-pageContextValidated.json", + "collections/pages/5.2-pageIdValidated.json", + "collections/pages/5.2-pageTypeValidated.json", + "collections/pages/5.2-pageItemsValidated.json", + "collections/pages/5.2-pageStartIndexValidated.json", + "collections/pages/5.2-pagePartOfValidated.json", + "collections/pages/5.2-pageNextValidated.json", + "collections/pages/5.2-pagePrevValidated.json", + "collections/pages/5.2-pageTotalValidated.json", + "collections/pages/5.2-pageLabelValidated.json", + "collections/pages/5.2-pageFirstValidated.json", + "collections/pages/5.2-pageLastValidated.json", + "collections/pages/3.3.1-pageCreatedValidated.json", + "collections/pages/3.3.1-pageModifiedValidated.json", + "collections/pages/3.3.6-pageRightsValidated.json" + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals-manual.html b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals-manual.html new file mode 100644 index 00000000000..e68f2d17c65 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals-manual.html @@ -0,0 +1,49 @@ + + + +A single Annotation Page implements optional keys and meets optional key value constraints + + + + + + + + + +

                                                                                        Fill the textarea below with JSON output from your annotation client +implementation that supports the following criteria:

                                                                                        +
                                                                                        +
                                                                                        + +

                                                                                        +

                                                                                        +
                                                                                        +

                                                                                        Specifically, the following assertions will be evaluated:

                                                                                        +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals.test b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals.test new file mode 100644 index 00000000000..2d53d6550c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/collections/pages/pageOptionals.test @@ -0,0 +1,28 @@ +{ + "@context": "https://www.w3.org/ns/JSONtest-v1.jsonld", + "name": "A single Annotation Page implements optional keys and meets optional key value constraints", + "description": "Pages of Web Annotations:
                                                                                        • MUST include certain properties (keys)
                                                                                        • MUST satisfy model constraints on values of required and any optional Annotation keys used
                                                                                        Note: Implementation of optional Annotation Collection keys (features), optional constraints on key values, and optional keys and constraints on Agents involved in an Annotation Collection checked by other tests.
                                                                                        Please fill textarea with json-ld serialization of a single Annotation Page or an Annotation Collection with an embedded Page", + "testType": "manual", + "ref": "https://www.w3.org/TR/annotation-model/", + "assertions": [ + "collections/pages/5.2-pagePartOfImplemented.json", + "collections/pages/5.2-pageStartIndexImplemented.json", + "collections/pages/5.2-pageNextImplemented.json", + "collections/pages/5.2-pagePrevImplemented.json", + "collections/pages/5.2-pageLabelImplemented.json", + "collections/pages/5.2-pageLastImplemented.json", + "collections/pages/5.2-pageTotalImplemented.json", + "collections/pages/5.2-pageFirstImplemented.json", + "collections/pages/3.3.1-pageModifiedImplemented.json", + "collections/pages/3.3.1-pageCreatorImplemented.json", + "collections/pages/3.3.1-pageCreatedImplemented.json", + "collections/pages/3.3.6-pageRightsImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentEmail_sha1Implemented.json", + "collections/pages/3.3.2-pageCreatorAgentEmailImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentHomepageImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentIdImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentNameImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentNicknameImplemented.json", + "collections/pages/3.3.2-pageCreatorAgentTypeImplemented.json" + ] +} diff --git a/tests/wpt/web-platform-tests/annotation-model/definitions/bodyTarget.json b/tests/wpt/web-platform-tests/annotation-model/definitions/bodyTarget.json index 65af961f681..b51c0461f9c 100644 --- a/tests/wpt/web-platform-tests/annotation-model/definitions/bodyTarget.json +++ b/tests/wpt/web-platform-tests/annotation-model/definitions/bodyTarget.json @@ -9,13 +9,12 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Definition: External Web Resource", - "description": "True when the object is an External Web Resource, i.e., includes an id that is of format uri but does not contain value (Textual Body) or source (Specific Resource) keys (Sections 3.2.1, 3.2.4, 4).", + "description": "True when the object is an External Web Resource, i.e., includes an id that is of format uri but does not contain source (Specific Resource) keys (Sections 3.2.1, 3.2.4, 4).", "type": "object", "allOf": [ {"$ref": "id.json#/definitions/idValueFound"} ], "not": { "anyOf": [ - { "required": ["value"] }, { "required": ["source"] }, { "required": ["target"] } ] @@ -26,23 +25,23 @@ { "type": "object", "properties": - { - "source": {"$ref": "#/definitions/externalWebResourceDetected"} - } + { + "source": {"$ref": "#/definitions/externalWebResourceDetected"} + } }, "itemEwrDetected": { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/externalWebResourceDetected" } } } + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/externalWebResourceDetected" } } } + } } - } }, "textualBodyFound" : @@ -65,14 +64,14 @@ { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/textualBodyFound" } } } + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/textualBodyFound" } } } + } } - } }, "targetResourcesFound" : @@ -98,15 +97,15 @@ "title": "Definition: Resources that can be used as Body", "description": "True when the string is format uri or the object is recognized as a valid body resource (Sections 3.2 and 4).", "type" : ["string", "object"], - "oneOf": [ + "anyOf": [ {"$ref": "id.json#/definitions/stringUri"}, {"$ref": "choiceSet.json#/definitions/choiceDetected" }, {"$ref": "choiceSet.json#/definitions/compositeDetected" }, - {"$ref": "choiceSet.json#/definitions/independentsDetected" }, - {"$ref": "choiceSet.json#/definitions/listDetected" }, - {"$ref": "specificResource.json#/definitions/specificeResourceDetected" }, - {"$ref": "#/definitions/externalWebResourceDetected" }, - {"$ref": "#/definitions/textualBodyFound" } + {"$ref": "choiceSet.json#/definitions/independentsDetected" }, + {"$ref": "choiceSet.json#/definitions/listDetected" }, + {"$ref": "specificResource.json#/definitions/specificeResourceDetected" }, + {"$ref": "#/definitions/externalWebResourceDetected" }, + {"$ref": "#/definitions/textualBodyFound" } ] }, @@ -297,16 +296,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/recognizedTypeFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/recognizedTypeFound" } } + } } - } }, "required": ["items"] }, @@ -319,12 +318,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["type"] , - "$ref": "#/definitions/resourceTypeRecognizedIfPresent" - } + "source": + { + "type": "object", + "required": ["type"] , + "$ref": "#/definitions/resourceTypeRecognizedIfPresent" + } }, "required": ["source"] }, @@ -408,16 +407,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/formatPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/formatPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -430,12 +429,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["format"] , - "$ref": "#/definitions/formatValidIfPresent" - } + "source": + { + "type": "object", + "required": ["format"] , + "$ref": "#/definitions/formatValidIfPresent" + } }, "required": ["source"] }, @@ -466,16 +465,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/singleFormatPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/singleFormatPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -488,12 +487,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["format"] , - "$ref": "#/definitions/formatSingularIfPresent" - } + "source": + { + "type": "object", + "required": ["format"] , + "$ref": "#/definitions/formatSingularIfPresent" + } }, "required": ["source"] }, @@ -582,16 +581,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/languagePropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/languagePropertyFound" } } + } } - } }, "required": ["items"] }, @@ -604,12 +603,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["language"] , - "$ref": "#/definitions/languageValidIfPresent" - } + "source": + { + "type": "object", + "required": ["language"] , + "$ref": "#/definitions/languageValidIfPresent" + } }, "required": ["source"] }, @@ -640,16 +639,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/singleLanguagePropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/singleLanguagePropertyFound" } } + } } - } }, "required": ["items"] }, @@ -662,12 +661,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["language"] , - "$ref": "#/definitions/languageSingularIfPresent" - } + "source": + { + "type": "object", + "required": ["language"] , + "$ref": "#/definitions/languageSingularIfPresent" + } }, "required": ["source"] }, @@ -720,16 +719,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/processingLanguagePropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/processingLanguagePropertyFound" } } + } } - } }, "required": ["items"] }, @@ -742,12 +741,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["processingLanguage"] , - "$ref": "#/definitions/processingLanguageValidIfPresent" - } + "source": + { + "type": "object", + "required": ["processingLanguage"] , + "$ref": "#/definitions/processingLanguageValidIfPresent" + } }, "required": ["source"] }, @@ -802,16 +801,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/textDirectionPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/textDirectionPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -824,12 +823,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["textDirection"] , - "$ref": "#/definitions/textDirectionValidIfPresent" - } + "source": + { + "type": "object", + "required": ["textDirection"] , + "$ref": "#/definitions/textDirectionValidIfPresent" + } }, "required": ["source"] }, @@ -848,9 +847,9 @@ { "type": "object", "properties": - { - "source": {"$ref": "#/definitions/ewrWithItems"} - }, + { + "source": {"$ref": "#/definitions/ewrWithItems"} + }, "required": ["source"] }, @@ -858,14 +857,14 @@ { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/ewrWithItems" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/ewrWithItems" } } } + } + }, "required": ["items"] }, @@ -882,9 +881,9 @@ { "type": "object", "properties": - { - "source": {"$ref": "#/definitions/ewrWithPurpose"} - }, + { + "source": {"$ref": "#/definitions/ewrWithPurpose"} + }, "required": ["source"] }, @@ -892,14 +891,14 @@ { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/ewrWithPurpose" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/ewrWithPurpose" } } } + } + }, "required": ["items"] }, @@ -916,14 +915,14 @@ { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/embeddedTextualBodyWithItems" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/embeddedTextualBodyWithItems" } } } + } + }, "required": ["items"] }, @@ -940,109 +939,158 @@ { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/embeddedTextualBodyWithSource" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/embeddedTextualBodyWithSource" } } } + } + }, "required": ["items"] }, "embeddedTextTypeIncludesTextualBody": { - "allOf": + "allOf": [ - { "$ref": "#/definitions/textualBodyFound" }, - { "required": ["type"] }, - { "properties": - { - "type": - { - "oneOf": - [ - { "type": "string", - "enum": ["TextualBody"] }, - { "type": "array", - "minItems": 1, - "not": - { "items": - { "not": { "enum": [ "TextualBody"] } } - } - } - ] - } + { "$ref": "#/definitions/textualBodyFound" }, + { "required": ["type"] }, + { "properties": + { + "type": + { + "oneOf": + [ + { "type": "string", + "enum": ["TextualBody"] }, + { "type": "array", + "minItems": 1, + "not": + { "items": + { "not": { "enum": [ "TextualBody"] } } + } + } + ] + } + } } - } - ] + ] + }, + + "embeddedTextTypeInclTextualBodyWithoutId": + { + "allOf": + [ + { "$ref": "#/definitions/textualBodyFound" }, + { "required": ["type"] }, + { "properties": + { + "type": + { + "oneOf": + [ + { "type": "string", + "enum": ["TextualBody"] }, + { "type": "array", + "minItems": 1, + "not": + { "items": + { "not": { "enum": [ "TextualBody"] } } + } + } + ] + } + } + }, + { "not": { "$ref": "id.json#/definitions/idValueFound" } } + ] }, "itemEmbeddedTextTypeIncludesTextualBody": { - "type": "object", - "properties": - { - "items": + "type": "object", + "properties": { - "type": "array", - "minItems": 1, - "not": - { - "items": - { "not": { "$ref": "#/definitions/embeddedTextTypeIncludesTextualBody" } } - } - } - }, - "required": ["items"] + "items": + { + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/embeddedTextTypeIncludesTextualBody" } } + } + } + }, + "required": ["items"] }, - "embeddedTextTypeIncludesText": + "itemEmbeddedTextTypeInclTextualBodyWithoutId": { - "allOf": + "type": "object", + "properties": + { + "items": + { + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/embeddedTextTypeIncludesTextualBody" } } + } + } + }, + "required": ["items"], + "not": { "$ref": "id.json#/definitions/idValueFound" } + }, + +"embeddedTextTypeIncludesText": + { + "allOf": [ - { "$ref": "#/definitions/textualBodyFound" }, - { "required": ["type"] }, - { "properties": - { - "type": + { "$ref": "#/definitions/textualBodyFound" }, + { "required": ["type"] }, + { "properties": { - "oneOf": - [ - { "type": "string", - "enum": ["Text"] }, - { "type": "array", - "minItems": 1, - "not": - { "items": - { "not": { "enum": [ "Text"] } } - } - } - ] + "type": + { + "oneOf": + [ + { "type": "string", + "enum": ["Text"] }, + { "type": "array", + "minItems": 1, + "not": + { "items": + { "not": { "enum": [ "Text"] } } + } + } + ] + } } } - } - ] + ] }, "itemEmbeddedTextTypeIncludesText": { - "type": "object", - "properties": - { - "items": + "type": "object", + "properties": { - "type": "array", - "minItems": 1, - "not": - { - "items": - { "not": { "$ref": "#/definitions/embeddedTextTypeIncludesText" } } - } - } - }, - "required": ["items"] + "items": + { + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/embeddedTextTypeIncludesText" } } + } + } + }, + "required": ["items"] } } diff --git a/tests/wpt/web-platform-tests/annotation-model/definitions/choiceSet.json b/tests/wpt/web-platform-tests/annotation-model/definitions/choiceSet.json index ffe21a0f0e0..89c2ebdc74c 100644 --- a/tests/wpt/web-platform-tests/annotation-model/definitions/choiceSet.json +++ b/tests/wpt/web-platform-tests/annotation-model/definitions/choiceSet.json @@ -21,14 +21,14 @@ "items": { "oneOf": [ - { "$ref": "specificResource.json#/definitions/specificeResourceDetected" }, - { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" }, - { "$ref": "bodyTarget.json#/definitions/textualBodyFound" }, + { "$ref": "specificResource.json#/definitions/specificeResourceDetected" }, + { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected" }, + { "$ref": "bodyTarget.json#/definitions/textualBodyFound" }, { "$ref": "id.json#/definitions/stringUri" }, { "allOf": [ - { "$ref" : "#/definitions/choiceOrSetTypeDefinition" }, - { "$ref": "#/definitions/itemsDetected" } + { "$ref" : "#/definitions/choiceOrSetTypeDefinition" }, + { "$ref": "#/definitions/itemsDetected" } ] } ] @@ -108,19 +108,19 @@ "choiceOrSetTypeDefinition": { - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Definition: Choice or Set type", - "description": "True when object has type key and object's type is any of 'Choice', 'Composite', 'List', 'Independents' (Section 3.2.7)", - "type": "object", - "properties": - { - "type": - { - "type": "string", - "enum": ["Choice", "Composite", "List", "Independents"] - } - }, - "required": [ "type" ] + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Choice or Set type", + "description": "True when object has type key and object's type is any of 'Choice', 'Composite', 'List', 'Independents' (Section 3.2.7)", + "type": "object", + "properties": + { + "type": + { + "type": "string", + "enum": ["Choice", "Composite", "List", "Independents"] + } + }, + "required": [ "type" ] }, "choiceDetected": { @@ -178,36 +178,36 @@ "type": "object", "allOf": [ - { "$ref": "#/definitions/choiceOrSetTypeDefinition" }, - { "$ref": "#/definitions/itemsDetected" } + { "$ref": "#/definitions/choiceOrSetTypeDefinition" }, + { "$ref": "#/definitions/itemsDetected" } ] }, "choiceSetWithValue" : { - "allOf": - [ - { "$ref": "#/definitions/choiceOrSetDetected" }, - { "required": [ "value" ] } - ] + "allOf": + [ + { "$ref": "#/definitions/choiceOrSetDetected" }, + { "required": [ "value" ] } + ] }, "choiceSetWithSource" : { - "allOf": - [ - { "$ref": "#/definitions/choiceOrSetDetected" }, - { "required": [ "source" ] } - ] + "allOf": + [ + { "$ref": "#/definitions/choiceOrSetDetected" }, + { "required": [ "source" ] } + ] }, "choiceSetWithPurpose" : { - "allOf": - [ - { "$ref": "#/definitions/choiceOrSetDetected" }, - { "required": [ "purpose" ] } - ] + "allOf": + [ + { "$ref": "#/definitions/choiceOrSetDetected" }, + { "required": [ "purpose" ] } + ] } } diff --git a/tests/wpt/web-platform-tests/annotation-model/definitions/collections.json b/tests/wpt/web-platform-tests/annotation-model/definitions/collections.json new file mode 100644 index 00000000000..9f5b13a9f83 --- /dev/null +++ b/tests/wpt/web-platform-tests/annotation-model/definitions/collections.json @@ -0,0 +1,428 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "id": "collections.json", + "title": "Definitions: Annotation Collections.", + "description": "Schemas in #/definitions detect or validate keys/objects (direct children) uniquely used to describe Annotation Collections (Section 5.1 and 5.2).", + "definitions": { + + "contextValueFound": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid @context string included in Collection / Page description", + "description": "True when the string has value http://www.w3.org/ns/anno.jsonld (Section 5)", + "type": "string", + "enum": [ "http://www.w3.org/ns/anno.jsonld" ] + }, + + "contextValueInArrayFound": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid @context string found in array included in Collection / Page description", + "description": "True when the array contains a string item having value http://www.w3.org/ns/anno.jsonld (Section 5)", + "type": "array", + "not": + { "items": + { "not": + { "$ref": "#/definitions/contextValueFound" } + } + } + }, + + "annotationCollectionTypeValueRecognized": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid AnnotationCollection type value string included in Collection description", + "description": "True when the string has value 'AnnotationCollection' (Section 5.1)", + "type": "string", + "enum": [ "AnnotationCollection" ] + }, + + "annotationCollectionTypeValueInArrayRecognized": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid AnnotationCollection type in array included in Collection description", + "description": "True when the array contains a string item having value 'AnnotationCollection' (Section 5.1)", + "type": "array", + "not": + { "items": + { "not": + { "$ref": "#/definitions/annotationCollectionTypeValueRecognized" } + } + } + }, + + "annotationCollectionTypeValueFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Implementation: AnnotationCollection type", + "description": "True when the Annotation Collection has type key and 'AnnotationCollection' is a value of type (Section 5.1)", + "type": "object", + "required": [ "type" ], + "properties": { + "type": { + "oneOf": [ + { "$ref": "#/definitions/annotationCollectionTypeValueRecognized" }, + { "$ref": "#/definitions/annotationCollectionTypeValueInArrayRecognized" } + ] + } + } + }, + + "annotationPageTypeValueRecognized": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid AnnotationPage type value string included in Page description", + "description": "True when the string has value 'AnnotationPage' (Section 5.2)", + "type": "string", + "enum": [ "AnnotationPage" ] + }, + + "annotationPageTypeValueInArrayRecognized": { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: Valid AnnotationPage type in array included in Page description", + "description": "True when the array contains a string item having value 'AnnotationPage' (Section 5.2)", + "type": "array", + "not": + { "items": + { "not": + { "$ref": "#/definitions/annotationPageTypeValueRecognized" } + } + } + }, + + "annotationPageTypeValueFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Implementation: AnnotationPage type", + "description": "True when the Annotation Page has type key and 'AnnotationPage' is a value of type (Section 5.2)", + "type": "object", + "required": [ "type" ], + "properties": { + "type": { + "oneOf": [ + { "$ref": "#/definitions/annotationPageTypeValueRecognized" }, + { "$ref": "#/definitions/annotationPageTypeValueInArrayRecognized" } + ] + } + } + }, + + "labelDefinition": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: label (Annotation Collections)", + "description": "True when the object has no label or has one or more label values of type string (Section 5.1)", + "type": "object", + "properties": + { + "label": + { + "oneOf": + [ + {"type": "string" }, + {"type": "array", + "minItems": 1, + "items": {"type": "string"} + } + ] + } + } + }, + + "labelFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Collection label", + "description": "True when the object has one or more label value(s) (Section 5.1)", + "allOf": [ + {"required": ["label"]}, + {"$ref": "#/definitions/labelDefinition"} + ] + }, + + "totalDefinition": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: total (Annotation Collections)", + "description": "True when the object has no total key or has exactly one total value of type integer greater or equal to zero (Section 5.1)", + "type": "object", + "properties": + { + "total": + { + "oneOf": + [ + {"type": "integer", + "minimum": 0 }, + {"type": "array", + "minItems": 1, + "maxItems": 1, + "items": {"type": "integer", + "minimum": 0 } + } + ] + } + } + }, + + "totalFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Collection total key", + "description": "True when the object has exactly one total value (Section 5.1)", + "allOf": [ + {"required": ["total"]}, + {"$ref": "#/definitions/totalDefinition"} + ] + }, + + "totalMoreThanZero": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: total more than zero (Annotation Collections)", + "description": "True when the object has exactly one total value of type integer and greater than zero (Section 5.1)", + "type": "object", + "properties": + { + "total": + { + "oneOf": + [ + {"type": "integer", + "minimum": 0, + "exclusiveMinimum": true}, + {"type": "array", + "minItems": 1, + "maxItems": 1, + "items": {"type": "integer", + "minimum": 0, + "exclusiveMinimum": true} + } + ] + } + }, + "required": [ "total" ] + }, + + "firstValidIfPresent": + { "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validation: first value (Annotation Collection)", + "description": "True when the Annotation Collection has no first key or has 1 first key value that is string of format uri or has first key value that is an object of type AnnotationPage (Section 5.1)", + "type": "object", + "properties": {"first": + { "oneOf": [ + { + "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "#/definitions/annotationPageTypeValueFound" } + ] + }, + { "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "#/definitions/annotationPageTypeValueFound" } + ] + } + } + ] + } + } + }, + + "firstFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Collection first key", + "description": "True when the object has exactly one first value (Section 5.1)", + "allOf": [ + {"required": ["first"]}, + {"$ref": "#/definitions/firstValidIfPresent"} + ] + }, + + "firstRequiredIfTotalMoreThanZero": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "If total greater than zero, check for implementation of Annotation Collection first key", + "description": "True when the object has no total or has total = zero or has exactly one first value (Section 5.1)", + "type": "object", + "oneOf": [ + { + "allOf": [ + { "$ref": "#/definitions/totalMoreThanZero" }, + { "$ref": "#/definitions/firstFound" } + ] + }, + { "not": { "$ref": "#/definitions/totalMoreThanZero" } } + ] + }, + + "lastValidIfPresent": + { "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validation: last value (Annotation Collection)", + "description": "True when the Annotation Collection has no last key or has 1 last key value that is string of format uri (Section 5.1)", + "type": "object", + "properties": {"last": + { "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { "$ref": "id.json#/definitions/stringUri" } + } + ] + } + } + }, + + "lastFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Collection last key", + "description": "True when the object has exactly one last value that is string of format uri (Section 5.1)", + "allOf": [ + {"required": ["last"]}, + {"$ref": "#/definitions/lastValidIfPresent"} + ] + }, + + "partOfValidIfPresent": + { "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validation: partOf value (Annotation Page)", + "description": "True when the Annotation Page has no partOf key or has 1 partOf key value that is string of format uri (Section 5.2)", + "type": "object", + "properties": {"partOf": + { "oneOf": [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "id.json#/definitions/idValueFound" } + ] + } + } + }, + + "partOfFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Page partOf key", + "description": "True when the object has exactly one partOf value that is string of format uri (Section 5.2)", + "allOf": [ + {"required": ["partOf"]}, + {"$ref": "#/definitions/partOfValidIfPresent"} + ] + }, + + "nextValidIfPresent": + { "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validation: next value (Annotation Page)", + "description": "True when the Annotation Page has no next key or has 1 next key value that is string of format uri (Section 5.2)", + "type": "object", + "properties": {"next": + { "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { "$ref": "id.json#/definitions/stringUri" } + } + ] + } + } + }, + + "nextFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Page next key", + "description": "True when the object has exactly one next value that is string of format uri (Section 5.2)", + "allOf": [ + {"required": ["next"]}, + {"$ref": "#/definitions/nextValidIfPresent"} + ] + }, + + "prevValidIfPresent": + { "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Validation: prev value (Annotation Page)", + "description": "True when the Annotation Page has no prev key or has 1 prev key value that is string of format uri (Section 5.2)", + "type": "object", + "properties": {"prev": + { "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { "$ref": "id.json#/definitions/stringUri" } + } + ] + } + } + }, + + "prevFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Page prev key", + "description": "True when the object has exactly one prev value that is string of format uri (Section 5.2)", + "allOf": [ + {"required": ["prev"]}, + {"$ref": "#/definitions/prevValidIfPresent"} + ] + }, + + "startIndexDefinition": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Definition: startIndex (Annotation Pages)", + "description": "True when the object has no startIndex key or has exactly one startIndex value of type integer greater or equal to zero (Section 5.2)", + "type": "object", + "properties": + { + "startIndex": + { + "oneOf": + [ + {"type": "integer", + "minimum": 0 }, + {"type": "array", + "minItems": 1, + "maxItems": 1, + "items": {"type": "integer", + "minimum": 0 } + } + ] + } + } + }, + + "startIndexFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Page startIndex key", + "description": "True when the object has exactly one startIndex value (Section 5.2)", + "allOf": [ + {"required": ["startIndex"]}, + {"$ref": "#/definitions/startIndexDefinition"} + ] + }, + + "itemsFound": + { + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Check for implementation of Annotation Page items key", + "description": "True when the object has items key with value that is an array of strings of format uri and/or objects of type Annotation (Section 5.2)", + "type": "object", + "properties": + { "items": + { "type": "array", + "items": { + "oneOf":[ + { "$ref": "annotations.json#/definitions/annotationTypeValueFound" }, + { "type": "string", + "format": "uri" } + ] + } + } + }, + "required": [ "items" ] + } + + } +} diff --git a/tests/wpt/web-platform-tests/annotation-model/definitions/otherProperties.json b/tests/wpt/web-platform-tests/annotation-model/definitions/otherProperties.json index 0cf42525cb4..faa2231f302 100644 --- a/tests/wpt/web-platform-tests/annotation-model/definitions/otherProperties.json +++ b/tests/wpt/web-platform-tests/annotation-model/definitions/otherProperties.json @@ -51,16 +51,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/createdPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/createdPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -73,12 +73,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["created"] , - "$ref": "#/definitions/createdValidIfPresent" - } + "source": + { + "type": "object", + "required": ["created"] , + "$ref": "#/definitions/createdValidIfPresent" + } }, "required": ["source"] }, @@ -110,7 +110,7 @@ "title": "Collate: generated key with qualifying body/target classes", "description": "Supports implementation check of generated (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Sections 3.2.1-6, 3.3)", "oneOf": [ - {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} + {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} ], "allOf": [ {"$ref": "#/definitions/generatedValidIfPresent"}, @@ -164,16 +164,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/modifiedPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/modifiedPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -186,12 +186,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["modified"] , - "$ref": "#/definitions/modifiedValidIfPresent" - } + "source": + { + "type": "object", + "required": ["modified"] , + "$ref": "#/definitions/modifiedValidIfPresent" + } }, "required": ["source"] }, @@ -269,16 +269,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -291,12 +291,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["creator"] , - "$ref": "#/definitions/creatorValidIfPresent" - } + "source": + { + "type": "object", + "required": ["creator"] , + "$ref": "#/definitions/creatorValidIfPresent" + } }, "required": ["source"] }, @@ -325,16 +325,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/singleCreatorPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/singleCreatorPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -347,12 +347,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["creator"] , - "$ref": "#/definitions/creatorSingularIfPresent" - } + "source": + { + "type": "object", + "required": ["creator"] , + "$ref": "#/definitions/creatorSingularIfPresent" + } }, "required": ["source"] }, @@ -386,7 +386,7 @@ "title": "Collate: generator key with qualifying body/target classes", "description": "Supports implementation check of generator (if/when) used on External Web Resources, Specific Resources, Textual Body Resources (Section 3.3.1)", "oneOf": [ - {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} + {"$ref": "annotations.json#/definitions/annotationTypeValueFound"} ], "allOf": [ {"required": ["generator"]}, @@ -474,16 +474,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/audiencePropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/audiencePropertyFound" } } + } } - } }, "required": ["items"] }, @@ -496,12 +496,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["audience"] , - "$ref": "#/definitions/audienceValidIfPresent" - } + "source": + { + "type": "object", + "required": ["audience"] , + "$ref": "#/definitions/audienceValidIfPresent" + } }, "required": ["source"] }, @@ -551,16 +551,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/accessibilityPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/accessibilityPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -573,12 +573,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["accessibility"] , - "$ref": "#/definitions/accessibilityValidIfPresent" - } + "source": + { + "type": "object", + "required": ["accessibility"] , + "$ref": "#/definitions/accessibilityValidIfPresent" + } }, "required": ["source"] }, @@ -623,16 +623,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/rightsPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/rightsPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -645,12 +645,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["rights"] , - "$ref": "#/definitions/rightsValidIfPresent" - } + "source": + { + "type": "object", + "required": ["rights"] , + "$ref": "#/definitions/rightsValidIfPresent" + } }, "required": ["source"] }, @@ -689,16 +689,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/canonicalPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/canonicalPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -711,12 +711,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["canonical"] , - "$ref": "#/definitions/canonicalValidIfPresent" - } + "source": + { + "type": "object", + "required": ["canonical"] , + "$ref": "#/definitions/canonicalValidIfPresent" + } }, "required": ["source"] }, @@ -761,16 +761,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/viaPropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/viaPropertyFound" } } + } } - } }, "required": ["items"] }, @@ -783,12 +783,12 @@ "type": "object", "properties": { - "source": - { - "type": "object", - "required": ["via"] , - "$ref": "#/definitions/viaValidIfPresent" - } + "source": + { + "type": "object", + "required": ["via"] , + "$ref": "#/definitions/viaValidIfPresent" + } }, "required": ["source"] }, @@ -831,16 +831,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/purposePropertyFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/purposePropertyFound" } } + } } - } }, "required": ["items"] }, @@ -866,11 +866,11 @@ "sourceCreatorAgentWithIdFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithIdFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithIdFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithIdFound": @@ -878,16 +878,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithIdFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithIdFound" } } + } } - } }, "required": ["items"] }, @@ -954,11 +954,11 @@ "sourceCreatorAgentWithTypeFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithTypeFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithTypeFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithTypeFound": @@ -966,16 +966,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithTypeFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithTypeFound" } } + } } - } }, "required": ["items"] }, @@ -1057,11 +1057,11 @@ "sourceCreatorAgentWithNameFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithNameFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithNameFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithNameFound": @@ -1069,16 +1069,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithNameFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithNameFound" } } + } } - } }, "required": ["items"] }, @@ -1115,11 +1115,11 @@ "sourceCreatorAgentWithSingularNameFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithSingularNameFound": @@ -1127,16 +1127,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithSingularNameFound" } } + } } - } }, "required": ["items"] }, @@ -1196,11 +1196,11 @@ "sourceCreatorAgentWithSingularNicknameFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithSingularNicknameFound": @@ -1208,16 +1208,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithSingularNicknameFound" } } + } } - } }, "required": ["items"] }, @@ -1280,11 +1280,11 @@ "sourceCreatorAgentWithEmailFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithEmailFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithEmailFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithEmailFound": @@ -1292,16 +1292,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithEmailFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithEmailFound" } } + } } - } }, "required": ["items"] }, @@ -1360,11 +1360,11 @@ "sourceCreatorAgentWithEmail_sha1Found": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } + }, + "required": ["source"] }, "itemCreatorAgentWithEmail_sha1Found": @@ -1372,16 +1372,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithEmail_sha1Found" } } + } } - } }, "required": ["items"] }, @@ -1442,11 +1442,11 @@ "sourceCreatorAgentWithHomepageFound": { "type": "object", "properties": - { - "source": - { "$ref": "#/definitions/creatorAgentWithHomepageFound" } - }, - "required": ["source"] + { + "source": + { "$ref": "#/definitions/creatorAgentWithHomepageFound" } + }, + "required": ["source"] }, "itemCreatorAgentWithHomepageFound": @@ -1454,16 +1454,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/creatorAgentWithHomepageFound" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/creatorAgentWithHomepageFound" } } + } } - } }, "required": ["items"] } diff --git a/tests/wpt/web-platform-tests/annotation-model/definitions/specificResource.json b/tests/wpt/web-platform-tests/annotation-model/definitions/specificResource.json index c3d97541efd..b830f68bd2d 100644 --- a/tests/wpt/web-platform-tests/annotation-model/definitions/specificResource.json +++ b/tests/wpt/web-platform-tests/annotation-model/definitions/specificResource.json @@ -16,8 +16,8 @@ { "type": ["string", "object" ], "oneOf": [ - { "$ref": "id.json#/definitions/stringUri" }, - { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"} + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "bodyTarget.json#/definitions/externalWebResourceDetected"} ] } }, @@ -29,14 +29,14 @@ "title": "Detection: Specific Resource", "description": "True when object has exactly 1 source value and at least one of purpose, selector, state, styleClass, renderedVia, scope (Section 4)", "type": "object", - "$ref": "#/definitions/sourceDetected", + "$ref": "#/definitions/sourceDetected", "anyOf": [ - { "$ref": "otherProperties.json#/definitions/purposeRecognizedIfPresent", "required": ["purpose"] }, - { "$ref": "#/definitions/selectorDetected" }, - { "$ref": "#/definitions/stateDetected" }, + { "$ref": "otherProperties.json#/definitions/purposeRecognizedIfPresent", "required": ["purpose"] }, + { "$ref": "#/definitions/selectorDetected" }, + { "$ref": "#/definitions/stateDetected" }, { "$ref": "#/definitions/styleClassDetected" }, { "$ref": "#/definitions/renderedViaDetected" }, - { "$ref": "#/definitions/scopeDetected" } + { "$ref": "#/definitions/scopeDetected" } ] }, @@ -47,16 +47,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/specificeResourceDetected" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/specificeResourceDetected" } } + } } - } }, "required": ["items"] }, @@ -77,11 +77,11 @@ {"$ref": "id.json#/definitions/idValueFound"}, {"$ref": "#/definitions/fragmentSelectorDetected"}, {"$ref": "#/definitions/cssSelectorDetected"}, - {"$ref": "#/definitions/xpathSelectorDetected"}, + {"$ref": "#/definitions/xpathSelectorDetected"}, {"$ref": "#/definitions/textQuoteSelectorDetected"}, - {"$ref": "#/definitions/textPositionSelectorDetected"}, + {"$ref": "#/definitions/textPositionSelectorDetected"}, {"$ref": "#/definitions/dataPositionSelectorDetected"}, - {"$ref": "#/definitions/rangeSelectorDetected"}, + {"$ref": "#/definitions/rangeSelectorDetected"}, {"$ref": "#/definitions/svgSelectorDetected"} ] }, @@ -96,11 +96,11 @@ {"$ref": "id.json#/definitions/idValueFound"}, {"$ref": "#/definitions/fragmentSelectorDetected"}, {"$ref": "#/definitions/cssSelectorDetected"}, - {"$ref": "#/definitions/xpathSelectorDetected"}, + {"$ref": "#/definitions/xpathSelectorDetected"}, {"$ref": "#/definitions/textQuoteSelectorDetected"}, - {"$ref": "#/definitions/textPositionSelectorDetected"}, + {"$ref": "#/definitions/textPositionSelectorDetected"}, {"$ref": "#/definitions/dataPositionSelectorDetected"}, - {"$ref": "#/definitions/rangeSelectorDetected"}, + {"$ref": "#/definitions/rangeSelectorDetected"}, {"$ref": "#/definitions/svgSelectorDetected"} ] } @@ -114,23 +114,23 @@ "itemSelectorValidIfPresent": { - "description": "True if ALL items in the items array of object tested have no selector, or have a selector that is uri, or have a selector that has recognized value(s)", - "type": "object", - "properties": - { - "items": - { "type": "array", - "minItems": 1, - "items": - { - "oneOf": - [ - { "$ref": "id.json#/definitions/stringUri" }, - { "$ref": "#/definitions/selectorDefined" } - ] - } + "description": "True if ALL items in the items array of object tested have no selector, or have a selector that is uri, or have a selector that has recognized value(s)", + "type": "object", + "properties": + { + "items": + { "type": "array", + "minItems": 1, + "items": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "#/definitions/selectorDefined" } + ] + } + } } - } }, "selectorDetected": @@ -138,7 +138,7 @@ "title": "Detection: selector type", "description": "True when object tested has selector(s) that is(are) recognized as being one or more of the selectors described in the model (Section 4.2)", "type": "object", - "$ref": "#/definitions/selectorDefined", + "$ref": "#/definitions/selectorDefined", "required": ["selector"] }, @@ -146,9 +146,9 @@ { "type": "object", "properties": - { - "type": { "type": "string", "enum": ["FragmentSelector"] } - }, + { + "type": { "type": "string", "enum": ["FragmentSelector"] } + }, "required": ["type"] }, @@ -157,7 +157,7 @@ "title": "Detection: fragment selector", "description": "True when object is a fragment selelctor (Section 4.2.1)", "allOf": - [ + [ { "$ref": "#/definitions/fragmentSelectorTypeDetected"}, { "type": "object", @@ -168,7 +168,7 @@ }, "required": ["value"] } - ] + ] }, "conformsToPropertyFound": @@ -177,20 +177,20 @@ "description": "True when object is a fragment selelctor with a conformsTo key (Section 4.2.1)", "type": "object", "allOf": - [ + [ { "$ref": "#/definitions/fragmentSelectorDetected"}, { "required": ["conformsTo"] } - ] + ] }, "fragmentSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/fragmentSelectorTypeDetected" } }, - { "$ref": "#/definitions/fragmentSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/fragmentSelectorTypeDetected" } }, + { "$ref": "#/definitions/fragmentSelectorDetected" } + ] }, "cssSelectorTypeDetected": @@ -208,7 +208,7 @@ "title": "Detection: CssSelector selector", "description": "True when object is a CssSelector selelctor (Section 4.2.2)", "allOf": - [ + [ { "$ref": "#/definitions/cssSelectorTypeDetected" }, { "type": "object", @@ -218,17 +218,17 @@ }, "required": ["value"] } - ] + ] }, "cssSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/cssSelectorTypeDetected" } }, - { "$ref": "#/definitions/cssSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/cssSelectorTypeDetected" } }, + { "$ref": "#/definitions/cssSelectorDetected" } + ] }, "xpathSelectorTypeDetected": @@ -246,7 +246,7 @@ "title": "Detection: XPath selector", "description": "True when object is a XPath selelctor (Section 4.2.3)", "allOf": - [ + [ { "$ref": "#/definitions/xpathSelectorTypeDetected" }, { "type": "object", @@ -256,18 +256,18 @@ }, "required": ["value"] } - ] + ] }, "xpathSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/xpathSelectorTypeDetected" } }, - { "$ref": "#/definitions/xpathSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/xpathSelectorTypeDetected" } }, + { "$ref": "#/definitions/xpathSelectorDetected" } + ] }, "textQuoteSelectorTypeDetected": @@ -285,7 +285,7 @@ "title": "Detection: text quote selector", "description": "True when object is a text quote selelctor (Section 4.2.4)", "allOf": - [ + [ { "$ref": "#/definitions/textQuoteSelectorTypeDetected" }, { "type": "object", @@ -297,7 +297,7 @@ }, "required": ["exact"] } - ] + ] }, "prefixPropertyFound": @@ -306,10 +306,10 @@ "description": "True when object is a text quote selelctor with a prefix key (Section 4.2.4)", "type": "object", "allOf": - [ + [ { "$ref": "#/definitions/textQuoteSelectorDetected"}, { "required": ["prefix"] } - ] + ] }, "suffixPropertyFound": @@ -318,20 +318,20 @@ "description": "True when object is a text quote selelctor with a suffix key (Section 4.2.4)", "type": "object", "allOf": - [ + [ { "$ref": "#/definitions/textQuoteSelectorDetected"}, { "required": ["suffix"] } - ] + ] }, "textQuoteSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/textQuoteSelectorTypeDetected" } }, - { "$ref": "#/definitions/textQuoteSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/textQuoteSelectorTypeDetected" } }, + { "$ref": "#/definitions/textQuoteSelectorDetected" } + ] }, "textPositionSelectorTypeDetected": @@ -349,28 +349,28 @@ "title": "Definition: text position selector", "description": "True when object is a text position selelctor (Section 4.2.5)", "allOf": - [ - { "$ref": "#/definitions/textPositionSelectorTypeDetected" }, - { - "type": "object", - "properties": - { - "start": { "type": "integer", "minimum": 0 }, - "end": { "type": "integer","minimum": 0 } - }, - "required": ["start", "end"] - } - ] + [ + { "$ref": "#/definitions/textPositionSelectorTypeDetected" }, + { + "type": "object", + "properties": + { + "start": { "type": "integer", "minimum": 0 }, + "end": { "type": "integer","minimum": 0 } + }, + "required": ["start", "end"] + } + ] }, "textPositionSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/textPositionSelectorTypeDetected" } }, - { "$ref": "#/definitions/textPositionSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/textPositionSelectorTypeDetected" } }, + { "$ref": "#/definitions/textPositionSelectorDetected" } + ] }, "dataPositionSelectorTypeDetected": @@ -378,7 +378,7 @@ "type": "object", "properties": { - "type": { "type": "string", "enum": ["DataPositionSelector"] } + "type": { "type": "string", "enum": ["DataPositionSelector"] } }, "required": ["type"] }, @@ -388,28 +388,28 @@ "title": "Definition: data position selector", "description": "True when object is a data position selelctor (Section 4.2.5)", "allOf": - [ - { "$ref": "#/definitions/dataPositionSelectorTypeDetected" }, - { - "type": "object", - "properties": - { - "start": { "type": "integer", "minimum": 0 }, - "end": { "type": "integer","minimum": 0 } - }, - "required": ["start", "end"] - } - ] + [ + { "$ref": "#/definitions/dataPositionSelectorTypeDetected" }, + { + "type": "object", + "properties": + { + "start": { "type": "integer", "minimum": 0 }, + "end": { "type": "integer","minimum": 0 } + }, + "required": ["start", "end"] + } + ] }, "dataPositionSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/dataPositionSelectorTypeDetected" } }, - { "$ref": "#/definitions/dataPositionSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/dataPositionSelectorTypeDetected" } }, + { "$ref": "#/definitions/dataPositionSelectorDetected" } + ] }, "svgSelectorTypeDetected": @@ -417,7 +417,7 @@ "type": "object", "properties": { - "type": { "type": "string", "enum": ["SvgSelector"] } + "type": { "type": "string", "enum": ["SvgSelector"] } }, "required": ["type"] }, @@ -427,7 +427,7 @@ "title": "Detection: svg selector", "description": "True when object is a svg selelctor (Section 4.2.7)", "allOf": - [ + [ { "$ref": "#/definitions/svgSelectorTypeDetected" }, { "type": "object", @@ -437,21 +437,21 @@ "id": { "$ref": "id.json#/definitions/arraySingleStringUri" } }, "oneOf": [ - {"required": ["value"] }, - {"required": ["id"] } + {"required": ["value"] }, + {"required": ["id"] } ] } - ] + ] }, "svgSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/svgSelectorTypeDetected" } }, - { "$ref": "#/definitions/svgSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/svgSelectorTypeDetected" } }, + { "$ref": "#/definitions/svgSelectorDetected" } + ] }, "rangeSelectorTypeDetected": @@ -469,7 +469,7 @@ "title": "Detection: range selector", "description": "True when object is a range selelctor (Section 4.2.9)", "allOf": - [ + [ { "$ref": "#/definitions/rangeSelectorTypeDetected" }, { "type": "object", @@ -478,13 +478,13 @@ "^(startSelector|endSelector)$": { "type": "object", "oneOf": [ - {"$ref": "#/definitions/fragmentSelectorDetected"}, - {"$ref": "#/definitions/cssSelectorDetected"}, - {"$ref": "#/definitions/xpathSelectorDetected"}, + {"$ref": "#/definitions/fragmentSelectorDetected"}, + {"$ref": "#/definitions/cssSelectorDetected"}, + {"$ref": "#/definitions/xpathSelectorDetected"}, {"$ref": "#/definitions/textQuoteSelectorDetected"}, {"$ref": "#/definitions/textPositionSelectorDetected"}, - {"$ref": "#/definitions/dataPositionSelectorDetected"}, - {"$ref": "#/definitions/svgSelectorDetected"} + {"$ref": "#/definitions/dataPositionSelectorDetected"}, + {"$ref": "#/definitions/svgSelectorDetected"} ] } }, @@ -495,12 +495,12 @@ "rangeSelectorTypeValidIfPresent": { - "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/rangeSelectorTypeDetected" } }, - { "$ref": "#/definitions/rangeSelectorDetected" } - ] + "description": "True if Selector Type not detected (i.e., not present), or if both Type and Selector detected (i.e., Selector constraints met); note, Selector cannot be detected if Selector Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/rangeSelectorTypeDetected" } }, + { "$ref": "#/definitions/rangeSelectorDetected" } + ] }, "stateDefined" : @@ -513,30 +513,30 @@ "state": { "oneOf": [ - { "$ref": "id.json#/definitions/stringUri" }, - { "type": "object", - "anyOf": [ - {"$ref": "id.json#/definitions/idValueFound"}, - {"$ref": "#/definitions/timeStateDetected"}, - {"$ref": "#/definitions/requestHeaderStateDetected"} - ] - }, - { - "type": "array", - "minItems": 1, - "items": - { "oneOf": [ - { "$ref": "id.json#/definitions/stringUri" }, - { "type": "object", - "anyOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "object", + "anyOf": [ {"$ref": "id.json#/definitions/idValueFound"}, {"$ref": "#/definitions/timeStateDetected"}, {"$ref": "#/definitions/requestHeaderStateDetected"} + ] + }, + { + "type": "array", + "minItems": 1, + "items": + { "oneOf": [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "object", + "anyOf": [ + {"$ref": "id.json#/definitions/idValueFound"}, + {"$ref": "#/definitions/timeStateDetected"}, + {"$ref": "#/definitions/requestHeaderStateDetected"} + ] + } ] } - ] } - } ] } } @@ -544,23 +544,23 @@ "itemStateValidIfPresent": { - "description": "True if ALL items in the items array of object tested have no state, or have a state that is uri, or have a state that has recognized value(s)", - "type": "object", - "properties": - { - "items": - { "type": "array", - "minItems": 1, - "items": - { - "oneOf": - [ - { "$ref": "id.json#/definitions/stringUri" }, - { "$ref": "#/definitions/stateDefined" } - ] - } + "description": "True if ALL items in the items array of object tested have no state, or have a state that is uri, or have a state that has recognized value(s)", + "type": "object", + "properties": + { + "items": + { "type": "array", + "minItems": 1, + "items": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "#/definitions/stateDefined" } + ] + } + } } - } }, "stateDetected": @@ -568,7 +568,7 @@ "title": "Detection: state type", "description": "True when object tested has state(s) that is(are) recognized as being one or more of the states described in the model (Section 4.3)", "type": "object", - "$ref": "#/definitions/stateDefined", + "$ref": "#/definitions/stateDefined", "required": ["state"] }, @@ -587,34 +587,34 @@ "title": "Detection: time state", "description": "True when object is a time state (Section 4.3.1)", "allOf": - [ + [ { "$ref": "#/definitions/timeStateTypeDetected" }, { "type": "object", "properties": { - "sourceDate": - { "oneOf": [ - { "type": "string", - "format": "date-time"}, - { "type": "array", - "minItems": 1, - "items": - {"type": "string", "format": "date-time"} - } - ] - }, - "sourceDateStart": { "type": "string", "format": "date-time"}, - "sourceDateEnd": { "type": "string", "format": "date-time"}, - "cached": { "type": "string", "format": "uri"} + "sourceDate": + { "oneOf": [ + { "type": "string", + "format": "date-time"}, + { "type": "array", + "minItems": 1, + "items": + {"type": "string", "format": "date-time"} + } + ] + }, + "sourceDateStart": { "type": "string", "format": "date-time"}, + "sourceDateEnd": { "type": "string", "format": "date-time"}, + "cached": { "type": "string", "format": "uri"} }, "oneOf": - [ - { "required": ["sourceDate"] }, - { "required": ["sourceDateStart", "sourceDateEnd"] } - ], + [ + { "required": ["sourceDate"] }, + { "required": ["sourceDateStart", "sourceDateEnd"] } + ], "not": - { "required": [ "sourceDate", "sourceDateStart", "sourceDateEnd" ] } + { "required": [ "sourceDate", "sourceDateStart", "sourceDateEnd" ] } } ] }, @@ -625,20 +625,20 @@ "description": "True when object is a time state with a cached key (Section 4.3.1)", "type": "object", "allOf": - [ + [ { "$ref": "#/definitions/timeStateDetected"}, { "required": ["cached"] } - ] + ] }, "timeStateTypeValidIfPresent": { - "description": "True if State Type not detected (i.e., not present), or if both Type and State detected (i.e., State constraints met); note, State cannot be detected if State Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/timeStateTypeDetected" } }, - { "$ref": "#/definitions/timeStateDetected" } - ] + "description": "True if State Type not detected (i.e., not present), or if both Type and State detected (i.e., State constraints met); note, State cannot be detected if State Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/timeStateTypeDetected" } }, + { "$ref": "#/definitions/timeStateDetected" } + ] }, "requestHeaderStateTypeDetected": @@ -656,27 +656,27 @@ "title": "Detection: request header state", "description": "True when object is a request header state (Section 4.3.2)", "allOf": - [ + [ { "$ref": "#/definitions/requestHeaderStateTypeDetected" }, { "type": "object", "properties": { - "value": { "type": "string"} + "value": { "type": "string"} }, "required": ["value"] } - ] + ] }, "requestHeaderStateTypeValidIfPresent": { - "description": "True if State Type not detected (i.e., not present), or if both Type and State detected (i.e., State constraints met); note, State cannot be detected if State Type not detected.", - "oneOf": - [ - { "not": { "$ref": "#/definitions/requestHeaderStateTypeDetected" } }, - { "$ref": "#/definitions/requestHeaderStateDetected" } - ] + "description": "True if State Type not detected (i.e., not present), or if both Type and State detected (i.e., State constraints met); note, State cannot be detected if State Type not detected.", + "oneOf": + [ + { "not": { "$ref": "#/definitions/requestHeaderStateTypeDetected" } }, + { "$ref": "#/definitions/requestHeaderStateDetected" } + ] }, "refinedByDefined": @@ -695,14 +695,14 @@ {"$ref": "id.json#/definitions/idValueFound"}, {"$ref": "#/definitions/fragmentSelectorDetected"}, {"$ref": "#/definitions/cssSelectorDetected"}, - {"$ref": "#/definitions/xpathSelectorDetected"}, + {"$ref": "#/definitions/xpathSelectorDetected"}, {"$ref": "#/definitions/textQuoteSelectorDetected"}, - {"$ref": "#/definitions/textPositionSelectorDetected"}, + {"$ref": "#/definitions/textPositionSelectorDetected"}, {"$ref": "#/definitions/dataPositionSelectorDetected"}, - {"$ref": "#/definitions/rangeSelectorDetected"}, + {"$ref": "#/definitions/rangeSelectorDetected"}, {"$ref": "#/definitions/svgSelectorDetected"}, - {"$ref": "#/definitions/timeStateDetected"}, - {"$ref": "#/definitions/requestHeaderStateDetected"} + {"$ref": "#/definitions/timeStateDetected"}, + {"$ref": "#/definitions/requestHeaderStateDetected"} ] }, { @@ -716,14 +716,14 @@ {"$ref": "id.json#/definitions/idValueFound"}, {"$ref": "#/definitions/fragmentSelectorDetected"}, {"$ref": "#/definitions/cssSelectorDetected"}, - {"$ref": "#/definitions/xpathSelectorDetected"}, + {"$ref": "#/definitions/xpathSelectorDetected"}, {"$ref": "#/definitions/textQuoteSelectorDetected"}, - {"$ref": "#/definitions/textPositionSelectorDetected"}, + {"$ref": "#/definitions/textPositionSelectorDetected"}, {"$ref": "#/definitions/dataPositionSelectorDetected"}, - {"$ref": "#/definitions/rangeSelectorDetected"}, + {"$ref": "#/definitions/rangeSelectorDetected"}, {"$ref": "#/definitions/svgSelectorDetected"}, - {"$ref": "#/definitions/timeStateDetected"}, - {"$ref": "#/definitions/requestHeaderStateDetected"} + {"$ref": "#/definitions/timeStateDetected"}, + {"$ref": "#/definitions/requestHeaderStateDetected"} ] } ] @@ -736,51 +736,51 @@ "checkForRefinedBy": { - "description": "True if no state or selector, if no refinedBy, or if correct refinedBy", - "type": "object", - "patternProperties": - { - "^(state|selector)$": + "description": "True if no state or selector, if no refinedBy, or if correct refinedBy", + "type": "object", + "patternProperties": + { + "^(state|selector)$": {"oneOf": - [ - { "$ref": "id.json#/definitions/stringUri" }, - { "type": "object", - "$ref": "#/definitions/refinedByDefined" }, - { "type": "array", - "minItems": 1, - "items": - {"oneOf": - [ - { "$ref": "id.json#/definitions/stringUri" }, - { "type": "object", - "$ref": "#/definitions/refinedByDefined" } - ] - } - } - ] - } + [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "object", + "$ref": "#/definitions/refinedByDefined" }, + { "type": "array", + "minItems": 1, + "items": + {"oneOf": + [ + { "$ref": "id.json#/definitions/stringUri" }, + { "type": "object", + "$ref": "#/definitions/refinedByDefined" } + ] + } + } + ] + } } }, "itemRefinedByValidIfPresent": { - "description": "True if items in the items array of object tested have no refinedBy, or have a refinedBy that is uri, or have a refinedBy that has recognized value(s)", - "type": "object", - "properties": - { - "items": - { "type": "array", - "minItems": 1, - "items": - { - "oneOf": - [ - { "$ref": "id.json#/definitions/stringUri" }, - { "$ref": "#/definitions/checkForRefinedBy" } - ] - } + "description": "True if items in the items array of object tested have no refinedBy, or have a refinedBy that is uri, or have a refinedBy that has recognized value(s)", + "type": "object", + "properties": + { + "items": + { "type": "array", + "minItems": 1, + "items": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/stringUri" }, + { "$ref": "#/definitions/checkForRefinedBy" } + ] + } + } } - } }, "refinedByDetected": @@ -789,22 +789,22 @@ "description": "True when object tested has selector or state that has refinedBy(s) that is(are) recognized as being one or more of the refinedBys described in the model (Section 4.2)", "type": "object", "anyOf": - [ - { "properties": - { "state" : { "$ref ": "#/definitions/refinedByWithinStateSelector" } }, - "required": ["state"] - }, - { "properties": - { "selector" : { "$ref ": "#/definitions/refinedByWithinStateSelector" } }, - "required": ["selector"] - } - ] + [ + { "properties": + { "state" : { "$ref ": "#/definitions/refinedByWithinStateSelector" } }, + "required": ["state"] + }, + { "properties": + { "selector" : { "$ref ": "#/definitions/refinedByWithinStateSelector" } }, + "required": ["selector"] + } + ] }, "refinedByWithinStateSelector": { - "oneOf": - [ + "oneOf": + [ { "type": "object", "$ref": "#/definitions/refinedByDefined", "required": ["refinedBy"] @@ -813,16 +813,16 @@ "minItems": 1, "not": { - "items": + "items": {"not": - { "type": "object", - "$ref": "#/definitions/refinedByDefined", - "required": ["refinedBy"] - } + { "type": "object", + "$ref": "#/definitions/refinedByDefined", + "required": ["refinedBy"] + } } } } - ] + ] }, "styleClassDefinition": @@ -830,22 +830,22 @@ "title": "Definition: styleClass property value", "description": "True when the object has no styleClass property or has a styleClass property that appears with source and that is a string value or array of string values (Section 4.4)", "properties": - { - "styleClass": - { - "oneOf": - [ - { "type": "string" }, - { "type": "array", - "minItems": 1, - "items": { "type": "string" } } - ] - } - }, - "dependencies": - { - "styleClass": ["source"] - } + { + "styleClass": + { + "oneOf": + [ + { "type": "string" }, + { "type": "array", + "minItems": 1, + "items": { "type": "string" } } + ] + } + }, + "dependencies": + { + "styleClass": ["source"] + } }, "styleClassDetected": @@ -854,8 +854,8 @@ "description": "Supports implementation check of styleClass (if/when) used on Specific Resources (Sections 4.4)", "type": "object", "allOf": [ - { "$ref": "#/definitions/styleClassDefinition" }, - { "required": ["styleClass"] } + { "$ref": "#/definitions/styleClassDefinition" }, + { "required": ["styleClass"] } ] }, @@ -867,16 +867,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/styleClassDetected" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/styleClassDetected" } } + } } - } }, "required": ["items"] }, @@ -914,9 +914,9 @@ "title": "Collate: renderedVia key with qualifying body/target classes", "description": "Supports implementation check of renderedVia (if/when) used on Specific Resources (Sections 4.4)", "allOf": [ - { "$ref": "#/definitions/sourceDetected" }, - { "required": ["renderedVia"] }, - { "$ref": "#/definitions/renderedViaDefinition" } + { "$ref": "#/definitions/sourceDetected" }, + { "required": ["renderedVia"] }, + { "$ref": "#/definitions/renderedViaDefinition" } ] }, @@ -928,16 +928,16 @@ "type": "object", "properties": { - "items": - { - "type": "array", - "minItems": 1, - "not": + "items": { - "items": - { "not": { "$ref": "#/definitions/renderedViaDetected" } } + "type": "array", + "minItems": 1, + "not": + { + "items": + { "not": { "$ref": "#/definitions/renderedViaDetected" } } + } } - } }, "required": ["items"] }, @@ -966,164 +966,163 @@ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Collate: scope key with qualifying body/target classes", "description": "Supports implementation check of scope (if/when) used on Specific Resource Body (Sections 4.6)", - "$ref": "#/definitions/sourceDetected", "allOf": [ - {"required": ["scope"]}, - {"$ref": "#/definitions/scopeDefinition"} + {"required": ["scope"]}, + {"$ref": "#/definitions/scopeDefinition"} ] }, - "sourceWithCreated": - { - "description": "True if no source, or source is uri, or source is object that does not have created key, or if source is object that has only 1 created key of date-time format", - "type": "object", - "properties": - { - "source": + "sourceWithCreated": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have created key, or if source is object that has only 1 created key of date-time format", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "otherProperties.json#/definitions/createdValidIfPresent" } + ] + } + } + }, - "sourceWithModified": - { - "description": "True if no source, or source is uri, or source is object that does not have modified key, or if source is object that has only 1 modified key of date-time format", - "type": "object", - "properties": - { - "source": + "sourceWithModified": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have modified key, or if source is object that has only 1 modified key of date-time format", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "otherProperties.json#/definitions/modifiedValidIfPresent" } + ] + } + } + }, - "sourceWithRights": - { - "description": "True if no source, or source is uri, or source is object that does not have rights key, or if source is object that has rights key with all values of uri format", - "type": "object", - "properties": - { - "source": + "sourceWithRights": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have rights key, or if source is object that has rights key with all values of uri format", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "otherProperties.json#/definitions/rightsValidIfPresent" } + ] + } + } + }, - "sourceWithCanonical": - { - "description": "True if no source, or source is uri, or source is object that does not have canonical key, or if source is object that has only 1 canonical key of uri format", - "type": "object", - "properties": - { - "source": + "sourceWithCanonical": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "otherProperties.json#/definitions/canonicalValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have canonical key, or if source is object that has only 1 canonical key of uri format", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "otherProperties.json#/definitions/canonicalValidIfPresent" } + ] + } + } + }, - "sourceWithVia": - { - "description": "True if no source, or source is uri, or source is object that does not have via key, or if source is object that has via key with all values of uri format", - "type": "object", - "properties": - { - "source": + "sourceWithVia": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "otherProperties.json#/definitions/viaValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have via key, or if source is object that has via key with all values of uri format", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "otherProperties.json#/definitions/viaValidIfPresent" } + ] + } + } + }, - "sourceWithTextDirection": - { - "description": "True if no source, or source is uri, or source is object that does not have textDirection key, or if source is object that has only 1 textDirectoin key, one of ltr, rtl, auto", - "type": "object", - "properties": - { - "source": + "sourceWithTextDirection": { - "oneOf": - [ - { "$ref": "id.json#/definitions/arraySingleStringUri" }, - { "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" } - ] - } - } - }, + "description": "True if no source, or source is uri, or source is object that does not have textDirection key, or if source is object that has only 1 textDirectoin key, one of ltr, rtl, auto", + "type": "object", + "properties": + { + "source": + { + "oneOf": + [ + { "$ref": "id.json#/definitions/arraySingleStringUri" }, + { "$ref": "bodyTarget.json#/definitions/textDirectionValidIfPresent" } + ] + } + } + }, - "specificResourceWithItems" : - { - "description": "True if both source and items keys are present.", - "allOf": - [ - { "$ref": "#/definitions/sourceDetected"}, - { "required": [ "items" ] } - ] - }, + "specificResourceWithItems" : + { + "description": "True if both source and items keys are present.", + "allOf": + [ + { "$ref": "#/definitions/sourceDetected"}, + { "required": [ "items" ] } + ] + }, "itemSRWithItems": { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/specificResourceWithItems" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/specificResourceWithItems" } } } + } + }, "required": ["items"] }, - "specificResourceWithValue" : - { - "description": "True if both source and value keys are present.", - "allOf": - [ - { "$ref": "#/definitions/sourceDetected"}, - { "required": [ "value" ] } - ] - }, + "specificResourceWithValue" : + { + "description": "True if both source and value keys are present.", + "allOf": + [ + { "$ref": "#/definitions/sourceDetected"}, + { "required": [ "value" ] } + ] + }, "itemSRWithValue": { "type": "object", "properties": - { - "items": { - "type": "array", - "minItems": 1, - "not": - { "items": {"not": { "$ref": "#/definitions/specificResourceWithValue" } } } - } - }, + { + "items": { + "type": "array", + "minItems": 1, + "not": + { "items": {"not": { "$ref": "#/definitions/specificResourceWithValue" } } } + } + }, "required": ["items"] } } -} +} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/annotation-model/scripts/JSONtest.js b/tests/wpt/web-platform-tests/annotation-model/scripts/JSONtest.js index 825522e9f42..3ee49b86a81 100644 --- a/tests/wpt/web-platform-tests/annotation-model/scripts/JSONtest.js +++ b/tests/wpt/web-platform-tests/annotation-model/scripts/JSONtest.js @@ -29,6 +29,7 @@ function JSONtest(params) { this.Params = null; // paramaters passed in this.Promise = null; // master Promise that resolves when intialization is complete this.Properties = null; // testharness_properties from the opening window + this.SkipFailures = []; // list of assertionType values that should be skipped if their test would fail this.Test = null; // test being run this.AssertionCounter = 0;// keeps track of which assertion is being processed @@ -122,6 +123,10 @@ function JSONtest(params) { this.DescriptionText = test.description; } + if (test.hasOwnProperty("skipFailures") && Array.isArray(test.skipFailures) ) { + this.SkipFailures = test.skipFailures; + } + if (test.content) { // we have content if (typeof test.content === "string") { @@ -407,7 +412,7 @@ JSONtest.prototype = { var message = assert.hasOwnProperty('errorMessage') ? assert.errorMessage : "Result was not " + expected; var type = assert.hasOwnProperty('assertionType') ? - assert.assertionType : "must" ; + assert.assertionType.toLowerCase() : "must" ; if (!typeMap.hasOwnProperty(type)) { type = "must"; } @@ -507,39 +512,42 @@ JSONtest.prototype = { return ; } - if (testAction !== 'continue') { + if (testAction === 'continue') { // a previous test told us to not run this test; skip it - test(function() { }, "SKIPPED: " + assert.title); - } else { + // test(function() { }, "SKIPPED: " + assert.title); // start an actual sub-test - test(function() { - var valid = validate(content) ; + var valid = validate(content) ; - var result = this.determineResult(assert, valid) ; + var theResult = this.determineResult(assert, valid) ; - // remember the result - theResults.push(result); + // remember the result + theResults.push(theResult); - var newAction = this.determineAction(assert, result) ; - // next time around we will use this action - testAction = newAction; + var newAction = this.determineAction(assert, theResult) ; + // next time around we will use this action + testAction = newAction; - var err = ";"; - if (validate.errors !== null) { - err = "; Errors: " + this.ajv.errorsText(validate.errors) + ";" ; - } - if (testAction === 'abort') { - err += "; Aborting execution of remaining assertions;"; - } else if (testAction === 'skip') { - err += "; Skipping execution of remaining assertions at level " + level + ";"; - } - if (result === false) { - // test result was unexpected; use message - assert_true(result, typeMap[type] + message + err); - } else { - assert_true(result, err) ; - } - }.bind(this), "" + level + ":" + (num+1) + " " + assert.title); + // only run the test if we are NOT skipping fails for some types + // or the result is expected + if ( theResult === true || !this.SkipFailures.includes(type) ) { + test(function() { + var err = ";"; + if (validate.errors !== null && !assert.hasOwnProperty("errorMessage")) { + err = "; Errors: " + this.ajv.errorsText(validate.errors) + ";" ; + } + if (testAction === 'abort') { + err += "; Aborting execution of remaining assertions;"; + } else if (testAction === 'skip') { + err += "; Skipping execution of remaining assertions at level " + level + ";"; + } + if (theResult === false) { + // test result was unexpected; use message + assert_true(theResult, typeMap[type] + message + err); + } else { + assert_true(theResult, err) ; + } + }.bind(this), "" + level + ":" + (num+1) + " " + assert.title); + } } }.bind(this)); } diff --git a/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/annotation.options.headers b/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/annotation.options.headers index e07c9bce15b..48973d74597 100755 --- a/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/annotation.options.headers +++ b/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/annotation.options.headers @@ -1,3 +1,2 @@ -Content-Type: text/plain Allow: GET,HEAD,OPTIONS,DELETE,PUT Vary: Accept diff --git a/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/collection.options.headers b/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/collection.options.headers index 1280684795e..7bc301662c6 100755 --- a/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/collection.options.headers +++ b/tests/wpt/web-platform-tests/annotation-protocol/files/annotations/collection.options.headers @@ -1,3 +1,2 @@ -Content-Type: text/plain Allow: POST,GET,OPTIONS,HEAD,DELETE,PUT Vary: Accept, Prefer diff --git a/tests/wpt/web-platform-tests/annotation-protocol/server/server-manual.html b/tests/wpt/web-platform-tests/annotation-protocol/server/server-manual.html index 3d8d1ba160b..3a04a599175 100644 --- a/tests/wpt/web-platform-tests/annotation-protocol/server/server-manual.html +++ b/tests/wpt/web-platform-tests/annotation-protocol/server/server-manual.html @@ -63,16 +63,22 @@ function request(method, url, headers, content) { resp.text = d; // we have it; what is it? var type = xhr.getResponseHeader('Content-Type'); - resp.type = type.split(';')[0]; - if (resp.type === MEDIA_TYPE) { - try { - d = JSON.parse(d); - resp.body = d; - } - catch(err) { - resp.body = null; + if (type) { + resp.type = type.split(';')[0]; + if (resp.type === MEDIA_TYPE) { + try { + d = JSON.parse(d); + resp.body = d; + } + catch(err) { + resp.body = null; + } } + } else { + resp.type = null; + resp.body = null; } + } resolve(resp); }; @@ -167,6 +173,9 @@ function makePromiseTests( thennable, criteria ) { } function runTests( container_url, annotation_url ) { + // trim whitespace from incoming variables + container_url = container_url.trim(); + annotation_url = annotation_url.trim(); // Section 4 has a requirement that the URL end in a slash, so... // ensure the url has a length @@ -323,7 +332,7 @@ function runTests( container_url, annotation_url ) { // SHOULD tests test(function() { - assert_equals("https", container_url.toLowerCase().substr(0,5), "Server is not using HTTPS"); + assert_equals(container_url.toLowerCase().substr(0,5), "https", "Server is not using HTTPS"); }, "Annotation server SHOULD use HTTPS rather than HTTP"); var thePrefRequest = request("GET", container_url, diff --git a/tests/wpt/web-platform-tests/annotation-protocol/tools/protocol-server.py b/tests/wpt/web-platform-tests/annotation-protocol/tools/protocol-server.py index e74e323f794..cbfc4034ca2 100755 --- a/tests/wpt/web-platform-tests/annotation-protocol/tools/protocol-server.py +++ b/tests/wpt/web-platform-tests/annotation-protocol/tools/protocol-server.py @@ -204,9 +204,6 @@ def collection_options(request, response): for header, value in load_headers_from_file(headers_file): response.headers.append(header, value) - response.content = "Collection Options\n"; - - def page(request, response): page_json = { "@context": "http://www.w3.org/ns/anno.jsonld", @@ -312,7 +309,6 @@ def annotation_head(request, response): response.status = 404 add_cors_headers(response) - response.content = "Annotation Options\n" @wptserve.handlers.handler def annotation_options(request, response): @@ -331,8 +327,6 @@ def annotation_options(request, response): response.status = 404 add_cors_headers(response) - response.content = "Annotation Options\n" - def create_annotation(body): # TODO: verify media type is JSON of some kind (at least) @@ -409,6 +403,8 @@ def annotation_delete(request, response): if __name__ == '__main__': print 'http://' + myhost + ':{0}/'.format(port) + print 'container URI is http://' + myhost + ':{0}/'.format(port) + "/annotations/" + print 'example annotation URI is http://' + myhost + ':{0}/'.format(port) + "/annotations/anno1.json" routes = [ ("GET", "", wptserve.handlers.file_handler), diff --git a/tests/wpt/web-platform-tests/bluetooth/bluetooth-helpers.js b/tests/wpt/web-platform-tests/bluetooth/bluetooth-helpers.js new file mode 100644 index 00000000000..14ed7d66d85 --- /dev/null +++ b/tests/wpt/web-platform-tests/bluetooth/bluetooth-helpers.js @@ -0,0 +1,147 @@ +'use strict'; + +// Bluetooth UUID constants: +// Services: +var blacklist_test_service_uuid = "611c954a-263b-4f4a-aab6-01ddb953f985"; +var request_disconnection_service_uuid = "01d7d889-7451-419f-aeb8-d65e7b9277af"; +// Characteristics: +var blacklist_exclude_reads_characteristic_uuid = "bad1c9a2-9a5b-4015-8b60-1579bbbf2135"; +var request_disconnection_characteristic_uuid = "01d7d88a-7451-419f-aeb8-d65e7b9277af"; +// Descriptors: +var blacklist_exclude_reads_descriptor_uuid = "aaaaaaaa-aaaa-1181-0510-810819516110"; +var blacklist_descriptor_uuid = "07711111-6104-0970-7011-1107105110aaa"; +var characteristic_user_description_uuid = "00002901-0000-1000-8000-00805f9b34fb"; + +// Bluetooth Adapter types: +var adapter_type = { + not_present: 'NotPresentAdapter', + not_powered: 'NotPoweredAdapter', + empty: 'EmptyAdapter', + heart_rate: 'HeartRateAdapter', + two_heart_rate: 'TwoHeartRateServicesAdapter', + empty_name_heart_rate: 'EmptyNameHeartRateAdapter', + no_name_heart_rate: 'NoNameHeartRateAdapter', + glucose_heart_rate: 'GlucoseHeartRateAdapter', + unicode_device: 'UnicodeDeviceAdapter', + blacklist: 'BlacklistTestAdapter', + missing_characteristic_heart_rate: 'MissingCharacteristicHeartRateAdapter', + missing_service_heart_rate: 'MissingServiceHeartRateAdapter', + missing_descriptor_heart_rate: 'MissingDescriptorHeartRateAdapter' +}; + +var mock_device_name = { + heart_rate: 'Heart Rate Device', + glucose: 'Glucose Device' +}; + +var wrong = { + name: 'wrong_name', + service: 'wrong_service' +}; + +// Sometimes we need to test that using either the name, alias, or UUID +// produces the same result. The following objects help us do that. +var generic_access = { + alias: 0x1800, + name: 'generic_access', + uuid: '00001800-0000-1000-8000-00805f9b34fb' +}; + +var device_name = { + alias: 0x2a00, + name: 'gap.device_name', + uuid: '00002a00-0000-1000-8000-00805f9b34fb' +}; + +var reconnection_address = { + alias: 0x2a03, + name: 'gap.reconnection_address', + uuid: '00002a03-0000-1000-8000-00805f9b34fb' +}; + +var heart_rate = { + alias: 0x180d, + name: 'heart_rate', + uuid: '0000180d-0000-1000-8000-00805f9b34fb' +}; + +var heart_rate_measurement = { + alias: 0x2a37, + name: 'heart_rate_measurement', + uuid: '00002a37-0000-1000-8000-00805f9b34fb' +}; + +var body_sensor_location = { + alias: 0x2a38, + name: 'body_sensor_location', + uuid: '00002a38-0000-1000-8000-00805f9b34fb' +}; + +var glucose = { + alias: 0x1808, + name: 'glucose', + uuid: '00001808-0000-1000-8000-00805f9b34fb' +}; + +var battery_service = { + alias: 0x180f, + name: 'battery_service', + uuid: '0000180f-0000-1000-8000-00805f9b34fb' +}; + +var battery_level = { + alias: 0x2a19, + name: 'battery_level', + uuid: '00002a19-0000-1000-8000-00805f9b34fb' +}; + +var tx_power = { + alias: 0x1804, + name: 'tx_power', + uuid: '00001804-0000-1000-8000-00805f9b34fb' +}; + +var human_interface_device = { + alias: 0x1812, + name: 'human_interface_device', + uuid: '00001812-0000-1000-8000-00805f9b34fb' +}; + +var device_information = { + alias: 0x180a, + name: 'device_information', + uuid: '0000180a-0000-1000-8000-00805f9b34fb' +}; + +var peripherial_privacy_flag = { + alias: 0x2a02, + name: 'gap.peripheral_privacy_flag', + uuid: '00002a02-0000-1000-8000-00805f9b34fb' +}; + +var serial_number_string = { + alias: 0x2a25, + name: 'serial_number_string', + uuid: '00002a25-0000-1000-8000-00805f9b34fb' +}; + +var client_characteristic_configuration = { + alias: 0x2902, + name: 'gatt.client_characteristic_configuration', + uuid: '00002902-0000-1000-8000-00805f9b34fb' +}; + +var number_of_digitals = { + alias: 0x2909, + name: 'number_of_digitals', + uuid: '00002909-0000-1000-8000-00805f9b34fb' +}; + +// Helper function for converting strings to an array of bytes. +function asciiToDecimal(bytestr) { + var result = []; + for(var i = 0; i < bytestr.length; i++) { + result[i] = bytestr.charCodeAt(i) ; + } + return result; +} diff --git a/tests/wpt/web-platform-tests/check_stability.py b/tests/wpt/web-platform-tests/check_stability.py new file mode 100644 index 00000000000..7b707212158 --- /dev/null +++ b/tests/wpt/web-platform-tests/check_stability.py @@ -0,0 +1,599 @@ +from __future__ import print_function + +import argparse +import json +import logging +import os +import re +import stat +import subprocess +import sys +import tarfile +import traceback +import zipfile +from cStringIO import StringIO +from collections import defaultdict +from urlparse import urljoin + +import requests + +BaseHandler = None +LogActionFilter = None +LogHandler = None +LogLevelFilter = None +StreamHandler = None +TbplFormatter = None +reader = None +wptcommandline = None +wptrunner = None + + +logger = logging.getLogger(os.path.splitext(__file__)[0]) + + +def do_delayed_imports(): + global BaseHandler + global LogLevelFilter + global StreamHandler + global TbplFormatter + global reader + global wptcommandline + global wptrunner + from mozlog import reader + from mozlog.formatters import TbplFormatter + from mozlog.handlers import BaseHandler, LogLevelFilter, StreamHandler + from wptrunner import wptcommandline, wptrunner + setup_log_handler() + setup_action_filter() + + +def setup_logging(): + handler = logging.StreamHandler(sys.stdout) + formatter = logging.Formatter(logging.BASIC_FORMAT, None) + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(logging.DEBUG) + +setup_logging() + + +def setup_action_filter(): + global LogActionFilter + + class LogActionFilter(BaseHandler): + """Handler that filters out messages with action of log and a level + lower than some specified level. + + :param inner: Handler to use for messages that pass this filter + :param level: Minimum log level to process + """ + def __init__(self, inner, actions): + BaseHandler.__init__(self, inner) + self.inner = inner + self.actions = actions + + def __call__(self, item): + if item["action"] in self.actions: + return self.inner(item) + + +class TravisFold(object): + def __init__(self, name): + self.name = name + + def __enter__(self): + print("travis_fold:start:%s" % self.name, file=sys.stderr) + + def __exit__(self, type, value, traceback): + print("travis_fold:end:%s" % self.name, file=sys.stderr) + + +class GitHub(object): + def __init__(self, org, repo, token): + self.token = token + self.headers = {"Accept": "application/vnd.github.v3+json"} + self.auth = (self.token, "x-oauth-basic") + self.org = org + self.repo = repo + self.base_url = "https://api.github.com/repos/%s/%s/" % (org, repo) + + def _headers(self, headers): + if headers is None: + headers = {} + rv = self.headers.copy() + rv.update(headers) + return rv + + def post(self, url, data, headers=None): + logger.debug("POST %s" % url) + if data is not None: + data = json.dumps(data) + resp = requests.post( + url, + data=data, + headers=self._headers(headers), + auth=self.auth + ) + resp.raise_for_status() + return resp + + def get(self, url, headers=None): + logger.debug("GET %s" % url) + resp = requests.get( + url, + headers=self._headers(headers), + auth=self.auth + ) + resp.raise_for_status() + return resp + + def post_comment(self, issue_number, body): + url = urljoin(self.base_url, "issues/%s/comments" % issue_number) + return self.post(url, {"body": body}) + + def releases(self): + url = urljoin(self.base_url, "releases/latest") + return self.get(url) + + +class GitHubCommentHandler(logging.Handler): + def __init__(self, github, pull_number): + logging.Handler.__init__(self) + self.github = github + self.pull_number = pull_number + self.log_data = [] + + def emit(self, record): + try: + msg = self.format(record) + self.log_data.append(msg) + except Exception: + self.handleError(record) + + def send(self): + self.github.post_comment(self.pull_number, "\n".join(self.log_data)) + self.log_data = [] + + +class Browser(object): + product = None + + def __init__(self, github_token): + self.github_token = github_token + + +class Firefox(Browser): + product = "firefox" + + def install(self): + call("pip", "install", "-r", "w3c/wptrunner/requirements_firefox.txt") + resp = get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-52.0a1.en-US.linux-x86_64.tar.bz2") + untar(resp.raw) + + if not os.path.exists("profiles"): + os.mkdir("profiles") + with open(os.path.join("profiles", "prefs_general.js"), "wb") as f: + resp = get("https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/profiles/prefs_general.js") + f.write(resp.content) + call("pip", "install", "-r", os.path.join("w3c", "wptrunner", "requirements_firefox.txt")) + + def _latest_geckodriver_version(self): + # This is used rather than an API call to avoid rate limits + tags = call("git", "ls-remote", "--tags", "--refs", + "https://github.com/mozilla/geckodriver.git") + release_re = re.compile(".*refs/tags/v(\d+)\.(\d+)\.(\d+)") + latest_release = 0 + for item in tags.split("\n"): + m = release_re.match(item) + if m: + version = [int(item) for item in m.groups()] + if version > latest_release: + latest_release = version + assert latest_release != 0 + return "v%s.%s.%s" % tuple(str(item) for item in latest_release) + + + def install_webdriver(self): + version = self._latest_geckodriver_version() + logger.debug("Latest geckodriver release %s" % version) + url = "https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-linux64.tar.gz" % (version, version) + untar(get(url).raw) + + def wptrunner_args(self, root): + return { + "product": "firefox", + "binary": "%s/firefox/firefox" % root, + "certutil_binary": "certutil", + "webdriver_binary": "%s/geckodriver" % root, + "prefs_root": "%s/profiles" % root, + } + + +class Chrome(Browser): + product = "chrome" + + def install(self): + latest = get("https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media").text.strip() + url = "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%%2F%s%%2Fchrome-linux.zip?alt=media" % latest + unzip(get(url).raw) + logger.debug(call("ls", "-lhrt", "chrome-linux")) + call("pip", "install", "-r", os.path.join("w3c", "wptrunner", "requirements_chrome.txt")) + + def install_webdriver(self): + latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip() + url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_linux64.zip" % latest + unzip(get(url).raw) + st = os.stat('chromedriver') + os.chmod('chromedriver', st.st_mode | stat.S_IEXEC) + + def wptrunner_args(self, root): + return { + "product": "chrome", + "binary": "%s/chrome-linux/chrome" % root, + "webdriver_binary": "%s/chromedriver" % root, + "test_types": ["testharness", "reftest"] + } + + +def get(url): + logger.debug("GET %s" % url) + resp = requests.get(url, stream=True) + resp.raise_for_status() + return resp + + +def call(*args): + logger.debug("%s" % " ".join(args)) + return subprocess.check_output(args) + + +def get_git_cmd(repo_path): + def git(cmd, *args): + full_cmd = ["git", cmd] + list(args) + try: + return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + logger.error("Git command exited with status %i" % e.returncode) + logger.error(e.output) + sys.exit(1) + return git + + +def seekable(fileobj): + try: + fileobj.seek(fileobj.tell()) + except Exception: + return StringIO(fileobj.read()) + else: + return fileobj + + +def untar(fileobj): + logger.debug("untar") + fileobj = seekable(fileobj) + with tarfile.open(fileobj=fileobj) as tar_data: + tar_data.extractall() + + +def unzip(fileobj): + logger.debug("unzip") + fileobj = seekable(fileobj) + with zipfile.ZipFile(fileobj) as zip_data: + for info in zip_data.infolist(): + zip_data.extract(info) + perm = info.external_attr >> 16 & 0x1FF + os.chmod(info.filename, perm) + + +def setup_github_logging(args): + gh_handler = None + if args.comment_pr: + github = GitHub("w3c", "web-platform-tests", args.gh_token) + try: + pr_number = int(args.comment_pr) + except ValueError: + pass + else: + gh_handler = GitHubCommentHandler(github, pr_number) + gh_handler.setLevel(logging.INFO) + logger.debug("Setting up GitHub logging") + logger.addHandler(gh_handler) + else: + logger.warning("No PR number found; not posting to GitHub") + return gh_handler + + +class pwd(object): + def __init__(self, dir): + self.dir = dir + self.old_dir = None + + def __enter__(self): + self.old_dir = os.path.abspath(os.curdir) + os.chdir(self.dir) + + def __exit__(self, *args, **kwargs): + os.chdir(self.old_dir) + self.old_dir = None + + +def fetch_wpt_master(): + git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), "w3c", "web-platform-tests")) + git("fetch", "https://github.com/w3c/web-platform-tests.git", "master:master") + + +def get_sha1(): + git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), "w3c", "web-platform-tests")) + return git("rev-parse", "HEAD").strip() + +def build_manifest(): + with pwd(os.path.join(os.path.abspath(os.curdir), "w3c", "web-platform-tests")): + # TODO: Call the manifest code directly + call("python", "manifest") + + +def install_wptrunner(): + call("git", "clone", "--depth=1", "https://github.com/w3c/wptrunner.git", "w3c/wptrunner") + git = get_git_cmd(os.path.join(os.path.abspath(os.curdir), "w3c", "wptrunner")) + git("submodule", "update", "--init", "--recursive") + call("pip", "install", os.path.join("w3c", "wptrunner")) + + +def get_files_changed(): + root = os.path.abspath(os.curdir) + git = get_git_cmd("%s/w3c/web-platform-tests" % root) + branch_point = git("merge-base", "HEAD", "master").strip() + logger.debug("Branch point from master: %s" % branch_point) + logger.debug(git("log", "--oneline", "%s.." % branch_point)) + files = git("diff", "--name-only", "-z", "%s.." % branch_point) + if not files: + return [] + assert files[-1] == "\0" + return ["%s/w3c/web-platform-tests/%s" % (root, item) + for item in files[:-1].split("\0")] + + +def wptrunner_args(root, files_changed, iterations, browser): + parser = wptcommandline.create_parser([browser.product]) + args = vars(parser.parse_args([])) + wpt_root = os.path.join(root, "w3c", "web-platform-tests") + args.update(browser.wptrunner_args(root)) + args.update({ + "tests_root": wpt_root, + "metadata_root": wpt_root, + "repeat": iterations, + "config": "%s/w3c/wptrunner/wptrunner.default.ini" % root, + "test_list": files_changed, + "restart_on_unexpected": False, + "pause_after_test": False + }) + wptcommandline.check_args(args) + return args + + +def setup_log_handler(): + global LogHandler + + class LogHandler(reader.LogHandler): + def __init__(self): + self.results = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) + + def test_status(self, data): + self.results[data["test"]][data.get("subtest")][data["status"]] += 1 + + def test_end(self, data): + self.results[data["test"]][None][data["status"]] += 1 + + +def is_inconsistent(results_dict, iterations): + return len(results_dict) > 1 or sum(results_dict.values()) != iterations + + +def err_string(results_dict, iterations): + rv = [] + total_results = sum(results_dict.values()) + for key, value in sorted(results_dict.items()): + rv.append("%s%s" % + (key, ": %s/%s" % (value, iterations) if value != iterations else "")) + rv = ", ".join(rv) + if total_results < iterations: + rv.append("MISSING: %s/%s" % (iterations - total_results, iterations)) + if len(results_dict) > 1 or total_results != iterations: + rv = "**%s**" % rv + return rv + + +def process_results(log, iterations): + inconsistent = [] + handler = LogHandler() + reader.handle_log(reader.read(log), handler) + results = handler.results + for test, test_results in results.iteritems(): + for subtest, result in test_results.iteritems(): + if is_inconsistent(result, iterations): + inconsistent.append((test, subtest, result)) + return results, inconsistent + + +def markdown_adjust(s): + s = s.replace('\t', u'\\t') + s = s.replace('\n', u'\\n') + s = s.replace('\r', u'\\r') + s = s.replace('`', u'\\`') + return s + + +def table(headings, data, log): + cols = range(len(headings)) + assert all(len(item) == len(cols) for item in data) + max_widths = reduce(lambda prev, cur: [(len(cur[i]) + 2) + if (len(cur[i]) + 2) > prev[i] + else prev[i] + for i in cols], + data, + [len(item) + 2 for item in headings]) + log("|%s|" % "|".join(item.center(max_widths[i]) for i, item in enumerate(headings))) + log("|%s|" % "|".join("-" * max_widths[i] for i in cols)) + for row in data: + log("|%s|" % "|".join(" %s" % row[i].ljust(max_widths[i] - 1) for i in cols)) + log("") + + +def write_inconsistent(inconsistent, iterations): + logger.error("## Unstable results ##\n") + strings = [("`%s`" % markdown_adjust(test), ("`%s`" % markdown_adjust(subtest)) if subtest else "", err_string(results, iterations)) + for test, subtest, results in inconsistent] + table(["Test", "Subtest", "Results"], strings, logger.error) + + +def write_results(results, iterations, comment_pr): + logger.info("## All results ##\n") + for test, test_results in results.iteritems(): + baseurl = "http://w3c-test.org/submissions" + if "https" in os.path.splitext(test)[0].split(".")[1:]: + baseurl = "https://w3c-test.org/submissions" + pr_number = None + if comment_pr: + try: + pr_number = int(comment_pr) + except ValueError: + pass + if pr_number: + logger.info("### [%s](%s/%s%s) ###" % (test, baseurl, pr_number, test)) + else: + logger.info("### %s ###" % test) + parent = test_results.pop(None) + strings = [("", err_string(parent, iterations))] + strings.extend(((("`%s`" % markdown_adjust(subtest)) if subtest else "", err_string(results, iterations)) + for subtest, results in test_results.iteritems())) + table(["Subtest", "Results"], strings, logger.info) + + +def get_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--root", + action="store", + default=os.path.join(os.path.expanduser("~"), "build"), + help="Root path") + parser.add_argument("--iterations", + action="store", + default=10, + type=int, + help="Number of times to run tests") + parser.add_argument("--gh-token", + action="store", + default=os.environ.get("GH_TOKEN"), + help="OAuth token to use for accessing GitHub api") + parser.add_argument("--comment-pr", + action="store", + default=os.environ.get("TRAVIS_PULL_REQUEST"), + help="PR to comment on with stability results") + parser.add_argument("browser", + action="store", + help="Browser to run against") + return parser + + +def main(): + retcode = 0 + parser = get_parser() + args = parser.parse_args() + + if not os.path.exists(args.root): + logger.critical("Root directory %s does not exist" % args.root) + return 1 + + os.chdir(args.root) + + if args.gh_token: + gh_handler = setup_github_logging(args) + else: + logger.warning("Can't log to GitHub") + gh_handler = None + + with TravisFold("browser_setup"): + logger.info("# %s #" % args.browser.title()) + + browser_cls = {"firefox": Firefox, + "chrome": Chrome}.get(args.browser) + if browser_cls is None: + logger.critical("Unrecognised browser %s" % args.browser) + return 1 + + fetch_wpt_master() + + head_sha1 = get_sha1() + logger.info("Testing revision %s" % head_sha1) + + # For now just pass the whole list of changed files to wptrunner and + # assume that it will run everything that's actually a test + files_changed = get_files_changed() + + if not files_changed: + logger.info("No files changed") + return 0 + + build_manifest() + install_wptrunner() + do_delayed_imports() + + logger.debug("Files changed:\n%s" % "".join(" * %s\n" % item for item in files_changed)) + + browser = browser_cls(args.gh_token) + + browser.install() + browser.install_webdriver() + + kwargs = wptrunner_args(args.root, + files_changed, + args.iterations, + browser) + + with TravisFold("running_tests"): + logger.info("Starting %i test iterations" % args.iterations) + with open("raw.log", "wb") as log: + wptrunner.setup_logging(kwargs, + {"raw": log}) + # Setup logging for wptrunner that keeps process output and + # warning+ level logs only + wptrunner.logger.add_handler( + LogActionFilter( + LogLevelFilter( + StreamHandler( + sys.stdout, + TbplFormatter() + ), + "WARNING"), + ["log", "process_output"])) + + wptrunner.run_tests(**kwargs) + + with open("raw.log", "rb") as log: + results, inconsistent = process_results(log, args.iterations) + + if results: + if inconsistent: + write_inconsistent(inconsistent, args.iterations) + retcode = 2 + else: + logger.info("All results were stable\n") + with TravisFold("full_results"): + write_results(results, args.iterations, args.comment_pr) + else: + logger.info("No tests run.") + + try: + if gh_handler: + gh_handler.send() + except Exception: + logger.error(traceback.format_exc()) + return retcode + + +if __name__ == "__main__": + try: + retcode = main() + except: + raise + else: + sys.exit(retcode) diff --git a/tests/wpt/web-platform-tests/ci_lint.sh b/tests/wpt/web-platform-tests/ci_lint.sh new file mode 100644 index 00000000000..ebcd5c0901e --- /dev/null +++ b/tests/wpt/web-platform-tests/ci_lint.sh @@ -0,0 +1,5 @@ +set -ex + +./manifest +./lint +./diff-manifest.py diff --git a/tests/wpt/web-platform-tests/ci_stability.sh b/tests/wpt/web-platform-tests/ci_stability.sh new file mode 100644 index 00000000000..8e03c182084 --- /dev/null +++ b/tests/wpt/web-platform-tests/ci_stability.sh @@ -0,0 +1,33 @@ +set -e + +hosts_fixup() { + echo "travis_fold:start:hosts_fixup" + echo "Rewriting hosts file" + echo "## /etc/hosts ##" + cat /etc/hosts + sudo sed -i 's/^::1\s*localhost/::1/' /etc/hosts + sudo sh -c 'echo " +127.0.0.1 web-platform.test +127.0.0.1 www.web-platform.test +127.0.0.1 www1.web-platform.test +127.0.0.1 www2.web-platform.test +127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test +127.0.0.1 xn--lve-6lad.web-platform.test +" >> /etc/hosts' + echo "== /etc/hosts ==" + cat /etc/hosts + echo "----------------" + echo "travis_fold:end:hosts_fixup" +} + + +test_stability() { + python check_stability.py $PRODUCT +} + +main() { + hosts_fixup + test_stability +} + +main diff --git a/tests/wpt/web-platform-tests/common/dummy.xhtml b/tests/wpt/web-platform-tests/common/dummy.xhtml new file mode 100644 index 00000000000..5b208d74450 --- /dev/null +++ b/tests/wpt/web-platform-tests/common/dummy.xhtml @@ -0,0 +1,2 @@ + +Dummy XHTML document diff --git a/tests/wpt/web-platform-tests/common/dummy.xml b/tests/wpt/web-platform-tests/common/dummy.xml new file mode 100644 index 00000000000..4a60c3035fc --- /dev/null +++ b/tests/wpt/web-platform-tests/common/dummy.xml @@ -0,0 +1 @@ +Dummy XML document diff --git a/tests/wpt/web-platform-tests/common/get-host-info.sub.js b/tests/wpt/web-platform-tests/common/get-host-info.sub.js index 8d3d61de12a..5e60c49767b 100644 --- a/tests/wpt/web-platform-tests/common/get-host-info.sub.js +++ b/tests/wpt/web-platform-tests/common/get-host-info.sub.js @@ -23,3 +23,13 @@ function get_host_info() { HTTPS_REMOTE_ORIGIN_WITH_CREDS: 'https://foo:bar@' + REMOTE_HOST + ':' + HTTPS_PORT, }; } + +function get_port(loc) { + // When a default port is used, location.port returns the empty string. + // To compare with wptserve `ports` substitution we need a port... + // loc can be Location/
                                                                                        //URL, but assumes http/https only. + if (loc.port) { + return loc.port; + } + return loc.protocol === 'https:' ? '443' : '80'; +} diff --git a/tests/wpt/web-platform-tests/compat/webkit-text-fill-color-currentColor.html b/tests/wpt/web-platform-tests/compat/webkit-text-fill-color-currentColor.html new file mode 100644 index 00000000000..f4912c93450 --- /dev/null +++ b/tests/wpt/web-platform-tests/compat/webkit-text-fill-color-currentColor.html @@ -0,0 +1,19 @@ + +Test that currentColor is not affected by -webkit-text-fill-color + + +

                                                                                        + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/config.default.json b/tests/wpt/web-platform-tests/config.default.json index dd4530b2140..47ad74b7eb5 100644 --- a/tests/wpt/web-platform-tests/config.default.json +++ b/tests/wpt/web-platform-tests/config.default.json @@ -22,5 +22,6 @@ "host_cert_path": null }, "none": {} - } + }, + "aliases": [] } diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-01-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-01-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-elem-40-t-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-elem-40-t-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-script-elem-01-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-script-elem-01-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-struct-dom-01-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-struct-dom-01-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/conform-viewers-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/conform-viewers-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/coords-dom-03-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/coords-dom-03-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-events-02-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-events-02-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-01-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-01-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-03-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-03-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-05-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-05-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-07-t-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-07-t-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-08-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-08-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-09-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-09-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-01-t-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-01-t-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-03-t-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-03-t-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/masking-path-09-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/masking-path-09-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-01-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-01-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-cond-02-t-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-cond-02-t-isvalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-07-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-07-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-08-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-08-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-11-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-11-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-13-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-13-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-14-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-14-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-15-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-15-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-20-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-20-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-use-13-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-use-13-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-05-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-05-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-03-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-03-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-02-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-02-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-03-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-03-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-05-b-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-05-b-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-07-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-07-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-08-f-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html similarity index 100% rename from tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-08-f-novalid.html rename to tests/wpt/web-platform-tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html new file mode 100644 index 00000000000..9db467c3e82 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html @@ -0,0 +1,5 @@ + + +valid hgroup in dd + +
                                                                                        text

                                                                                        text

                                                                                        diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html new file mode 100644 index 00000000000..1c2fde9cd6a --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid article-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html new file mode 100644 index 00000000000..b08c05b7f39 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid aside-in-dt +
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html new file mode 100644 index 00000000000..3c4ddbdae19 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html @@ -0,0 +1,4 @@ + + +invalid dd-in-template +
                                                                                        1
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html new file mode 100644 index 00000000000..d94258abc01 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-contains-dl +
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html new file mode 100644 index 00000000000..acb91569e1c --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-contains-text +
                                                                                        x
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html new file mode 100644 index 00000000000..ff0d5bc3017 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-multiple-groups +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html new file mode 100644 index 00000000000..f490502118b --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-splitting-groups-2 +
                                                                                        1
                                                                                        a
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html new file mode 100644 index 00000000000..aa2e4e16058 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-splitting-groups-3 +
                                                                                        1
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html new file mode 100644 index 00000000000..5164e2f268a --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html @@ -0,0 +1,4 @@ + + +invalid div-splitting-groups +
                                                                                        1
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html new file mode 100644 index 00000000000..d893e9beac2 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html @@ -0,0 +1,4 @@ + + +invalid dl-contains-dl +
                                                                                        1
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html new file mode 100644 index 00000000000..84847551aa1 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html @@ -0,0 +1,4 @@ + + +invalid dl-contains-text-2 +
                                                                                        1
                                                                                        a
                                                                                        x
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html new file mode 100644 index 00000000000..2113207edfb --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html @@ -0,0 +1,4 @@ + + +invalid dl-contains-text +
                                                                                        1
                                                                                        x
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html new file mode 100644 index 00000000000..b1053418404 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html @@ -0,0 +1,4 @@ + + +invalid dl-in-p +

                                                                                        text
                                                                                        text

                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-isvalid.html new file mode 100644 index 00000000000..9bd331c9139 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dl-isvalid.html @@ -0,0 +1,34 @@ + + +valid dl + + +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        1
                                                                                        2
                                                                                        a
                                                                                        +
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        text
                                                                                        text
                                                                                        +
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        +
                                                                                        text
                                                                                        text
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        b
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        +
                                                                                        text
                                                                                        text
                                                                                        +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        text
                                                                                        +

                                                                                        1

                                                                                        1

                                                                                        a
                                                                                        +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        text
                                                                                        text
                                                                                        +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        text
                                                                                        text
                                                                                        +
                                                                                        text
                                                                                        +
                                                                                        text

                                                                                        text

                                                                                        +
                                                                                        1
                                                                                        a
                                                                                        diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html new file mode 100644 index 00000000000..da0526906db --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html @@ -0,0 +1,4 @@ + + +invalid dt-in-template +
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html new file mode 100644 index 00000000000..54d9e68fa19 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html @@ -0,0 +1,4 @@ + + +invalid empty-div-2 +
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-novalid.html new file mode 100644 index 00000000000..14211f3b015 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/empty-div-novalid.html @@ -0,0 +1,4 @@ + + +invalid empty-div +
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/first-dd-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/first-dd-novalid.html new file mode 100644 index 00000000000..98604399ac6 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/first-dd-novalid.html @@ -0,0 +1,4 @@ + + +invalid first-dd +
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html new file mode 100644 index 00000000000..a24cc0b18de --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid footer-in-dt +
                                                                                        text
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html new file mode 100644 index 00000000000..3e8729cf6e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h1-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html new file mode 100644 index 00000000000..32d5088005d --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h2-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html new file mode 100644 index 00000000000..ec22819c119 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h3-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html new file mode 100644 index 00000000000..5b621b1debd --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h4-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html new file mode 100644 index 00000000000..21c603a9e3f --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h5-in-dt +
                                                                                        text
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html new file mode 100644 index 00000000000..1c97cced77a --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid h6-in-dt +
                                                                                        text
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html new file mode 100644 index 00000000000..2bc589b800a --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid header-in-dt +
                                                                                        text
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html new file mode 100644 index 00000000000..07165851adc --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid hgroup-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/last-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/last-dt-novalid.html new file mode 100644 index 00000000000..83e2fec8a24 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/last-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid last-dt +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html new file mode 100644 index 00000000000..c02808addb4 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html @@ -0,0 +1,4 @@ + + +invalid mixed-div-dt-dd +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html new file mode 100644 index 00000000000..5ed4aedd151 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html @@ -0,0 +1,4 @@ + + +invalid mixed-dt-dd-div +
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-isvalid.html deleted file mode 100644 index c7a5de96c03..00000000000 --- a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-isvalid.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - Definition List: <dl> <dt> <dd> - - - -
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more
                                                                                        text
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        -

                                                                                        more

                                                                                        -

                                                                                        text

                                                                                        -
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        - - diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-novalid.html deleted file mode 100644 index 0eacdf8dbff..00000000000 --- a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/model-novalid.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - Definition List: <dl> <dt> <dd> - - - -
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        - - -

                                                                                        paragraph -

                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        -

                                                                                        - - -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more
                                                                                        text
                                                                                        -
                                                                                        -

                                                                                        paragraph -

                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more
                                                                                        text
                                                                                        -
                                                                                        -

                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        -

                                                                                        more

                                                                                        -

                                                                                        text

                                                                                        -
                                                                                        -
                                                                                        - - -
                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        -

                                                                                        paragraph -

                                                                                        -
                                                                                        some text
                                                                                        -
                                                                                        more text
                                                                                        -
                                                                                        -

                                                                                        - - diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html new file mode 100644 index 00000000000..64e137d5156 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid nav-in-dt +
                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html new file mode 100644 index 00000000000..ef3446d3a16 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html @@ -0,0 +1,4 @@ + + +invalid nested-divs +
                                                                                        1
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dd-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dd-novalid.html new file mode 100644 index 00000000000..017795cc093 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dd-novalid.html @@ -0,0 +1,4 @@ + + +invalid only-dd +
                                                                                        a
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dt-novalid.html new file mode 100644 index 00000000000..7445214efe1 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/only-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid only-dt +
                                                                                        1
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html new file mode 100644 index 00000000000..846ebbe35a3 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html @@ -0,0 +1,4 @@ + + +invalid section-in-dt +

                                                                                        text

                                                                                        text
                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/conformance-checkers/messages.json b/tests/wpt/web-platform-tests/conformance-checkers/messages.json index 70841a3f4f8..0ec6b541ff8 100644 --- a/tests/wpt/web-platform-tests/conformance-checkers/messages.json +++ b/tests/wpt/web-platform-tests/conformance-checkers/messages.json @@ -41,6 +41,46 @@ "html-rdfalite/0074-novalid.html": "Bad value \u201cdc:creator\u201d for attribute \u201crel\u201d on element \u201ca\u201d: Bad list of link-type keywords: The string \u201cdc:creator\u201d is not a registered keyword.", "html-rdfalite/0147.novalid.html": "Attribute \u201cxmlns:xmlzzz\u201d not allowed here.", "html-rdfalite/0319-novalid.html": "Attribute \u201cxmlns:xpr\u201d not allowed here.", + "html-svg/animate-elem-24-t-novalid.html": "Duplicate ID \u201cMyFont\u201d.", + "html-svg/animate-elem-77-t-novalid.html": "Element \u201ca\u201d is missing required attribute \u201chref\u201d.", + "html-svg/animate-pservers-grad-01-b-novalid.html": "Duplicate ID \u201ca7\u201d.", + "html-svg/conform-viewers-03-f-novalid.html": "Bad value \u201chttp://example.net/bar\u201d for the attribute \u201cxmlns:link\u201d (only \u201chttp://www.w3.org/1999/xlink\u201d permitted here).", + "html-svg/coords-dom-01-f-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d in this context.", + "html-svg/coords-dom-02-f-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d in this context.", + "html-svg/coords-transformattr-01-f-novalid.html": "A numeric character reference expanded to carriage return.", + "html-svg/extend-namespace-01-f-novalid.html": "Attribute \u201cxmlns:bd\u201d not allowed here.", + "html-svg/filters-color-02-b-novalid.html": "Element \u201cfeFuncR\u201d not allowed in this context. (The parent was element \u201cfeComponentTransfer\u201d.) Suppressing further errors from this subtree.", + "html-svg/filters-conv-02-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.", + "html-svg/filters-conv-04-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.", + "html-svg/filters-conv-05-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.", + "html-svg/filters-light-05-f-novalid.html": "Duplicate ID \u201cc1\u201d.", + "html-svg/fonts-glyph-04-t-novalid.html": "Element \u201cfont\u201d is missing required child element \u201cmissing-glyph\u201d.", + "html-svg/fonts-overview-201-t-novalid.html": "Attribute \u201cxmlns:xe\u201d not allowed here.", + "html-svg/interact-pointer-02-t-novalid.html": "Attribute \u201cx\u201d not allowed on element \u201cclipPath\u201d in this context.", + "html-svg/linking-a-09-b-novalid.html": "Element \u201ctspan\u201d not allowed in this context. (The parent was element \u201ca\u201d.) Suppressing further errors from this subtree.", + "html-svg/linking-a-10-f-novalid.html": "Element \u201ca\u201d is missing required attribute \u201chref\u201d.", + "html-svg/masking-filter-01-f-novalid.html": "Attribute \u201cfilterprimitiveunits\u201d not allowed on element \u201cfilter\u201d in this context.", + "html-svg/masking-intro-01-f-novalid.html": "Duplicate ID \u201ctest-title\u201d.", + "html-svg/metadata-example-01-t-novalid.html": "Attribute \u201cxmlns:prism\u201d not allowed here.", + "html-svg/painting-marker-04-f-novalid.html": "Attribute \u201cmarker\u201d not allowed on element \u201cg\u201d in this context.", + "html-svg/paths-data-18-f-novalid.html": "Bad value \u201cM 20 100 H 40#90\u201d for attribute \u201cd\u201d on element \u201cpath\u201d: Bad SVG path data: Expected command but found \u201c#\u201d (context: \u201cM 20 100 H 40#\u201d).", + "html-svg/paths-data-20-f-novalid.html": "Bad value \u201cM280,120 h25 a25,25 0 6 0 -25,25 z\u201d for attribute \u201cd\u201d on element \u201cpath\u201d: Bad SVG path data: Expected \u201c0\u201d or \u201c1\u201d for large-arc-flag for \u201ca\u201d command but found \u201c6\u201d instead (context: \u201c0,120 h25 a25,25 0 6\u201d).", + "html-svg/pservers-grad-23-f-novalid.html": "Attribute \u201cstop-color\u201d not allowed on element \u201crect\u201d in this context.", + "html-svg/script-specify-01-f-novalid.html": "Attribute \u201ccontentscripttype\u201d not allowed on element \u201csvg\u201d in this context.", + "html-svg/shapes-rect-03-t-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d in this context.", + "html-svg/struct-cond-02-t-haswarn.html": "Text run is not in Unicode Normalization Form C.", + "html-svg/struct-dom-17-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.", + "html-svg/struct-dom-19-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.", + "html-svg/struct-frag-05-t-novalid.html": "Bad value \u201chttp://www.example.org/notsvg\u201d for the attribute \u201cxmlns\u201d (only \u201chttp://www.w3.org/2000/svg\u201d permitted here).", + "html-svg/struct-image-12-b-novalid.html": "Duplicate ID \u201cimageSVG\u201d.", + "html-svg/struct-use-11-f-novalid.html": "Attribute \u201cfoo\u201d not allowed on element \u201ccircle\u201d in this context.", + "html-svg/struct-use-12-f-novalid.html": "Element \u201cuse\u201d not allowed in this context. (The parent was element \u201cuse\u201d.) Suppressing further errors from this subtree.", + "html-svg/styling-pres-02-f-novalid.html": "Attribute \u201cfill\u201d not allowed on element \u201cimage\u201d in this context.", + "html-svg/svgdom-over-01-f-novalid.html": "Element \u201cstop\u201d not allowed in this context. (The parent was element \u201cdefs\u201d.) Suppressing further errors from this subtree.", + "html-svg/text-dom-03-f-novalid.html": "Element \u201cfont\u201d is missing required child element \u201cmissing-glyph\u201d.", + "html-svg/text-fonts-03-t-novalid.html": "Element \u201cfont\u201d is missing required attribute \u201choriz-adv-x\u201d.", + "html-svg/text-fonts-05-f-novalid.html": "Attribute \u201cline-height\u201d not allowed on element \u201ctspan\u201d in this context.", + "html-svg/types-dom-04-b-novalid.html": "Attribute \u201cexternalresourcesrequired\u201d not allowed on element \u201csvg\u201d in this context.", "html/attributes/accesskey/duplicate-key-labels-novalid.html": "Bad value \u201ca b \u306c c \u306c\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Duplicate key label. Each key label must be unique.", "html/attributes/accesskey/multi-character-key-label-novalid.html": "Bad value \u201ca b \u307b\u3052\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Key label has multiple characters. Each key label must be a single character.", "html/attributes/data/no-characters-after-hyphen-novalid.html": "Attribute \u201cdata-\u201d not allowed on element \u201cp\u201d in this context.", @@ -618,7 +658,40 @@ "html/elements/dfn/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.", "html/elements/dialog/model-novalid.html": "Element \u201cdt\u201d not allowed in this context. (The parent was element \u201cdialog\u201d.) Suppressing further errors from this subtree.", "html/elements/div/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.", - "html/elements/dl/model-novalid.html": "Duplicate ID \u201cid\u201d.", + "html/elements/dl/article-in-dt-novalid.html": "The element \u201carticle\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/aside-in-dt-novalid.html": "The element \u201caside\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/dd-in-template-novalid.html": "Element \u201ctemplate\u201d is missing a required child element.", + "html/elements/dl/div-contains-dl-novalid.html": "Element \u201cdl\u201d not allowed in this context. (The parent was element \u201cdiv\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/div-contains-text-novalid.html": "Text not allowed in element \u201cdiv\u201d in this context.", + "html/elements/dl/div-multiple-groups-novalid.html": "Element \u201cdt\u201d not allowed in this context. (The parent was element \u201cdiv\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/div-splitting-groups-2-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdt\u201d.", + "html/elements/dl/div-splitting-groups-3-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/div-splitting-groups-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/dl-contains-dl-novalid.html": "Element \u201cdl\u201d not allowed in this context. (The parent was element \u201cdl\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/dl-contains-text-2-novalid.html": "Text not allowed in element \u201cdl\u201d in this context.", + "html/elements/dl/dl-contains-text-novalid.html": "Text not allowed in element \u201cdl\u201d in this context.", + "html/elements/dl/dl-in-p-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.", + "html/elements/dl/dt-in-template-novalid.html": "Element \u201ctemplate\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/empty-div-2-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/empty-div-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/first-dd-novalid.html": "Element \u201cdl\u201d is missing a required child element.", + "html/elements/dl/footer-in-dt-novalid.html": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h1-in-dt-novalid.html": "The element \u201ch1\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h2-in-dt-novalid.html": "The element \u201ch2\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h3-in-dt-novalid.html": "The element \u201ch3\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h4-in-dt-novalid.html": "The element \u201ch4\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h5-in-dt-novalid.html": "The element \u201ch5\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/h6-in-dt-novalid.html": "The element \u201ch6\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/header-in-dt-novalid.html": "The element \u201cheader\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/hgroup-in-dt-novalid.html": "The element \u201chgroup\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/last-dt-novalid.html": "Element \u201cdl\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/mixed-div-dt-dd-novalid.html": "Element \u201cdt\u201d not allowed in this context. (The parent was element \u201cdl\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/mixed-dt-dd-div-novalid.html": "Element \u201cdiv\u201d not allowed in this context. (The parent was element \u201cdl\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/nav-in-dt-novalid.html": "The element \u201cnav\u201d must not appear as a descendant of the \u201cdt\u201d element.", + "html/elements/dl/nested-divs-novalid.html": "Element \u201cdiv\u201d not allowed in this context. (The parent was element \u201cdiv\u201d.) Suppressing further errors from this subtree.", + "html/elements/dl/only-dd-novalid.html": "Element \u201cdl\u201d is missing a required child element.", + "html/elements/dl/only-dt-novalid.html": "Element \u201cdl\u201d is missing required child element \u201cdd\u201d.", + "html/elements/dl/section-in-dt-novalid.html": "The element \u201csection\u201d must not appear as a descendant of the \u201cdt\u201d element.", "html/elements/em/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.", "html/elements/embed/height-novalid.html": "Bad value \u201c20%\u201d for attribute \u201cheight\u201d on element \u201cembed\u201d: Bad non-negative integer: Expected a digit but saw \u201c%\u201d instead.", "html/elements/embed/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Must be non-empty.", diff --git a/tests/wpt/web-platform-tests/conformance-checkers/tools/build-svg-tests.py b/tests/wpt/web-platform-tests/conformance-checkers/tools/build-svg-tests.py index c212e78896b..3986a8dca41 100644 --- a/tests/wpt/web-platform-tests/conformance-checkers/tools/build-svg-tests.py +++ b/tests/wpt/web-platform-tests/conformance-checkers/tools/build-svg-tests.py @@ -21,9 +21,9 @@ # DEALINGS IN THE SOFTWARE. """build_svg_tests.py. - + This script builds a set of SVG-in-HTML test files for the Nu Html Checker -based on the SVG 1.1 Second Edition Test Suite +based on the SVG 1.1 Second Edition Test Suite http://www.w3.org/Graphics/SVG/Test/20110816/archives/W3C_SVG_11_TestSuite.tar.gz """ @@ -38,7 +38,7 @@ import urllib2 valid_svg_files = dict([ # these entries manually added after cross checking behaviour with spec - + # VNU warns about text not in Unicode Normalization Form C, but it's not an error ('struct-cond-02-t-manual.svg', 'Source text is not in Unicode Normalization Form C'), # FiLl, fill and FILL are all valid in case-insensitive HTML (but SVG DTD is case-sensitive) @@ -46,22 +46,17 @@ valid_svg_files = dict([ ]) # some files in the SVG 1.1 test suite don't validate against the SVG 1.1 DTD -# and some files are marked as version='SVG 1.2'. +# and some files are marked as version='SVG 1.2'. # this is used to toggle between -isvalid.html and -novalid.html output - + invalid_svg_files = dict([ # 'DTD Invalid' entries are produced by calling validate_svg_dtd (see below) - ('animate-dom-01-f-manual.svg', 'DTD Invalid'), - ('animate-dom-02-f-manual.svg', 'DTD Invalid'), ('animate-elem-24-t-manual.svg', 'DTD Invalid'), ('animate-elem-77-t-manual.svg', 'DTD Invalid'), ('animate-pservers-grad-01-b-manual.svg', 'DTD Invalid'), - ('animate-script-elem-01-b-manual.svg', 'DTD Invalid'), - ('animate-struct-dom-01-b-manual.svg', 'DTD Invalid'), ('conform-viewers-03-f-manual.svg', 'DTD Invalid'), ('coords-dom-01-f-manual.svg', 'DTD Invalid'), ('coords-dom-02-f-manual.svg', 'DTD Invalid'), - ('coords-dom-03-f-manual.svg', 'DTD Invalid'), ('extend-namespace-01-f-manual.svg', 'DTD Invalid'), ('filters-color-02-b-manual.svg', 'DTD Invalid'), ('filters-conv-02-f-manual.svg', 'DTD Invalid'), @@ -69,66 +64,36 @@ invalid_svg_files = dict([ ('filters-conv-05-f-manual.svg', 'DTD Invalid'), ('filters-light-05-f-manual.svg', 'DTD Invalid'), ('fonts-glyph-04-t-manual.svg', 'DTD Invalid'), - ('interact-events-02-b-manual.svg', 'DTD Invalid'), - ('interact-pevents-01-b-manual.svg', 'DTD Invalid'), - ('interact-pevents-03-b-manual.svg', 'DTD Invalid'), - ('interact-pevents-05-b-manual.svg', 'DTD Invalid'), - ('interact-pevents-07-t-manual.svg', 'DTD Invalid'), - ('interact-pevents-08-f-manual.svg', 'DTD Invalid'), - ('interact-pevents-09-f-manual.svg', 'DTD Invalid'), - ('interact-pointer-01-t-manual.svg', 'DTD Invalid'), ('interact-pointer-02-t-manual.svg', 'DTD Invalid'), - ('interact-pointer-03-t-manual.svg', 'DTD Invalid'), ('linking-a-09-b-manual.svg', 'DTD Invalid'), ('linking-a-10-f-manual.svg', 'DTD Invalid'), ('masking-filter-01-f-manual.svg', 'DTD Invalid'), ('masking-intro-01-f-manual.svg', 'DTD Invalid'), - ('masking-path-09-b-manual.svg', 'DTD Invalid'), ('painting-marker-04-f-manual.svg', 'DTD Invalid'), ('paths-data-18-f-manual.svg', 'DTD Invalid'), ('paths-data-20-f-manual.svg', 'DTD Invalid'), - ('paths-dom-01-f-manual.svg', 'DTD Invalid'), - ('paths-dom-02-f-manual.svg', 'DTD Invalid'), ('pservers-grad-23-f-manual.svg', 'DTD Invalid'), ('render-elems-03-t-manual.svg', 'DTD Invalid'), ('shapes-rect-03-t-manual.svg', 'DTD Invalid'), ('struct-cond-02-t-manual.svg', 'DTD Invalid'), - ('struct-dom-07-f-manual.svg', 'DTD Invalid'), - ('struct-dom-08-f-manual.svg', 'DTD Invalid'), - ('struct-dom-11-f-manual.svg', 'DTD Invalid'), - ('struct-dom-13-f-manual.svg', 'DTD Invalid'), - ('struct-dom-14-f-manual.svg', 'DTD Invalid'), - ('struct-dom-15-f-manual.svg', 'DTD Invalid'), ('struct-dom-17-f-manual.svg', 'DTD Invalid'), ('struct-dom-19-f-manual.svg', 'DTD Invalid'), - ('struct-dom-20-f-manual.svg', 'DTD Invalid'), ('struct-frag-05-t-manual.svg', 'DTD Invalid'), ('struct-image-12-b-manual.svg', 'DTD Invalid'), ('struct-use-11-f-manual.svg', 'DTD Invalid'), ('struct-use-12-f-manual.svg', 'DTD Invalid'), - ('struct-use-13-f-manual.svg', 'DTD Invalid'), ('styling-css-10-f-manual.svg', 'DTD Invalid'), ('styling-pres-02-f-manual.svg', 'DTD Invalid'), ('svgdom-over-01-f-manual.svg', 'DTD Invalid'), - ('text-dom-02-f-manual.svg', 'DTD Invalid'), ('text-dom-03-f-manual.svg', 'DTD Invalid'), - ('text-dom-05-f-manual.svg', 'DTD Invalid'), ('text-fonts-03-t-manual.svg', 'DTD Invalid'), ('text-fonts-05-f-manual.svg', 'DTD Invalid'), ('text-tref-02-b-manual.svg', 'DTD Invalid'), - ('text-tselect-02-f-manual.svg', 'DTD Invalid'), - ('text-tselect-03-f-manual.svg', 'DTD Invalid'), - ('types-dom-02-f-manual.svg', 'DTD Invalid'), - ('types-dom-03-b-manual.svg', 'DTD Invalid'), ('types-dom-04-b-manual.svg', 'DTD Invalid'), - ('types-dom-05-b-manual.svg', 'DTD Invalid'), - ('types-dom-07-f-manual.svg', 'DTD Invalid'), - ('types-dom-08-f-manual.svg', 'DTD Invalid'), - + # these entries manually added after cross checking behaviour with spec # note there are some confusing differences between w:iri-ref (used in HTML for img/@src) # and xsd:anyURI (used in SVG for image/@xlink:href) - ('animate-elem-40-t-manual.svg', 'Spaces in data: URI - not allowed by URL Standard or RFC 2397.'), ('conform-viewers-02-f-manual.svg', 'Newlines in data: URI - not allowed by URL Standard or RFC 2397.'), ('coords-transformattr-01-f-manual.svg', 'Numeric character reference expanded to carriage return - not allowed in HTML5 - see 8.1.4'), ('fonts-overview-201-t-manual.svg', 'Unsupported SVG version specified - specifies SVG 1.2'), @@ -140,59 +105,30 @@ invalid_svg_files = dict([ # TODO Github Issue #216 MathML and SVG uses xsd:anyURI, HTML URLs use URL Standard # TODO Github Issue #217 NU has script/@type optional for HTML, but not SVG-in-HTML -def build_html_testfiles(svgdirectory,htmldirectory): +def build_html_testfiles(svgdirectory,htmldirectory): """Builds HTML test files from SVG test suite folder.""" logging.debug('build_html_testfiles: IN') - + testfiles = [] - + for filename in os.listdir(svgdirectory): #logging.debug(filename) - if filename.endswith(".svg"): + if filename.endswith(".svg"): htmlpathname = build_html_test_file(filename, svgdirectory, htmldirectory) if htmlpathname: testfiles.append(htmlpathname) pass pass - indexpathname = "index-isvalid.html" - build_html_index_file(indexpathname, testfiles) - -def build_html_index_file(indexpathname, testfiles): - """Builds HTML test index.""" - - htmlfile = open(indexpathname, "w") - - htmlfile.write("\n") - htmlfile.write("\n") - - htmlfile.write("\n") - htmlfile.write(" SVG in HTML Test Index\n") - htmlfile.write(" \n") - htmlfile.write("\n") - - htmlfile.write("\n") - htmlfile.write("

                                                                                        SVG in HTML Test Index

                                                                                        \n") - - for filename in testfiles: - if filename.find("-isvalid") > 0: - htmlfile.write("

                                                                                        %s

                                                                                        \n" % (filename, filename)) - - htmlfile.write("\n") - - htmlfile.write("\n") - htmlfile.close() - - -def build_html_test_file(filename, svgdirectory, htmldirectory): +def build_html_test_file(filename, svgdirectory, htmldirectory): """Builds HTML test file by wrapping input SVG in boilerplate HTML.""" svgpathname = svgdirectory + "/" + filename # valid_svg_file overrides invalid_svg_files (may invalid in case-sensitive XML but valid in case-insensitive HTML) - if invalid_svg_files.has_key(filename) and not valid_svg_files.has_key(filename): + if invalid_svg_files.has_key(filename) and not valid_svg_files.has_key(filename): htmlpathname = htmldirectory + "/" + filename.replace( "-manual.svg", "-novalid.html") else: htmlpathname = htmldirectory + "/" + filename.replace( "-manual.svg", "-isvalid.html") @@ -201,7 +137,7 @@ def build_html_test_file(filename, svgdirectory, htmldirectory): logging.debug(htmlpathname) # read SVG data - svgfile = open(svgpathname, "r") + svgfile = open(svgpathname, "rU") svg = svgfile.read() svgfile.close() @@ -210,11 +146,11 @@ def build_html_test_file(filename, svgdirectory, htmldirectory): svgbefore = svg.split("")[1]; svg = svgbefore + svgafter - + # ignore files with SVG DOCTYPE and !ENTITY declarations (unsupported in HTML) if svg.find( "\n") htmlfile.write("

                                                                                        Source SVG: %s

                                                                                        \n" % os.path.basename(svgpathname) ) - + # insert SVG without any XML processing to avoid unexpected transformations on # encoding and entity refs, but remove from file (not valid in HTML) htmlfile.write(svgbefore) htmlfile.write(svgafter) - + htmlfile.write("\n") htmlfile.write("\n") htmlfile.close() - + return htmlpathname def create_dir_if_missing(directory): """Create the given directory if it doesn't exist""" - + d = os.path.dirname(directory) if not os.path.exists(directory): os.makedirs(directory) - - + + def validate_svg_dtd(filename,svg): """Prints legacy DTD markup validation status to stdout in a format suitable for pasting into invalid_svg_files dict above.""" - + # setup multipart/form-data POST body body = '' body = body + '--AaB03x\r\n' @@ -271,17 +207,17 @@ def validate_svg_dtd(filename,svg): body = body + '\r\n' body = body + '--AaB03x--\r\n' - # send request to W3 DTD validator for SVG 1.1 validation - headers = { "Content-type" : "multipart/form-data; boundary=AaB03x", "Content-length" : len(body) } + # send request to W3 DTD validator for SVG 1.1 validation + headers = { "Content-type" : "multipart/form-data; boundary=AaB03x", "Content-length" : len(body) } request = urllib2.Request("http://validator.w3.org/check?charset=utf-8&doctype=SVG+1.1&output=json", data=body, headers=headers) response = urllib2.urlopen(request, timeout=60) - + status = response.info().getheader('X-W3C-Validator-Status') logging.debug(status) - + if status == "Valid": return True - + print " ('%s', 'DTD %s')," % (filename, status) return False @@ -290,15 +226,16 @@ def main(): #logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s') logging.debug('main: IN') - - svgdirectory = "../../svg/import" - htmldirectory = "../html-svg" + + ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + svgdirectory = os.path.join(os.path.dirname(ccdir), "svg", "import") + htmldirectory = os.path.join(ccdir, "html-svg") try: opts, args = getopt.getopt(sys.argv[1:],"",["svgdir=","outdir="]) except getopt.GetoptError: print 'build-svg-tests.py --svgdir --outdir ' - sys.exit(2) + sys.exit(2) for opt, arg in opts: print opt, arg @@ -306,10 +243,10 @@ def main(): svgdirectory = arg elif opt in ("-o", "--outdir"): htmldirectory = arg - - + + create_dir_if_missing(htmldirectory) build_html_testfiles(svgdirectory, htmldirectory) - - -main() \ No newline at end of file + + +main() diff --git a/tests/wpt/web-platform-tests/conformance-checkers/tools/dl.py b/tests/wpt/web-platform-tests/conformance-checkers/tools/dl.py new file mode 100644 index 00000000000..7b6beeb97e6 --- /dev/null +++ b/tests/wpt/web-platform-tests/conformance-checkers/tools/dl.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +import os +ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +template = """ + +""" + +errors = { + "dl-in-p": "

                                                                                        text
                                                                                        text

                                                                                        ", + "header-in-dt": "
                                                                                        text
                                                                                        text
                                                                                        ", + "footer-in-dt": "
                                                                                        text
                                                                                        text
                                                                                        ", + "article-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "aside-in-dt": "
                                                                                        text
                                                                                        ", + "nav-in-dt": "
                                                                                        text
                                                                                        ", + "section-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "h1-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "h2-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "h3-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "h4-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "h5-in-dt": "
                                                                                        text
                                                                                        text
                                                                                        ", + "h6-in-dt": "
                                                                                        text
                                                                                        text
                                                                                        ", + "hgroup-in-dt": "

                                                                                        text

                                                                                        text
                                                                                        ", + "only-dt": "
                                                                                        1
                                                                                        ", + "only-dd": "
                                                                                        a
                                                                                        ", + "first-dd": "
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        ", + "last-dt": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        ", + "dd-in-template": "
                                                                                        1
                                                                                        ", + "dt-in-template": "
                                                                                        a
                                                                                        ", + "dl-contains-text": "
                                                                                        1
                                                                                        x
                                                                                        ", + "dl-contains-text-2": "
                                                                                        1
                                                                                        a
                                                                                        x
                                                                                        ", + "dl-contains-dl": "
                                                                                        1
                                                                                        a
                                                                                        ", + # div + "empty-div": "
                                                                                        ", + "empty-div-2": "
                                                                                        2
                                                                                        b
                                                                                        ", + "mixed-dt-dd-div": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        ", + "mixed-div-dt-dd": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        b
                                                                                        ", + "nested-divs": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-splitting-groups": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-splitting-groups-2": "
                                                                                        1
                                                                                        a
                                                                                        b
                                                                                        ", + "div-splitting-groups-3": "
                                                                                        1
                                                                                        2
                                                                                        b
                                                                                        ", + "div-contains-text": "
                                                                                        x
                                                                                        2
                                                                                        b
                                                                                        ", + "div-contains-dl": "
                                                                                        2
                                                                                        b
                                                                                        ", + "div-multiple-groups": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        ", +} + +non_errors_in_head = { + "parent-template-in-head": "", +} + +non_errors = { + "basic": "
                                                                                        text
                                                                                        text
                                                                                        ", + "empty": "
                                                                                        ", + "empty-dt-dd": "
                                                                                        ", + "multiple-groups": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        ", + "header-in-dd": "
                                                                                        text
                                                                                        text
                                                                                        ", + "footer-in-dd": "
                                                                                        text
                                                                                        text
                                                                                        ", + "article-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "aside-in-dd": "
                                                                                        text
                                                                                        ", + "nav-in-dd": "
                                                                                        text
                                                                                        ", + "section-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "h1-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "h2-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "h3-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "h4-in-dd": "
                                                                                        text

                                                                                        text

                                                                                        ", + "h5-in-dd": "
                                                                                        text
                                                                                        text
                                                                                        ", + "h6-in-dd": "
                                                                                        text
                                                                                        text
                                                                                        ", + "p-in-dt": "

                                                                                        1

                                                                                        1

                                                                                        a
                                                                                        ", + "dl-in-dt": "
                                                                                        1
                                                                                        a
                                                                                        b
                                                                                        ", + "dl-in-dd": "
                                                                                        1
                                                                                        2
                                                                                        a
                                                                                        ", + "interactive": "
                                                                                        1
                                                                                        a
                                                                                        ", + "script": "
                                                                                        ", + "dt-script-dd": "
                                                                                        1
                                                                                        a
                                                                                        ", + "dt-template-dd": "
                                                                                        1
                                                                                        a
                                                                                        ", + # div + "div-basic": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-script": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-script-2": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-template": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-template-2": "
                                                                                        1
                                                                                        a
                                                                                        ", + "div-multiple-groups": "
                                                                                        1
                                                                                        a
                                                                                        2
                                                                                        a
                                                                                        b
                                                                                        3
                                                                                        4
                                                                                        5
                                                                                        a
                                                                                        ", +} + +for key in errors.keys(): + template_error = template + template_error += 'invalid %s\n' % key + template_error += errors[key] + file = open(os.path.join(ccdir, "html/elements/dl/%s-novalid.html" % key), 'wb') + file.write(template_error) + file.close() + +file = open(os.path.join(ccdir, "html/elements/dl/dl-isvalid.html"), 'wb') +file.write(template + 'valid dl\n') +for key in non_errors_in_head.keys(): + file.write('%s \n' % (non_errors_in_head[key], key)) +file.write('\n') +for key in non_errors.keys(): + file.write('%s \n' % (non_errors[key], key)) +file.close() +# vim: ts=4:sw=4 diff --git a/tests/wpt/web-platform-tests/conformance-checkers/tools/index-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/tools/index-isvalid.html deleted file mode 100644 index 5f3e02fc0ba..00000000000 --- a/tests/wpt/web-platform-tests/conformance-checkers/tools/index-isvalid.html +++ /dev/null @@ -1,451 +0,0 @@ - - - - SVG in HTML Test Index - - - -

                                                                                        SVG in HTML Test Index

                                                                                        -

                                                                                        ../html-svg/animate-elem-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-10-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-11-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-12-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-13-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-14-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-15-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-17-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-19-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-20-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-21-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-22-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-23-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-25-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-26-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-27-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-28-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-29-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-30-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-31-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-32-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-33-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-34-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-35-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-36-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-37-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-38-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-39-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-41-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-44-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-46-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-52-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-53-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-60-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-61-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-62-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-63-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-64-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-65-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-66-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-67-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-68-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-69-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-70-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-78-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-80-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-81-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-82-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-83-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-84-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-85-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-86-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-87-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-88-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-89-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-90-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-91-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-elem-92-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-interact-events-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-interact-pevents-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-interact-pevents-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-interact-pevents-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/animate-interact-pevents-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prof-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prop-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prop-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prop-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prop-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/color-prop-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-coord-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-coord-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-dom-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-10-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-11-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-12-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-13-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-trans-14-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-transformattr-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-transformattr-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-transformattr-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-transformattr-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-units-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-units-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-units-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/coords-viewattr-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-background-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-blend-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-color-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-composite-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-composite-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-composite-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-composite-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-comptran-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-conv-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-conv-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-diffuse-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-displace-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-displace-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-example-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-felem-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-felem-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-gauss-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-gauss-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-gauss-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-image-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-image-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-image-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-image-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-image-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-light-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-light-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-light-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-light-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-morph-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-offset-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-offset-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-overview-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-overview-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-overview-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-specular-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-tile-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-turb-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/filters-turb-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-desc-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-desc-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-desc-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-desc-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-desc-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-elem-07-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-glyph-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-glyph-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/fonts-kern-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/imp-path-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-cursor-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-dom-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-events-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-events-202-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-events-203-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-order-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-order-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-order-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-pevents-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-pevents-10-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-pointer-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-zoom-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-zoom-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/interact-zoom-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-a-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-frag-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-uri-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-uri-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/linking-uri-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-mask-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-mask-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-opacity-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-07-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-08-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-10-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-11-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-12-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-13-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/masking-path-14-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-control-06-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-fill-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-fill-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-fill-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-fill-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-fill-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-06-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-07-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-marker-properties-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-render-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-render-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/painting-stroke-10-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-10-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-12-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-13-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-14-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-15-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-16-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-17-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/paths-data-19-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-07-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-08-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-09-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-10-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-11-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-12-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-13-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-14-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-15-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-16-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-17-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-18-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-20-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-21-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-22-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-24-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-grad-stops-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-06-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-07-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-08-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/pservers-pattern-09-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-elems-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-elems-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-elems-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-elems-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-elems-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-groups-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/render-groups-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/script-handle-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/script-handle-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/script-handle-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/script-handle-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/script-specify-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-circle-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-circle-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-ellipse-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-ellipse-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-ellipse-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-grammar-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-intro-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-intro-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-line-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-line-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-polygon-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-polygon-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-polygon-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-polyline-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-polyline-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-06-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/shapes-rect-07-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-overview-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-overview-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-overview-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-cond-overview-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-defs-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-12-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-16-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-dom-18-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-frag-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-frag-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-frag-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-frag-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-frag-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-group-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-group-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-group-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-08-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-10-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-11-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-13-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-14-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-15-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-16-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-17-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-18-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-image-19-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-svg-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-svg-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-svg-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-symbol-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-03-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-07-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-08-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-09-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-10-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-14-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/struct-use-15-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-class-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-07-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-08-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-09-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-css-10-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-elem-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-inherit-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-pres-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-pres-03-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-pres-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/styling-pres-05-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-04-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-05-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-06-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-align-08-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-altglyph-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-altglyph-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-altglyph-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-bidi-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-deco-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-dom-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-dom-04-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-02-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-202-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-203-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-fonts-204-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-01-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-09-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-10-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-11-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-intro-12-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-path-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-path-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-spacing-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-03-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-04-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-05-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-06-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-07-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-08-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-09-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-10-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-11-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-text-12-t-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-tref-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-tselect-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-tspan-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/text-tspan-02-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-basic-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-basic-02-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-01-b-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-06-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-svgfittoviewbox-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-svglengthlist-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-svgnumberlist-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-svgstringlist-01-f-isvalid.html

                                                                                        -

                                                                                        ../html-svg/types-dom-svgtransformable-01-f-isvalid.html

                                                                                        - - diff --git a/tests/wpt/web-platform-tests/conformance-checkers/tools/ins-del-datetime.py b/tests/wpt/web-platform-tests/conformance-checkers/tools/ins-del-datetime.py index 3767a7d709f..88ccc443d80 100644 --- a/tests/wpt/web-platform-tests/conformance-checkers/tools/ins-del-datetime.py +++ b/tests/wpt/web-platform-tests/conformance-checkers/tools/ins-del-datetime.py @@ -106,7 +106,6 @@ non_errors = { "date-1968-02-29": "1968-02-29", "date-1900-02-28": "1900-02-28", "date-2100-02-28": "2100-02-28", - "date-2100-02-28": "2100-02-28", "date-2200-02-28": "2200-02-28", "date-2014-02-28": "2014-02-28", "date-day-01-31": "2002-01-31", diff --git a/tests/wpt/web-platform-tests/conformance-checkers/tools/url.py b/tests/wpt/web-platform-tests/conformance-checkers/tools/url.py index f97d428abe9..21fd27e3e41 100644 --- a/tests/wpt/web-platform-tests/conformance-checkers/tools/url.py +++ b/tests/wpt/web-platform-tests/conformance-checkers/tools/url.py @@ -3,9 +3,6 @@ import os ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # based on https://github.com/w3c/web-platform-tests/blob/275544eab54a0d0c7f74ccc2baae9711293d8908/url/urltestdata.txt invalid = { - "scheme-trailing-tab": "a:\tfoo.com", - "scheme-trailing-newline": "a:\nfoo.com", - "scheme-trailing-cr": "a:\rfoo.com", "scheme-trailing-space": "a: foo.com", "scheme-trailing-tab": "a:\tfoo.com", "scheme-trailing-newline": "a:\nfoo.com", @@ -105,7 +102,6 @@ valid_absolute = { "port-0": "http://f:0/c", "port-00000000000000": "http://f:00000000000000/c", "port-00000000000000000000080": "http://f:00000000000000000000080/c", - "port-00000000000000000000080": "http://f:00000000000000000000080/c", "userinfo-host-port-path": "http://a:b@c:29/d", "userinfo-username-non-alpha": "http://foo.com:b@d/", "query-contains-question-mark": "http://foo/abcd?efgh?ijkl", diff --git a/tests/wpt/web-platform-tests/console/OWNERS b/tests/wpt/web-platform-tests/console/OWNERS new file mode 100644 index 00000000000..6ff90b755fc --- /dev/null +++ b/tests/wpt/web-platform-tests/console/OWNERS @@ -0,0 +1,2 @@ +@domenic +@pwnall diff --git a/tests/wpt/web-platform-tests/console/console-is-a-namespace.any.js b/tests/wpt/web-platform-tests/console/console-is-a-namespace.any.js new file mode 100644 index 00000000000..a4aae7ffce8 --- /dev/null +++ b/tests/wpt/web-platform-tests/console/console-is-a-namespace.any.js @@ -0,0 +1,27 @@ +"use strict"; +// https://heycam.github.io/webidl/#es-namespaces +// https://console.spec.whatwg.org/#console-namespace + +test(() => { + assert_true(self.hasOwnProperty("console")); +}, "console exists on the global object"); + +test(() => { + const propDesc = Object.getOwnPropertyDescriptor(self, "console"); + assert_equals(propDesc.writable, true, "must be writable"); + assert_equals(propDesc.enumerable, false, "must not be enumerable"); + assert_equals(propDesc.configurable, true, "must be configurable"); + assert_equals(propDesc.value, console, "must have the right value"); +}, "console has the right property descriptors"); + +test(() => { + assert_false("Console" in self); +}, "Console (uppercase, as if it were an interface) must not exist"); + +test(() => { + const prototype1 = Object.getPrototypeOf(console); + const prototype2 = Object.getPrototypeOf(prototype1); + + assert_equals(Object.getOwnPropertyNames(prototype1).length, 0, "The [[Prototype]] must have no properties"); + assert_equals(prototype2, Object.prototype, "The [[Prototype]]'s [[Prototype]] must be %ObjectPrototype%"); +}, "The prototype chain must be correct"); diff --git a/tests/wpt/web-platform-tests/content-security-policy/OWNERS b/tests/wpt/web-platform-tests/content-security-policy/OWNERS index 27348607493..1df5d1ae68f 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/OWNERS +++ b/tests/wpt/web-platform-tests/content-security-policy/OWNERS @@ -1,2 +1 @@ -@sideshowbarker @hillbrad diff --git a/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted-ref.html b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted-ref.html new file mode 100644 index 00000000000..fdfbdd93de3 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted-ref.html @@ -0,0 +1,6 @@ + + +csp font-src: blacklisted + +          +

                                                                                        The test passes if the line above are boxes in the test and glyphs in the reference.

                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted.html b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted.html new file mode 100644 index 00000000000..a430a417d8d --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-blacklisted.html @@ -0,0 +1,9 @@ + + + +csp font-src: blacklisted + + + +          +

                                                                                        The test passes if the line above are boxes in the test and glyphs in the reference.

                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted-ref.html b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted-ref.html new file mode 100644 index 00000000000..25ad3bd75cf --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted-ref.html @@ -0,0 +1,6 @@ + + +csp font-src: whitelisted + +          +

                                                                                        The test passes if the line above shows the same glyphs in the reference.

                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted.html b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted.html new file mode 100644 index 00000000000..f3558f76639 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/font-src/font-whitelisted.html @@ -0,0 +1,9 @@ + + + +csp font-src: whitelisted + + + +          +

                                                                                        The test passes if the line above shows the same glyphs in the reference.

                                                                                        \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/font-src/fonts.css b/tests/wpt/web-platform-tests/content-security-policy/font-src/fonts.css new file mode 100644 index 00000000000..30dd02cdb73 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/font-src/fonts.css @@ -0,0 +1,8 @@ +@font-face { + font-family: 'Halflings'; + src: url('/tools/runner/fonts/glyphicons-halflings-regular.woff') format('woff'); +} + +body { + font-family: 'Halflings', Fallback, sans-serif; +} \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/navigation/to-javascript-url.html b/tests/wpt/web-platform-tests/content-security-policy/navigation/to-javascript-url.html new file mode 100644 index 00000000000..d882330cece --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/navigation/to-javascript-url.html @@ -0,0 +1,57 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html new file mode 100755 index 00000000000..96ef2496b5b --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html @@ -0,0 +1,31 @@ + + + + + Scripts injected via `eval` are allowed with `strict-dynamic` with `unsafe-eval`. + + + + + + + +

                                                                                        Scripts injected via `eval` are allowed with `strict-dynamic` with `unsafe-eval`.

                                                                                        +
                                                                                        + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.headers new file mode 100755 index 00000000000..dc5f30a03a3 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' 'unsafe-eval' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html new file mode 100755 index 00000000000..3041db056f2 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html @@ -0,0 +1,31 @@ + + + + + Scripts injected via `new Function()` are allowed with `strict-dynamic` with `unsafe-eval`. + + + + + + + +

                                                                                        Scripts injected via `new Function()` are allowed with `strict-dynamic` with `unsafe-eval`.

                                                                                        +
                                                                                        + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.headers new file mode 100755 index 00000000000..dc5f30a03a3 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' 'unsafe-eval' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html new file mode 100755 index 00000000000..4e194468304 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html @@ -0,0 +1,32 @@ + + + + + Whitelists are discarded with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Whitelists are discarded with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html.headers new file mode 100755 index 00000000000..8499eb0559d --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'self' 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html new file mode 100755 index 00000000000..cd2ae8c16c0 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html @@ -0,0 +1,68 @@ + + + + + A separate policy with more nonces works correctly with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        A separate policy with more nonces works correctly with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.headers new file mode 100755 index 00000000000..63d96aaf1ee --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.headers @@ -0,0 +1,6 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' +Content-Security-Policy: script-src 'nonce-dummy' 'nonce-dummy2' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html new file mode 100755 index 00000000000..94490de1b46 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html @@ -0,0 +1,61 @@ + + + + + Whitelists in a separate policy are honored with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Whitelists in a separate policy are honored with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html.headers new file mode 100755 index 00000000000..5b4078efd37 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_whitelist.sub.html.headers @@ -0,0 +1,6 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' +Content-Security-Policy: script-src 'self' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html new file mode 100755 index 00000000000..1e057ba947e --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html @@ -0,0 +1,44 @@ + + + + + A separate Report-Only policy does not influence `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        A separate Report-Only policy does not influence `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.headers new file mode 100755 index 00000000000..7883f80ef61 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.headers @@ -0,0 +1,6 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' +Content-Security-Policy-Report-Only: script-src 'none' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html new file mode 100755 index 00000000000..62fda4f3d23 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html @@ -0,0 +1,37 @@ + + + + + Scripts injected via `eval` are not allowed with `strict-dynamic` without `unsafe-eval`. + + + + + + + +

                                                                                        Scripts injected via `eval` are not allowed with `strict-dynamic` without `unsafe-eval`.

                                                                                        +
                                                                                        + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_eval.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html new file mode 100755 index 00000000000..acb9f00d808 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html @@ -0,0 +1,52 @@ + + + + + `strict-dynamic` allows scripts matching hashes present in the policy. + + + + + + + +

                                                                                        `strict-dynamic` allows scripts matching hashes present in the policy.

                                                                                        +
                                                                                        + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html.headers new file mode 100755 index 00000000000..f48fca3ec49 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_hashes.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' 'sha256-yU6Q7nD1TCBB9JvY06iIJ8ONLOPU4g8ml5JCDgXkv+M=' 'sha256-IFt1v6itHgqlrtInbPm/y7qyWcAlDbPgZM+92C5EZ5o=' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html new file mode 100644 index 00000000000..d640421cb74 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html @@ -0,0 +1,32 @@ + + + + + `strict-dynamic` does not drop whitelists in `img-src`. + + + + + + + +

                                                                                        `strict-dynamic` does not drop whitelists in `img-src`.

                                                                                        +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html.headers new file mode 100644 index 00000000000..75a41c9e251 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: img-src 'strict-dynamic' 'self' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html new file mode 100755 index 00000000000..fa38b65a238 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html @@ -0,0 +1,76 @@ + + + + + A `strict-dynamic` policy can be served in a META tag. + + + + + + + + +

                                                                                        A `strict-dynamic` policy can be served in a META tag.

                                                                                        +
                                                                                        + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html.headers new file mode 100755 index 00000000000..519dcaacb1f --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_meta_tag.html.headers @@ -0,0 +1,4 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html new file mode 100755 index 00000000000..2b75276588f --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html @@ -0,0 +1,37 @@ + + + + + Scripts injected via `new Function()` are not allowed with `strict-dynamic` without `unsafe-eval`. + + + + + + + +

                                                                                        Scripts injected via `new Function()` are not allowed with `strict-dynamic` without `unsafe-eval`.

                                                                                        +
                                                                                        + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html new file mode 100755 index 00000000000..63b7a612470 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html @@ -0,0 +1,76 @@ + + + + + Nonced and non parser-inserted scripts should run with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Nonced and non parser-inserted scripts should run with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html new file mode 100755 index 00000000000..19d2ae1acc7 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html @@ -0,0 +1,29 @@ + + + + + Scripts without a correct nonce should not run with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Scripts without a correct nonce should not run with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html new file mode 100755 index 00000000000..c167e5ef625 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html @@ -0,0 +1,205 @@ + + + + + Parser-inserted scripts without a correct nonce are not allowed with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Parser-inserted scripts without a correct nonce are not allowed with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html new file mode 100755 index 00000000000..9368089781d --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html @@ -0,0 +1,110 @@ + + + + + Parser-inserted scripts with a correct nonce are allowed with `strict-dynamic` in the script-src directive. + + + + + + + +

                                                                                        Parser-inserted scripts with a correct nonce are allowed with `strict-dynamic` in the script-src directive.

                                                                                        +
                                                                                        + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.headers b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.headers new file mode 100755 index 00000000000..b7918c93323 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'strict-dynamic' 'nonce-dummy' diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/simpleSourcedScript.js b/tests/wpt/web-platform-tests/content-security-policy/script-src/simpleSourcedScript.js new file mode 100755 index 00000000000..deca86508ff --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/simpleSourcedScript.js @@ -0,0 +1 @@ +window.postMessage(document.currentScript.id, "*"); diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-eval.html b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-eval.html new file mode 100644 index 00000000000..c9d74e623f5 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-eval.html @@ -0,0 +1,19 @@ + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-inline.html b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-inline.html new file mode 100644 index 00000000000..c4862337407 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/blockeduri-inline.html @@ -0,0 +1,18 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idl.html b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idl.html new file mode 100644 index 00000000000..17f492e7344 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idl.html @@ -0,0 +1,49 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html new file mode 100644 index 00000000000..36069a5959d --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html @@ -0,0 +1,159 @@ + + + + + + + + + +Click me! + + + + + + +
                                                                                        + + + +
                                                                                        + + + + + + + + + + +Click me also! + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/echo-policy.py b/tests/wpt/web-platform-tests/content-security-policy/support/echo-policy.py new file mode 100644 index 00000000000..ebde3dc5a4b --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/echo-policy.py @@ -0,0 +1,3 @@ +def main(request, response): + policy = request.GET.first("policy"); + return [("Content-Type", "text/html"), ("Content-Security-Policy", policy)], "Echo." diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/ping.js b/tests/wpt/web-platform-tests/content-security-policy/support/ping.js new file mode 100644 index 00000000000..750ae45f969 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/ping.js @@ -0,0 +1,12 @@ +if (typeof ServiceWorkerGlobalScope === "function") { + self.onmessage = function (e) { e.source.postMessage("ping"); }; +} else if (typeof SharedWorkerGlobalScope === "function") { + onconnect = function (e) { + var port = e.ports[0]; + + port.onmessage = function () { port.postMessage("ping"); } + port.postMessage("ping"); + }; +} else if (typeof DedicatedWorkerGlobalScope === "function") { + self.postMessage("ping"); +} diff --git a/tests/wpt/web-platform-tests/content-security-policy/support/testharness-helper.js b/tests/wpt/web-platform-tests/content-security-policy/support/testharness-helper.js new file mode 100644 index 00000000000..a1eaa891e03 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/support/testharness-helper.js @@ -0,0 +1,131 @@ +function assert_no_csp_event_for_url(test, url) { + document.addEventListener("securitypolicyviolation", test.step_func(e => { + if (e.blockedURI !== url) + return; + assert_unreached("SecurityPolicyViolation event fired for " + url); + })); +} + +function assert_no_event(test, obj, name) { + obj.addEventListener(name, test.unreached_func("The '" + name + "' event should not have fired.")); +} + +function waitUntilCSPEventForURL(test, url) { + return new Promise((resolve, reject) => { + document.addEventListener("securitypolicyviolation", test.step_func(e => { + if (e.blockedURI == url) + resolve(e); + })); + }); +} + +function waitUntilEvent(obj, name) { + return new Promise((resolve, reject) => { + obj.addEventListener(name, resolve); + }); +} + +// Given the URL of a worker that pings its opener upon load, this +// function builds a test that asserts that the ping is received, +// and that no CSP event fires. +function assert_worker_is_loaded(url, description) { + async_test(t => { + assert_no_csp_event_for_url(t, url); + var w = new Worker(url); + assert_no_event(t, w, "error"); + waitUntilEvent(w, "message") + .then(t.step_func_done(e => { + assert_equals(e.data, "ping"); + })); + }, description); +} + +function assert_shared_worker_is_loaded(url, description) { + async_test(t => { + assert_no_csp_event_for_url(t, url); + var w = new SharedWorker(url); + assert_no_event(t, w, "error"); + waitUntilEvent(w.port, "message") + .then(t.step_func_done(e => { + assert_equals(e.data, "ping"); + })); + w.port.start(); + }, description); +} + +function assert_service_worker_is_loaded(url, description) { + promise_test(t => { + assert_no_csp_event_for_url(t, url); + return Promise.all([ + waitUntilEvent(navigator.serviceWorker, "message") + .then(e => { + assert_equals(e.data, "ping"); + }), + navigator.serviceWorker.register(url, { scope: url }) + .then(r => { + var sw = r.active || r.installing || r.waiting; + t.add_cleanup(_ => r.unregister()); + sw.postMessage("pong?"); + }) + ]); + }, description); +} + +// Given the URL of a worker that pings its opener upon load, this +// function builds a test that asserts that the constructor throws +// a SecurityError, and that a CSP event fires. +function assert_worker_is_blocked(url, description) { + async_test(t => { + // If |url| is a blob, it will be stripped down to "blob" for reporting. + var reportedURL = new URL(url).protocol == "blob:" ? "blob" : url; + waitUntilCSPEventForURL(t, reportedURL) + .then(t.step_func_done(e => { + assert_equals(e.blockedURI, reportedURL); + assert_equals(e.violatedDirective, "worker-src"); + assert_equals(e.effectiveDirective, "worker-src"); + })); + + // TODO(mkwst): We shouldn't be throwing here. We should be firing an + // `error` event on the Worker. https://crbug.com/663298 + assert_throws("SecurityError", function () { + var w = new Worker(url); + }); + }, description); +} + +function assert_shared_worker_is_blocked(url, description) { + async_test(t => { + // If |url| is a blob, it will be stripped down to "blob" for reporting. + var reportedURL = new URL(url).protocol == "blob:" ? "blob" : url; + waitUntilCSPEventForURL(t, reportedURL) + .then(t.step_func_done(e => { + assert_equals(e.blockedURI, reportedURL); + assert_equals(e.violatedDirective, "worker-src"); + assert_equals(e.effectiveDirective, "worker-src"); + })); + + // TODO(mkwst): We shouldn't be throwing here. We should be firing an + // `error` event on the SharedWorker. https://crbug.com/663298 + assert_throws("SecurityError", function () { + var w = new SharedWorker(url); + }); + }, description); +} + +function assert_service_worker_is_blocked(url, description) { + promise_test(t => { + assert_no_event(t, navigator.serviceWorker, "message"); + // If |url| is a blob, it will be stripped down to "blob" for reporting. + var reportedURL = new URL(url).protocol == "blob:" ? "blob" : url; + return Promise.all([ + waitUntilCSPEventForURL(t, reportedURL) + .then(t.step_func_done(e => { + assert_equals(e.blockedURI, reportedURL); + assert_equals(e.violatedDirective, "worker-src"); + assert_equals(e.effectiveDirective, "worker-src"); + })), + promise_rejects(t, "SecurityError", navigator.serviceWorker.register(url, { scope: url })) + ]); + }, description); +} + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-child.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-child.sub.html new file mode 100644 index 00000000000..cff8f953af1 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-child.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub.html new file mode 100644 index 00000000000..25602573fbd --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-list.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-list.sub.html new file mode 100644 index 00000000000..fc4f9123247 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-list.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-none.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-none.sub.html new file mode 100644 index 00000000000..62c550788a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-none.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-self.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-self.sub.html new file mode 100644 index 00000000000..ba0cd1bb43b --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/dedicated-self.sub.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-child.https.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-child.https.sub.html new file mode 100644 index 00000000000..5036cae5832 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-child.https.sub.html @@ -0,0 +1,10 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-fallback.https.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-fallback.https.sub.html new file mode 100644 index 00000000000..682a805e7c3 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-fallback.https.sub.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-list.https.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-list.https.sub.html new file mode 100644 index 00000000000..251c856d3c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-list.https.sub.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-none.https.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-none.https.sub.html new file mode 100644 index 00000000000..467a8ce2cf4 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-none.https.sub.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-self.https.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-self.https.sub.html new file mode 100644 index 00000000000..d725e730129 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/service-self.https.sub.html @@ -0,0 +1,9 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-child.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-child.sub.html new file mode 100644 index 00000000000..93dd38b6f8e --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-child.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-fallback.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-fallback.sub.html new file mode 100644 index 00000000000..cfe9190a43e --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-fallback.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-list.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-list.sub.html new file mode 100644 index 00000000000..6c985c76eb6 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-list.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-none.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-none.sub.html new file mode 100644 index 00000000000..b443f321d3c --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-none.sub.html @@ -0,0 +1,13 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-self.sub.html b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-self.sub.html new file mode 100644 index 00000000000..e6b368aab18 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-security-policy/worker-src/shared-self.sub.html @@ -0,0 +1,10 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/cors/OWNERS b/tests/wpt/web-platform-tests/cors/OWNERS index c8979792445..5080e023134 100644 --- a/tests/wpt/web-platform-tests/cors/OWNERS +++ b/tests/wpt/web-platform-tests/cors/OWNERS @@ -1,4 +1,3 @@ -@sideshowbarker @zqzhang @Velmont @hillbrad diff --git a/tests/wpt/web-platform-tests/cssom/serialize-values.html b/tests/wpt/web-platform-tests/cssom/serialize-values.html new file mode 100644 index 00000000000..8f6f3d28d03 --- /dev/null +++ b/tests/wpt/web-platform-tests/cssom/serialize-values.html @@ -0,0 +1,596 @@ + + +CSSOM serialize values + + + + +
                                                                                        +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/custom-elements/CustomElementRegistry.html b/tests/wpt/web-platform-tests/custom-elements/CustomElementRegistry.html new file mode 100644 index 00000000000..ecc7810e8df --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/CustomElementRegistry.html @@ -0,0 +1,580 @@ + + + +Custom Elements: CustomElementRegistry interface + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/Document-createElement.html b/tests/wpt/web-platform-tests/custom-elements/Document-createElement.html new file mode 100644 index 00000000000..f8b3a94c00d --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/Document-createElement.html @@ -0,0 +1,332 @@ + + + +Custom Elements: document.createElement should create an element with synchronous custom elements flag set + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/adopted-callback.html b/tests/wpt/web-platform-tests/custom-elements/adopted-callback.html new file mode 100644 index 00000000000..5c08a04a421 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/adopted-callback.html @@ -0,0 +1,135 @@ + + + +Custom Elements: adoptedCallback + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/attribute-changed-callback.html b/tests/wpt/web-platform-tests/custom-elements/attribute-changed-callback.html new file mode 100644 index 00000000000..bd467912b99 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/attribute-changed-callback.html @@ -0,0 +1,223 @@ + + + +Custom Elements: attributeChangedCallback + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/connected-callbacks.html b/tests/wpt/web-platform-tests/custom-elements/connected-callbacks.html new file mode 100644 index 00000000000..d6e68262a85 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/connected-callbacks.html @@ -0,0 +1,88 @@ + + + +Custom Elements: connectedCallback + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/custom-element-reaction-queue.html b/tests/wpt/web-platform-tests/custom-elements/custom-element-reaction-queue.html new file mode 100644 index 00000000000..737dab117d3 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/custom-element-reaction-queue.html @@ -0,0 +1,157 @@ + + + +Custom Elements: Each element must have its own custom element reaction queue + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/disconnected-callbacks.html b/tests/wpt/web-platform-tests/custom-elements/disconnected-callbacks.html new file mode 100644 index 00000000000..7f5a4d0f8e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/disconnected-callbacks.html @@ -0,0 +1,93 @@ + + + +Custom Elements: disconnectedCallback + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/htmlconstructor/newtarget.html b/tests/wpt/web-platform-tests/custom-elements/htmlconstructor/newtarget.html index 04b4c498649..ab43803c244 100644 --- a/tests/wpt/web-platform-tests/custom-elements/htmlconstructor/newtarget.html +++ b/tests/wpt/web-platform-tests/custom-elements/htmlconstructor/newtarget.html @@ -5,120 +5,124 @@ - + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-in-document-write.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-in-document-write.html new file mode 100644 index 00000000000..3b5256677d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-in-document-write.html @@ -0,0 +1,32 @@ + + + +Custom Elements: Changes to the HTML parser + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-synchronously.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-synchronously.html new file mode 100644 index 00000000000..206aa17f20b --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-element-synchronously.html @@ -0,0 +1,51 @@ + + + +Custom Elements: Changes to the HTML parser + + + + + + + + +
                                                                                        + +
                                                                                        + + +
                                                                                        +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-elements.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-elements.html new file mode 100644 index 00000000000..3f13c50a0e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-constructs-custom-elements.html @@ -0,0 +1,48 @@ + + + +Custom Elements: Changes to the HTML parser + + + + + + + + +
                                                                                        + + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element.html new file mode 100644 index 00000000000..82e970f1ae8 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element.html @@ -0,0 +1,91 @@ + + + +Custom Elements: Changes to the HTML parser + + + + + + + + +
                                                                                        + + + + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html new file mode 100644 index 00000000000..ba331370a78 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html @@ -0,0 +1,59 @@ + + + +Custom Elements: Changes to the HTML parser + + + + + + + + +
                                                                                        + +hello world + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-constructed-element.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-constructed-element.html new file mode 100644 index 00000000000..393bbec698b --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-constructed-element.html @@ -0,0 +1,75 @@ + + + +Custom Elements: HTML parser must construct a custom element instead of upgrading + + + + + + + + +
                                                                                        + + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-registry-of-owner-document.html b/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-registry-of-owner-document.html new file mode 100644 index 00000000000..efdc3a2a47c --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/parser/parser-uses-registry-of-owner-document.html @@ -0,0 +1,126 @@ + + + +Custom Elements: HTML parser must use the owner document's custom element registry + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reaction-timing.html b/tests/wpt/web-platform-tests/custom-elements/reaction-timing.html new file mode 100644 index 00000000000..9e5bafbedfe --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reaction-timing.html @@ -0,0 +1,88 @@ + + + +Custom Elements: Custom element reactions must be invoked before returning to author scripts + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Attr.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Attr.html new file mode 100644 index 00000000000..c9fa37f9611 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Attr.html @@ -0,0 +1,23 @@ + + + +Custom Elements: CEReactions on Attr interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/CSSStyleDeclaration.html b/tests/wpt/web-platform-tests/custom-elements/reactions/CSSStyleDeclaration.html new file mode 100644 index 00000000000..bf9e00ab528 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/CSSStyleDeclaration.html @@ -0,0 +1,85 @@ + + + +Custom Elements: CEReactions on CSSStyleDeclaration interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/ChildNode.html b/tests/wpt/web-platform-tests/custom-elements/reactions/ChildNode.html new file mode 100644 index 00000000000..756f1722988 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/ChildNode.html @@ -0,0 +1,35 @@ + + + +Custom Elements: CEReactions on ChildNode interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/DOMStringMap.html b/tests/wpt/web-platform-tests/custom-elements/reactions/DOMStringMap.html new file mode 100644 index 00000000000..5e34dfe2ba1 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/DOMStringMap.html @@ -0,0 +1,96 @@ + + + +Custom Elements: CEReactions on DOMStringMap interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/DOMTokenList.html b/tests/wpt/web-platform-tests/custom-elements/reactions/DOMTokenList.html new file mode 100644 index 00000000000..e8c26df498f --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/DOMTokenList.html @@ -0,0 +1,219 @@ + + + +Custom Elements: CEReactions on DOMTokenList interface + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Document.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Document.html new file mode 100644 index 00000000000..98c642bcf26 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Document.html @@ -0,0 +1,154 @@ + + + +Custom Elements: CEReactions on Document interface + + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Element.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Element.html new file mode 100644 index 00000000000..8370724061a --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Element.html @@ -0,0 +1,82 @@ + + + +Custom Elements: CEReactions on Element interface + + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/ElementContentEditable.html b/tests/wpt/web-platform-tests/custom-elements/reactions/ElementContentEditable.html new file mode 100644 index 00000000000..bdb10761cb8 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/ElementContentEditable.html @@ -0,0 +1,21 @@ + + + +Custom Elements: CEReactions on ElementContentEditable interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLAnchorElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLAnchorElement.html new file mode 100644 index 00000000000..c6eeb1dce90 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLAnchorElement.html @@ -0,0 +1,32 @@ + + + +Custom Elements: CEReactions on HTMLAnchorElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLElement.html new file mode 100644 index 00000000000..bce4ef1627c --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLElement.html @@ -0,0 +1,42 @@ + + + +Custom Elements: CEReactions on HTMLElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionElement.html new file mode 100644 index 00000000000..418ef282b32 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionElement.html @@ -0,0 +1,35 @@ + + + +Custom Elements: CEReactions on HTMLOptionElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionsCollection.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionsCollection.html new file mode 100644 index 00000000000..0d64259d063 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOptionsCollection.html @@ -0,0 +1,122 @@ + + + +Custom Elements: CEReactions on HTMLOptionsCollection interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOutputElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOutputElement.html new file mode 100644 index 00000000000..02e669bc7a7 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLOutputElement.html @@ -0,0 +1,45 @@ + + + +Custom Elements: CEReactions on HTMLOutputElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLSelectElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLSelectElement.html new file mode 100644 index 00000000000..7c79634f668 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLSelectElement.html @@ -0,0 +1,122 @@ + + + +Custom Elements: CEReactions on HTMLSelectElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableElement.html new file mode 100644 index 00000000000..6adf2623d6b --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableElement.html @@ -0,0 +1,173 @@ + + + +Custom Elements: CEReactions on HTMLTableElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableRowElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableRowElement.html new file mode 100644 index 00000000000..a9a00a5da33 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableRowElement.html @@ -0,0 +1,34 @@ + + + +Custom Elements: CEReactions on HTMLTableRowElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableSectionElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableSectionElement.html new file mode 100644 index 00000000000..cbb0a146e80 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTableSectionElement.html @@ -0,0 +1,45 @@ + + + +Custom Elements: CEReactions on HTMLTableSectionElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTitleElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTitleElement.html new file mode 100644 index 00000000000..6678944c919 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLTitleElement.html @@ -0,0 +1,35 @@ + + + +Custom Elements: CEReactions on HTMLTitleElement interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/NamedNodeMap.html b/tests/wpt/web-platform-tests/custom-elements/reactions/NamedNodeMap.html new file mode 100644 index 00000000000..fa21b3ada9a --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/NamedNodeMap.html @@ -0,0 +1,39 @@ + + + +Custom Elements: CEReactions on NamedNodeMap interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Node.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Node.html new file mode 100644 index 00000000000..94da3d020e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Node.html @@ -0,0 +1,49 @@ + + + +Custom Elements: CEReactions on Node interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/ParentNode.html b/tests/wpt/web-platform-tests/custom-elements/reactions/ParentNode.html new file mode 100644 index 00000000000..b143b5a982b --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/ParentNode.html @@ -0,0 +1,27 @@ + + + +Custom Elements: CEReactions on ParentNode interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Range.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Range.html new file mode 100644 index 00000000000..c4a8252ff62 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Range.html @@ -0,0 +1,54 @@ + + + +Custom Elements: CEReactions on Range interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/Selection.html b/tests/wpt/web-platform-tests/custom-elements/reactions/Selection.html new file mode 100644 index 00000000000..84214201aaa --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/Selection.html @@ -0,0 +1,32 @@ + + + +Custom Elements: CEReactions on Selection interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/ShadowRoot.html b/tests/wpt/web-platform-tests/custom-elements/reactions/ShadowRoot.html new file mode 100644 index 00000000000..9997d9c8362 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/ShadowRoot.html @@ -0,0 +1,52 @@ + + + +Custom Elements: CEReactions on ShadowRoot interface + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/resources/reactions.js b/tests/wpt/web-platform-tests/custom-elements/reactions/resources/reactions.js new file mode 100644 index 00000000000..43ce4fd7ad8 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/resources/reactions.js @@ -0,0 +1,361 @@ + +let testNumber = 1; + +function testNodeConnector(testFunction, name) { + let container = document.createElement('div'); + container.appendChild(document.createElement('div')); + document.body.appendChild(container); + + test(function () { + var element = define_new_custom_element(); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(container, instance); + assert_array_equals(element.takeLog().types(), ['connected']); + }, name + ' must enqueue a connected reaction'); + + test(function () { + var element = define_new_custom_element(); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + var newDoc = document.implementation.createHTMLDocument(); + testFunction(container, instance); + assert_array_equals(element.takeLog().types(), ['connected']); + testFunction(newDoc.documentElement, instance); + assert_array_equals(element.takeLog().types(), ['disconnected', 'adopted', 'connected']); + }, name + ' must enqueue a disconnected reaction, an adopted reaction, and a connected reaction when the custom element was in another document'); + + container.parentNode.removeChild(container); +} + +function testNodeDisconnector(testFunction, name) { + let container = document.createElement('div'); + container.appendChild(document.createElement('div')); + document.body.appendChild(container); + + test(function () { + var element = define_new_custom_element(); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + container.appendChild(instance); + assert_array_equals(element.takeLog().types(), ['connected']); + testFunction(instance, window); + assert_array_equals(element.takeLog().types(), ['disconnected']); + }, name + ' must enqueue a disconnected reaction'); + + container.parentNode.removeChild(container); +} + +function testInsertingMarkup(testFunction, name) { + let container = document.createElement('div'); + container.appendChild(document.createElement('div')); + document.body.appendChild(container); + + test(function () { + var element = define_new_custom_element(); + testFunction(container, `<${element.name}>`); + assert_array_equals(element.takeLog().types(), ['constructed', 'connected']); + }, name + ' must enqueue a connected reaction for a newly constructed custom element'); + + test(function () { + var element = define_new_custom_element(['title']); + testFunction(container, `<${element.name} id="hello" title="hi">`); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['constructed', 'attributeChanged', 'connected']); + assert_attribute_log_entry(logEntries[1], {name: 'title', oldValue: null, newValue: 'hi', namespace: null}); + }, name + ' must enqueue a attributeChanged reaction for a newly constructed custom element'); + + container.parentNode.removeChild(container); +} + +function testParsingMarkup(testFunction, name) { + test(function () { + var element = define_new_custom_element(['id']); + assert_array_equals(element.takeLog().types(), []); + var instance = testFunction(document, `<${element.name} id="hello" class="foo">`); + assert_equals(Object.getPrototypeOf(instance.querySelector(element.name)), element.class.prototype); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['constructed', 'attributeChanged']); + assert_attribute_log_entry(logEntries[1], {name: 'id', oldValue: null, newValue: 'hello', namespace: null}); + }, name + ' must construct a custom element'); +} + +function testCloner(testFunction, name) { + let container = document.createElement('div'); + container.appendChild(document.createElement('div')); + document.body.appendChild(container); + + test(function () { + var element = define_new_custom_element(['id']); + var instance = document.createElement(element.name); + container.appendChild(instance); + + instance.setAttribute('id', 'foo'); + assert_array_equals(element.takeLog().types(), ['constructed', 'connected', 'attributeChanged']); + var newInstance = testFunction(instance); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['constructed', 'attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'id', oldValue: null, newValue: 'foo', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when cloning an element with an observed attribute'); + + test(function () { + var element = define_new_custom_element(['id']); + var instance = document.createElement(element.name); + container.appendChild(instance); + + instance.setAttribute('lang', 'en'); + assert_array_equals(element.takeLog().types(), ['constructed', 'connected']); + var newInstance = testFunction(instance); + assert_array_equals(element.takeLog().types(), ['constructed']); + }, name + ' must not enqueue an attributeChanged reaction when cloning an element with an unobserved attribute'); + + test(function () { + var element = define_new_custom_element(['title', 'class']); + var instance = document.createElement(element.name); + container.appendChild(instance); + + instance.setAttribute('lang', 'en'); + instance.className = 'foo'; + instance.setAttribute('title', 'hello world'); + assert_array_equals(element.takeLog().types(), ['constructed', 'connected', 'attributeChanged', 'attributeChanged']); + var newInstance = testFunction(instance); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['constructed', 'attributeChanged', 'attributeChanged']); + assert_attribute_log_entry(logEntries[1], {name: 'class', oldValue: null, newValue: 'foo', namespace: null}); + assert_attribute_log_entry(logEntries[2], {name: 'title', oldValue: null, newValue: 'hello world', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when cloning an element only for observed attributes'); +} + +function testReflectAttributeWithContentValues(jsAttributeName, contentAttributeName, validValue1, contentValue1, validValue2, contentValue2, name) { + test(function () { + var element = define_new_custom_element([contentAttributeName]); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + instance[jsAttributeName] = validValue1; + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + + assert_attribute_log_entry(logEntries.last(), {name: contentAttributeName, oldValue: null, newValue: contentValue1, namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when adding ' + contentAttributeName + ' content attribute'); + + test(function () { + var element = define_new_custom_element([contentAttributeName]); + var instance = document.createElement(element.name); + instance[jsAttributeName] = validValue1; + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + instance[jsAttributeName] = validValue2; + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: contentAttributeName, oldValue: contentValue1, newValue: contentValue2, namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when replacing an existing attribute'); +} + +function testReflectAttribute(jsAttributeName, contentAttributeName, validValue1, validValue2, name) { + testReflectAttributeWithContentValues(jsAttributeName, contentAttributeName, validValue1, validValue1, validValue2, validValue2, name); +} + +function testReflectBooleanAttribute(jsAttributeName, contentAttributeName, name) { + testReflectAttributeWithContentValues(jsAttributeName, contentAttributeName, true, '', false, null, name); +} + +function testAttributeAdder(testFunction, name) { + test(function () { + var element = define_new_custom_element(['id']); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'id', 'foo'); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'id', oldValue: null, newValue: 'foo', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when adding an attribute'); + + test(function () { + var element = define_new_custom_element(['class']); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'data-lang', 'en'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when adding an unobserved attribute'); + + test(function () { + var element = define_new_custom_element(['title']); + var instance = document.createElement(element.name); + instance.setAttribute('title', 'hello'); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, 'title', 'world'); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'title', oldValue: 'hello', newValue: 'world', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when replacing an existing attribute'); + + test(function () { + var element = define_new_custom_element([]); + var instance = document.createElement(element.name); + instance.setAttribute('data-lang', 'zh'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'data-lang', 'en'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must enqueue an attributeChanged reaction when replacing an existing unobserved attribute'); +} + +function testAttributeMutator(testFunction, name) { + test(function () { + var element = define_new_custom_element(['title']); + var instance = document.createElement(element.name); + instance.setAttribute('title', 'hello'); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, 'title', 'world'); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'title', oldValue: 'hello', newValue: 'world', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when replacing an existing attribute'); + + test(function () { + var element = define_new_custom_element(['class']); + var instance = document.createElement(element.name); + instance.setAttribute('data-lang', 'zh'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'data-lang', 'en'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when replacing an existing unobserved attribute'); +} + +function testAttributeRemover(testFunction, name, options) { + if (options && !options.onlyExistingAttribute) { + test(function () { + var element = define_new_custom_element(['title']); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'title'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when removing an attribute that does not exist'); + } + + test(function () { + var element = define_new_custom_element([]); + var instance = document.createElement(element.name); + instance.setAttribute('data-lang', 'hello'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'data-lang'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when removing an unobserved attribute'); + + test(function () { + var element = define_new_custom_element(['title']); + var instance = document.createElement(element.name); + instance.setAttribute('title', 'hello'); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, 'title'); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'title', oldValue: 'hello', newValue: null, namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when removing an existing attribute'); + + test(function () { + var element = define_new_custom_element([]); + var instance = document.createElement(element.name); + instance.setAttribute('data-lang', 'ja'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'data-lang'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when removing an existing unobserved attribute'); +} + +function test_mutating_style_property_value(testFunction, name, options) { + const propertyName = (options || {}).propertyName || 'color'; + const idlName = (options || {}).idlName || 'color'; + const value1 = (options || {}).value1 || 'blue'; + const rule1 = `${propertyName}: ${value1};`; + const value2 = (options || {}).value2 || 'red'; + const rule2 = `${propertyName}: ${value2};`; + + test(function () { + var element = define_new_custom_element(['style']); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, propertyName, idlName, value1); + assert_equals(instance.getAttribute('style'), rule1); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'style', oldValue: null, newValue: rule1, namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when it adds the observed style attribute'); + + test(function () { + var element = define_new_custom_element(['title']); + var instance = document.createElement(element.name); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, propertyName, idlName, value1); + assert_equals(instance.getAttribute('style'), rule1); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when it adds the style attribute but the style attribute is not observed'); + + test(function () { + var element = define_new_custom_element(['style']); + var instance = document.createElement(element.name); + testFunction(instance, propertyName, idlName, value1); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, propertyName, idlName, value2); + assert_equals(instance.getAttribute('style'), rule2); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'style', oldValue: rule1, newValue: rule2, namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when it mutates the observed style attribute'); + + test(function () { + var element = define_new_custom_element([]); + var instance = document.createElement(element.name); + testFunction(instance, propertyName, idlName, value1); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, propertyName, idlName, value2); + assert_equals(instance.getAttribute('style'), rule2); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when it mutates the style attribute but the style attribute is not observed'); +} + +function test_removing_style_property_value(testFunction, name) { + test(function () { + var element = define_new_custom_element(['style']); + var instance = document.createElement(element.name); + instance.setAttribute('style', 'color: red; display: none;'); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, 'color', 'color'); + assert_equals(instance.getAttribute('style'), 'display: none;'); // Don't make this empty since browser behaviors are inconsistent now. + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'style', oldValue: 'color: red; display: none;', newValue: 'display: none;', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when it removes a property from the observed style attribute'); + + test(function () { + var element = define_new_custom_element(['class']); + var instance = document.createElement(element.name); + instance.setAttribute('style', 'color: red; display: none;'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'color', 'color'); + assert_equals(instance.getAttribute('style'), 'display: none;'); // Don't make this empty since browser behaviors are inconsistent now. + assert_array_equals(element.takeLog().types(), []); + }, name + ' must not enqueue an attributeChanged reaction when it removes a property from the style attribute but the style attribute is not observed'); +} + +function test_mutating_style_property_priority(testFunction, name) { + test(function () { + var element = define_new_custom_element(['style']); + var instance = document.createElement(element.name); + instance.setAttribute('style', 'color: red'); + assert_array_equals(element.takeLog().types(), ['constructed', 'attributeChanged']); + testFunction(instance, 'color', 'color', true); + assert_equals(instance.getAttribute('style'), 'color: red !important;'); + var logEntries = element.takeLog(); + assert_array_equals(logEntries.types(), ['attributeChanged']); + assert_attribute_log_entry(logEntries.last(), {name: 'style', oldValue: 'color: red', newValue: 'color: red !important;', namespace: null}); + }, name + ' must enqueue an attributeChanged reaction when it makes a property important and the style attribute is observed'); + + test(function () { + var element = define_new_custom_element(['id']); + var instance = document.createElement(element.name); + instance.setAttribute('style', 'color: red'); + assert_array_equals(element.takeLog().types(), ['constructed']); + testFunction(instance, 'color', 'color', true); + assert_equals(instance.getAttribute('style'), 'color: red !important;'); + assert_array_equals(element.takeLog().types(), []); + }, name + ' must enqueue an attributeChanged reaction when it makes a property important but the style attribute is not observed'); +} diff --git a/tests/wpt/web-platform-tests/custom-elements/resources/custom-elements-helpers.js b/tests/wpt/web-platform-tests/custom-elements/resources/custom-elements-helpers.js index 0dfbd6363b2..956c562a76a 100644 --- a/tests/wpt/web-platform-tests/custom-elements/resources/custom-elements-helpers.js +++ b/tests/wpt/web-platform-tests/custom-elements/resources/custom-elements-helpers.js @@ -16,7 +16,215 @@ function test_with_window(f, name, srcdoc) { promise_test((t) => { return create_window_in_test(t, srcdoc) .then((w) => { - f(w); + f(w, w.document); }); }, name); } + +function define_custom_element_in_window(window, name, observedAttributes) { + let log = []; + + class CustomElement extends window.HTMLElement { + constructor() { + super(); + log.push(create_constructor_log(this)); + } + attributeChangedCallback(...args) { + log.push(create_attribute_changed_callback_log(this, ...args)); + } + connectedCallback() { log.push(create_connected_callback_log(this)); } + disconnectedCallback() { log.push(create_disconnected_callback_log(this)); } + adoptedCallback(oldDocument, newDocument) { log.push({type: 'adopted', element: this, oldDocument: oldDocument, newDocument: newDocument}); } + } + CustomElement.observedAttributes = observedAttributes; + + window.customElements.define(name, CustomElement); + + return { + name: name, + class: CustomElement, + takeLog: function () { + let currentLog = log; log = []; + currentLog.types = () => currentLog.map((entry) => entry.type); + currentLog.last = () => currentLog[currentLog.length - 1]; + return currentLog; + } + }; +} + +function create_constructor_log(element) { + return {type: 'constructed', element: element}; +} + +function assert_constructor_log_entry(log, element) { + assert_equals(log.type, 'constructed'); + assert_equals(log.element, element); +} + +function create_connected_callback_log(element) { + return {type: 'connected', element: element}; +} + +function assert_connected_log_entry(log, element) { + assert_equals(log.type, 'connected'); + assert_equals(log.element, element); +} + +function create_disconnected_callback_log(element) { + return {type: 'disconnected', element: element}; +} + +function assert_disconnected_log_entry(log, element) { + assert_equals(log.type, 'disconnected'); + assert_equals(log.element, element); +} + +function assert_adopted_log_entry(log, element) { + assert_equals(log.type, 'adopted'); + assert_equals(log.element, element); +} + +function create_adopted_callback_log(element) { + return {type: 'adopted', element: element}; +} + +function create_attribute_changed_callback_log(element, name, oldValue, newValue, namespace) { + return { + type: 'attributeChanged', + element: element, + name: name, + namespace: namespace, + oldValue: oldValue, + newValue: newValue, + actualValue: element.getAttributeNS(namespace, name) + }; +} + +function assert_attribute_log_entry(log, expected) { + assert_equals(log.type, 'attributeChanged'); + assert_equals(log.name, expected.name); + assert_equals(log.oldValue, expected.oldValue); + assert_equals(log.newValue, expected.newValue); + assert_equals(log.actualValue, expected.newValue); + assert_equals(log.namespace, expected.namespace); +} + + +function define_new_custom_element(observedAttributes) { + let log = []; + let name = 'custom-element-' + define_new_custom_element._element_number++; + + class CustomElement extends HTMLElement { + constructor() { + super(); + log.push({type: 'constructed', element: this}); + } + attributeChangedCallback(...args) { + log.push(create_attribute_changed_callback_log(this, ...args)); + } + connectedCallback() { log.push({type: 'connected', element: this}); } + disconnectedCallback() { log.push({type: 'disconnected', element: this}); } + adoptedCallback(oldDocument, newDocument) { log.push({type: 'adopted', element: this, oldDocument: oldDocument, newDocument: newDocument}); } + } + CustomElement.observedAttributes = observedAttributes; + + customElements.define(name, CustomElement); + + return { + name: name, + class: CustomElement, + takeLog: function () { + let currentLog = log; log = []; + currentLog.types = () => currentLog.map((entry) => entry.type); + currentLog.last = () => currentLog[currentLog.length - 1]; + return currentLog; + } + }; +} +define_new_custom_element._element_number = 1; + +function document_types() { + return [ + { + name: 'the document', + create: function () { return Promise.resolve(document); }, + isOwner: true, + hasBrowsingContext: true, + }, + { + name: 'the document of the template elements', + create: function () { + return new Promise(function (resolve) { + var template = document.createElementNS('http://www.w3.org/1999/xhtml', 'template'); + var doc = template.content.ownerDocument; + if (!doc.documentElement) + doc.appendChild(doc.createElement('html')); + resolve(doc); + }); + }, + hasBrowsingContext: false, + }, + { + name: 'a new document', + create: function () { + return new Promise(function (resolve) { + var doc = new Document(); + doc.appendChild(doc.createElement('html')); + resolve(doc); + }); + }, + hasBrowsingContext: false, + }, + { + name: 'a cloned document', + create: function () { + return new Promise(function (resolve) { + var doc = document.cloneNode(false); + doc.appendChild(doc.createElement('html')); + resolve(doc); + }); + }, + hasBrowsingContext: false, + }, + { + name: 'a document created by createHTMLDocument', + create: function () { + return Promise.resolve(document.implementation.createHTMLDocument()); + }, + hasBrowsingContext: false, + }, + { + name: 'an HTML document created by createDocument', + create: function () { + return Promise.resolve(document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null)); + }, + hasBrowsingContext: false, + }, + { + name: 'the document of an iframe', + create: function () { + return new Promise(function (resolve, reject) { + var iframe = document.createElement('iframe'); + iframe.onload = function () { resolve(iframe.contentDocument); } + iframe.onerror = function () { reject('Failed to load an empty iframe'); } + document.body.appendChild(iframe); + }); + }, + hasBrowsingContext: true, + }, + { + name: 'an HTML document fetched by XHR', + create: function () { + return new Promise(function (resolve, reject) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'resources/empty-html-document.html'); + xhr.overrideMimeType('text/xml'); + xhr.onload = function () { resolve(xhr.responseXML); } + xhr.onerror = function () { reject('Failed to fetch the document'); } + xhr.send(); + }); + }, + hasBrowsingContext: false, + } + ]; +} diff --git a/tests/wpt/web-platform-tests/custom-elements/resources/empty-html-document.html b/tests/wpt/web-platform-tests/custom-elements/resources/empty-html-document.html new file mode 100644 index 00000000000..eaca3f49fd1 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/resources/empty-html-document.html @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/upgrading.html b/tests/wpt/web-platform-tests/custom-elements/upgrading.html new file mode 100644 index 00000000000..aaea0cb4a02 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/upgrading.html @@ -0,0 +1,190 @@ + + + +Custom Elements: Enqueue a custom element upgrade reaction + + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/upgrading/Node-cloneNode.html b/tests/wpt/web-platform-tests/custom-elements/upgrading/Node-cloneNode.html new file mode 100644 index 00000000000..61580f4184b --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/upgrading/Node-cloneNode.html @@ -0,0 +1,185 @@ + + + +Custom Elements: Upgrading + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-enqueue-reactions.html b/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-enqueue-reactions.html new file mode 100644 index 00000000000..8238eee624a --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-enqueue-reactions.html @@ -0,0 +1,158 @@ + + + +Custom Elements: Upgrading custom elements should enqueue attributeChanged and connected callbacks + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-parser-created-element.html b/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-parser-created-element.html new file mode 100644 index 00000000000..7cc3b18aeef --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/upgrading/upgrading-parser-created-element.html @@ -0,0 +1,97 @@ + + + +Custom Elements: Upgrading unresolved elements + + + + + + + +
                                                                                        + + + + + + + + diff --git a/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html b/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html index 742899c5002..62ee6bb6abf 100644 --- a/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html +++ b/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html @@ -97,4 +97,83 @@ test(function() { assert_equals(collection[4294967296], document.getElementById("4294967296")); assert_equals(collection[4294967297], document.getElementById("4294967297")); }, "Handling of property names that look like integers around 2^32"); + +test(function() { + var elements = document.getElementsByTagName("foo"); + var old_item = elements[0]; + var old_desc = Object.getOwnPropertyDescriptor(elements, 0); + assert_equals(old_desc.value, old_item); + assert_true(old_desc.enumerable); + assert_true(old_desc.configurable); + assert_false(old_desc.writable); + + elements[0] = 5; + assert_equals(elements[0], old_item); + assert_throws(new TypeError(), function() { + "use strict"; + elements[0] = 5; + }); + assert_throws(new TypeError(), function() { + Object.defineProperty(elements, 0, { value: 5 }); + }); + + delete elements[0]; + assert_equals(elements[0], old_item); + + assert_throws(new TypeError(), function() { + "use strict"; + delete elements[0]; + }); + assert_equals(elements[0], old_item); +}, 'Trying to set an expando that would shadow an already-existing indexed property'); + +test(function() { + var elements = document.getElementsByTagName("foo"); + var idx = elements.length; + var old_item = elements[idx]; + var old_desc = Object.getOwnPropertyDescriptor(elements, idx); + assert_equals(old_item, undefined); + assert_equals(old_desc, undefined); + + // [[DefineOwnProperty]] will disallow defining an indexed expando. + elements[idx] = 5; + assert_equals(elements[idx], undefined); + assert_throws(new TypeError(), function() { + "use strict"; + elements[idx] = 5; + }); + assert_throws(new TypeError(), function() { + Object.defineProperty(elements, idx, { value: 5 }); + }); + + // Check that deletions out of range do not throw + delete elements[idx]; + (function() { + "use strict"; + delete elements[idx]; + })(); +}, 'Trying to set an expando with an indexed property name past the end of the list'); + +test(function(){ + var elements = document.getElementsByTagName("foo"); + var old_item = elements[0]; + var old_desc = Object.getOwnPropertyDescriptor(elements, 0); + assert_equals(old_desc.value, old_item); + assert_true(old_desc.enumerable); + assert_true(old_desc.configurable); + assert_false(old_desc.writable); + + Object.prototype[0] = 5; + this.add_cleanup(function () { delete Object.prototype[0]; }); + assert_equals(elements[0], old_item); + + delete elements[0]; + assert_equals(elements[0], old_item); + + assert_throws(new TypeError(), function() { + "use strict"; + delete elements[0]; + }); + assert_equals(elements[0], old_item); +}, 'Trying to delete an indexed property name should never work'); diff --git a/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html b/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html index a37163b7d18..0a9df1ad660 100644 --- a/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html +++ b/tests/wpt/web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html @@ -51,4 +51,85 @@ test(function () { assert_array_equals(Object.getOwnPropertyNames(elements), ['0', 'someProperty']); }, 'Object.getOwnPropertyNames on HTMLCollection with expando object'); + +test(function() { + var elements = document.getElementsByTagName("span"); + var old_item = elements["some-id"]; + var old_desc = Object.getOwnPropertyDescriptor(elements, "some-id"); + assert_equals(old_desc.value, old_item); + assert_false(old_desc.enumerable); + assert_true(old_desc.configurable); + assert_false(old_desc.writable); + + elements["some-id"] = 5; + assert_equals(elements["some-id"], old_item); + assert_throws(new TypeError(), function() { + "use strict"; + elements["some-id"] = 5; + }); + assert_throws(new TypeError(), function() { + Object.defineProperty(elements, "some-id", { value: 5 }); + }); + + delete elements["some-id"]; + assert_equals(elements["some-id"], old_item); + + assert_throws(new TypeError(), function() { + "use strict"; + delete elements["some-id"]; + }); + assert_equals(elements["some-id"], old_item); + +}, 'Trying to set an expando that would shadow an already-existing named property'); + +test(function() { + var elements = document.getElementsByTagName("span"); + var old_item = elements["new-id"]; + var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id"); + assert_equals(old_item, undefined); + assert_equals(old_desc, undefined); + + elements["new-id"] = 5; + assert_equals(elements["new-id"], 5); + + var span = document.createElement("span"); + this.add_cleanup(function () {span.remove();}); + span.id = "new-id"; + document.body.appendChild(span); + + assert_equals(elements.namedItem("new-id"), span); + assert_equals(elements["new-id"], 5); + + delete elements["new-id"]; + assert_equals(elements["new-id"], span); +}, 'Trying to set an expando that shadows a named property that gets added later'); + +test(function() { + var elements = document.getElementsByTagName("span"); + var old_item = elements["new-id2"]; + var old_desc = Object.getOwnPropertyDescriptor(elements, "new-id2"); + assert_equals(old_item, undefined); + assert_equals(old_desc, undefined); + + Object.defineProperty(elements, "new-id2", { configurable: false, writable: + false, value: 5 }); + assert_equals(elements["new-id2"], 5); + + var span = document.createElement("span"); + this.add_cleanup(function () {span.remove();}); + span.id = "new-id2"; + document.body.appendChild(span); + + assert_equals(elements.namedItem("new-id2"), span); + assert_equals(elements["new-id2"], 5); + + delete elements["new-id2"]; + assert_equals(elements["new-id2"], 5); + + assert_throws(new TypeError(), function() { + "use strict"; + delete elements["new-id2"]; + }); + assert_equals(elements["new-id2"], 5); +}, 'Trying to set a non-configurable expando that shadows a named property that gets added later'); diff --git a/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html new file mode 100644 index 00000000000..760116beae9 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html @@ -0,0 +1,204 @@ + +Synthetic click event "magic" + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/dom/events/Event-dispatch-other-document.html b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-other-document.html new file mode 100644 index 00000000000..0252a4f7b61 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-other-document.html @@ -0,0 +1,22 @@ + +Custom event on an element in another document + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/dom/events/ProgressEvent.html b/tests/wpt/web-platform-tests/dom/events/ProgressEvent.html index aa947e3f2ce..dee090016c4 100644 --- a/tests/wpt/web-platform-tests/dom/events/ProgressEvent.html +++ b/tests/wpt/web-platform-tests/dom/events/ProgressEvent.html @@ -17,9 +17,4 @@ test(function() { assert_true(ev.timeStamp > 0) assert_true("initEvent" in ev) }, "Default event values.") -test(function() { - var e = document.createEvent("ProgressEvent"); - var eProto = Object.getPrototypeOf(e); - assert_equals(eProto, ProgressEvent.prototype); -}, "document.createEvent() should work with ProgressEvent."); diff --git a/tests/wpt/web-platform-tests/dom/lists/DOMTokenList-iteration.html b/tests/wpt/web-platform-tests/dom/lists/DOMTokenList-iteration.html index 1911f7bb32a..321bbe00da4 100644 --- a/tests/wpt/web-platform-tests/dom/lists/DOMTokenList-iteration.html +++ b/tests/wpt/web-platform-tests/dom/lists/DOMTokenList-iteration.html @@ -41,7 +41,9 @@ assert_equals(list[Symbol.iterator], Array.prototype[Symbol.iterator]); assert_equals(list.keys, Array.prototype.keys); - assert_equals(list.values, Array.prototype.values); + if (Array.prototype.values) { + assert_equals(list.values, Array.prototype.values); + } assert_equals(list.entries, Array.prototype.entries); assert_equals(list.forEach, Array.prototype.forEach); }); diff --git a/tests/wpt/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html b/tests/wpt/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html index f4b63587126..94f8ba5bcc0 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html +++ b/tests/wpt/web-platform-tests/dom/nodes/DOMImplementation-createDocument.html @@ -140,7 +140,7 @@ test(function() { assert_equals(doc.URL, "about:blank") assert_equals(doc.documentURI, "about:blank") assert_equals(doc.createElement("DIV").localName, "DIV"); - }, "createDocument test " + i + ": metadata for " + + }, "createDocument test: metadata for " + [namespace, qualifiedName, doctype].map(my_format_value)) test(function() { @@ -148,7 +148,7 @@ test(function() { assert_equals(doc.characterSet, "UTF-8", "characterSet"); assert_equals(doc.charset, "UTF-8", "charset"); assert_equals(doc.inputEncoding, "UTF-8", "inputEncoding"); - }, "createDocument test " + i + ": characterSet aliases for " + + }, "createDocument test: characterSet aliases for " + [namespace, qualifiedName, doctype].map(my_format_value)) } }) diff --git a/tests/wpt/web-platform-tests/dom/nodes/Document-createElement.html b/tests/wpt/web-platform-tests/dom/nodes/Document-createElement.html index 59fa02d83f5..bacaff0f6a0 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/Document-createElement.html +++ b/tests/wpt/web-platform-tests/dom/nodes/Document-createElement.html @@ -9,6 +9,8 @@
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/dom/nodes/Document-createElementNS.html b/tests/wpt/web-platform-tests/dom/nodes/Document-createElementNS.html index 75005a09e2e..68341bcd44f 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/Document-createElementNS.html +++ b/tests/wpt/web-platform-tests/dom/nodes/Document-createElementNS.html @@ -6,59 +6,87 @@
                                                                                        + + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-appendData.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-appendData.html new file mode 100644 index 00000000000..1d4879d57c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-appendData.html @@ -0,0 +1,14 @@ + +Range mutation tests - appendData + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-dataChange.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-dataChange.html new file mode 100644 index 00000000000..3683e8bb9bb --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-dataChange.html @@ -0,0 +1,14 @@ + +Range mutation tests - update data by IDL attributes + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-deleteData.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-deleteData.html new file mode 100644 index 00000000000..5f2b852f5b1 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-deleteData.html @@ -0,0 +1,14 @@ + +Range mutation tests - deleteData + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html new file mode 100644 index 00000000000..c71b239547c --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertBefore.html @@ -0,0 +1,14 @@ + +Range mutation tests - insertBefore + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertData.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertData.html new file mode 100644 index 00000000000..fca533d5031 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-insertData.html @@ -0,0 +1,14 @@ + +Range mutation tests - insertData + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-removeChild.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-removeChild.html new file mode 100644 index 00000000000..a8d23812530 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-removeChild.html @@ -0,0 +1,14 @@ + +Range mutation tests - removeChild + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html new file mode 100644 index 00000000000..a4ef0c365e6 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceChild.html @@ -0,0 +1,14 @@ + +Range mutation tests - replaceChild + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceData.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceData.html new file mode 100644 index 00000000000..55ddb146ea2 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-replaceData.html @@ -0,0 +1,14 @@ + +Range mutation tests - replaceData + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-splitText.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-splitText.html new file mode 100644 index 00000000000..fbb4c8d9b6d --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations-splitText.html @@ -0,0 +1,14 @@ + +Range mutation tests - splitText + + + +
                                                                                        + + + + + diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations.html b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations.js similarity index 95% rename from tests/wpt/web-platform-tests/dom/ranges/Range-mutations.html rename to tests/wpt/web-platform-tests/dom/ranges/Range-mutations.js index ef99ca2ef04..3837de92828 100644 --- a/tests/wpt/web-platform-tests/dom/ranges/Range-mutations.html +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-mutations.js @@ -1,13 +1,3 @@ - -Range mutation tests - - - -
                                                                                        - - - - diff --git a/tests/wpt/web-platform-tests/domparsing/OWNERS b/tests/wpt/web-platform-tests/domparsing/OWNERS index 8aeebafa5f5..892cbb237fc 100644 --- a/tests/wpt/web-platform-tests/domparsing/OWNERS +++ b/tests/wpt/web-platform-tests/domparsing/OWNERS @@ -1,4 +1,2 @@ -@sideshowbarker @ChrisParis -@deniak @jdm diff --git a/tests/wpt/web-platform-tests/domparsing/createContextualFragment.html b/tests/wpt/web-platform-tests/domparsing/createContextualFragment.html index ce7d813583c..d81186a9dd6 100644 --- a/tests/wpt/web-platform-tests/domparsing/createContextualFragment.html +++ b/tests/wpt/web-platform-tests/domparsing/createContextualFragment.html @@ -119,12 +119,14 @@ var tests = [ [" in a different namespace shouldn't be special", document.createElementNS("http://fake-namespace", "html"), "

                                                                                        ", document.createElement("div"), "

                                                                                        "], + ["SVG namespace shouldn't be special", + document.createElementNS("http://www.w3.org/2000/svg", "div"), "

                                                                                        ", + document.createElement("div"), "

                                                                                        "], ["null should be stringified", document.createElement("span"), null, document.createElement("span"), "null"], - ["undefined should be stringified", document.createElement("span"), undefined, document.createElement("span"), "undefined"]/*, - // FIXME: Spec doesn't say what to do about non-Elements! - ["Text nodes?", - document.createTextNode("?"), "", - document.createTextNode("?"), ""]*/ + ["undefined should be stringified", document.createElement("span"), undefined, document.createElement("span"), "undefined"], + ["Text nodes shouldn't be special", + document.createTextNode("?"), "

                                                                                        ", + document.createElement("div"), "

                                                                                        "] ]; generate_tests(testEquivalence, tests); diff --git a/tests/wpt/web-platform-tests/domparsing/innerhtml-02.html b/tests/wpt/web-platform-tests/domparsing/innerhtml-02.html deleted file mode 100644 index e80c886b6c6..00000000000 --- a/tests/wpt/web-platform-tests/domparsing/innerhtml-02.html +++ /dev/null @@ -1,126 +0,0 @@ - -innerHTML in HTML - - - - -

                                                                                        - \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/dpub-aam/OWNERS b/tests/wpt/web-platform-tests/dpub-aam/OWNERS new file mode 100644 index 00000000000..35ae0f6c00b --- /dev/null +++ b/tests/wpt/web-platform-tests/dpub-aam/OWNERS @@ -0,0 +1 @@ +@halindrome diff --git a/tests/wpt/web-platform-tests/dpub-aam/README.md b/tests/wpt/web-platform-tests/dpub-aam/README.md new file mode 100644 index 00000000000..ce480494440 --- /dev/null +++ b/tests/wpt/web-platform-tests/dpub-aam/README.md @@ -0,0 +1,64 @@ +dpub-aam: Tests for the DPUB-ARIA Accessibility Mapping Recommendation +====================================================================== + +The [DPUB ARIA Recommendation](https://www.w3.org/TR/dpub-aam-1.0) +define extensions to HTML4/5 for support of extended semantics. These +semantics make it easier for Assistive Technologies to intepret and +present content to users with varying physical and cognitive abilities. + +The purpose of these tests is to help ensure that user agents support the +requirements of the Recommendation. + +The general approach for this testing is to enable both manual and automated +testing, with a preference for automation. + + +Running Tests +------------- + +In order to run these tests in an automated fashion, you will need to have a +special Assistive Technology Test Adapter (ATTA) for the platform under test. We will +provide a list of these for popular platforms here as they are made available. + +The ATTA will monitor the window under test via the platforms Accessibility +Layer, forwarding information about the Accessibility Tree to the running test +so that it can evaluate support for the various features under test. + +The workflow for running these tests is something like: + +1. Start up the ATTA for the platform under test. +2. Start up the test driver window and select the dpub-aam tests to be run + (e.g., the DPUB AAM 1.0 tests) - click "Start" +3. A window pops up that shows a test - the description of which tells the + tester what is being tested. In an automated test, the test with proceed + without user intervention. In a manual test, some user input may be required + in order to stimulate the test. +4. The test runs. Success or failure is determined and reported to the test + driver window, which then cycles to the next test in the sequence. +5. Repeat steps 2-4 until done. +6. Download the JSON format report of test results, which can then be visually + inspected, reported on using various tools, or passed on to W3C for + evaluation and collection in the Implementation Report via github. + +**Remember that while these tests are written to help exercise implementations, +their other (important) purpose is to increase confidence that there are +interoperable implementations.** So, implementers are the audience, but these +tests are not meant to be a comprehensive collection of tests for a client that +might implement the Recommendation. + + +Capturing and Reporting Results +------------------------------- + +As tests are run against implementations, if the results of testing are +submitted to [test-results](https://github.com/w3c/test-results/) then they will +be automatically included in documents generated by +[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used +locally to view reports about recorded results. + + +Writing Tests +------------- + +If you are interested in writing tests for this environment, see the +associated [CONTRIBUTING](CONTRIBUTING.md) document. diff --git a/tests/wpt/web-platform-tests/dpub-aria/OWNERS b/tests/wpt/web-platform-tests/dpub-aria/OWNERS new file mode 100644 index 00000000000..35ae0f6c00b --- /dev/null +++ b/tests/wpt/web-platform-tests/dpub-aria/OWNERS @@ -0,0 +1 @@ +@halindrome diff --git a/tests/wpt/web-platform-tests/dpub-aria/README.md b/tests/wpt/web-platform-tests/dpub-aria/README.md new file mode 100644 index 00000000000..b2ffb99fd51 --- /dev/null +++ b/tests/wpt/web-platform-tests/dpub-aria/README.md @@ -0,0 +1,64 @@ +dpub-aria: Tests for the DPUB-ARIA Recommendations +================================================== + +The [DPUB ARIA Recommendation](https://www.w3.org/TR/dpub-aria-1.0) +define extensions to HTML4/5 for support of extended semantics. These +semantics make it easier for Assistive Technologies to intepret and +present content to users with varying physical and cognitive abilities. + +The purpose of these tests is to help ensure that user agents support the +requirements of the Recommendation. + +The general approach for this testing is to enable both manual and automated +testing, with a preference for automation. + + +Running Tests +------------- + +In order to run these tests in an automated fashion, you will need to have a +special Assistive Technology Test Adapter (ATTA) for the platform under test. We will +provide a list of these for popular platforms here as they are made available. + +The ATTA will monitor the window under test via the platforms Accessibility +Layer, forwarding information about the Accessibility Tree to the running test +so that it can evaluate support for the various features under test. + +The workflow for running these tests is something like: + +1. Start up the ATTA for the platform under test. +2. Start up the test driver window and select the dpub -aria tests to be run + (e.g., the DPUB ARIA 1.0 tests) - click "Start" +3. A window pops up that shows a test - the description of which tells the + tester what is being tested. In an automated test, the test with proceed + without user intervention. In a manual test, some user input may be required + in order to stimulate the test. +4. The test runs. Success or failure is determined and reported to the test + driver window, which then cycles to the next test in the sequence. +5. Repeat steps 2-4 until done. +6. Download the JSON format report of test results, which can then be visually + inspected, reported on using various tools, or passed on to W3C for + evaluation and collection in the Implementation Report via github. + +**Remember that while these tests are written to help exercise implementations, +their other (important) purpose is to increase confidence that there are +interoperable implementations.** So, implementers are the audience, but these +tests are not meant to be a comprehensive collection of tests for a client that +might implement the Recommendation. + + +Capturing and Reporting Results +------------------------------- + +As tests are run against implementations, if the results of testing are +submitted to [test-results](https://github.com/w3c/test-results/) then they will +be automatically included in documents generated by +[wptreport](https://www.github.com/w3c/wptreport). The same tool can be used +locally to view reports about recorded results. + + +Writing Tests +------------- + +If you are interested in writing tests for this environment, see the +associated [CONTRIBUTING](CONTRIBUTING.md) document. diff --git a/tests/wpt/web-platform-tests/editing/other/restoration.html b/tests/wpt/web-platform-tests/editing/other/restoration.html new file mode 100644 index 00000000000..4c53008b410 --- /dev/null +++ b/tests/wpt/web-platform-tests/editing/other/restoration.html @@ -0,0 +1,90 @@ + + +Restoration of style tests + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/encoding/OWNERS b/tests/wpt/web-platform-tests/encoding/OWNERS index 4917e26650a..ec02022aea3 100644 --- a/tests/wpt/web-platform-tests/encoding/OWNERS +++ b/tests/wpt/web-platform-tests/encoding/OWNERS @@ -1,2 +1 @@ @inexorabletash -@sideshowbarker diff --git a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html index eb463e1add8..6462cd1f79b 100644 --- a/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html +++ b/tests/wpt/web-platform-tests/encoding/single-byte-decoder.html @@ -33,7 +33,7 @@ "windows-1252":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255], "windows-1253":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null], "windows-1254":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255], - "windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,null,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null], + "windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null], "windows-1256":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746], "windows-1257":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729], "windows-1258":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255], diff --git a/tests/wpt/web-platform-tests/encoding/textdecoder-fatal-single-byte.html b/tests/wpt/web-platform-tests/encoding/textdecoder-fatal-single-byte.html index 74bad255daf..d9bf412826f 100644 --- a/tests/wpt/web-platform-tests/encoding/textdecoder-fatal-single-byte.html +++ b/tests/wpt/web-platform-tests/encoding/textdecoder-fatal-single-byte.html @@ -28,7 +28,7 @@ var singleByteEncodings = [ {encoding: 'windows-1252', bad: []}, {encoding: 'windows-1253', bad: [0xAA, 0xD2, 0xFF]}, {encoding: 'windows-1254', bad: []}, - {encoding: 'windows-1255', bad: [0xCA, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xFB, 0xFC, 0xFF]}, + {encoding: 'windows-1255', bad: [0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xFB, 0xFC, 0xFF]}, {encoding: 'windows-1256', bad: []}, {encoding: 'windows-1257', bad: [0xA1, 0xA5]}, {encoding: 'windows-1258', bad: []}, diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clear-key-invalid-license.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clear-key-invalid-license.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clear-key-invalid-license.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clear-key-invalid-license.html index 4061c4fd512..f145dfad77e 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clear-key-invalid-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clear-key-invalid-license.html @@ -4,8 +4,11 @@ Invalid Clear Key License. +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clearkey-update-non-ascii-input.html similarity index 96% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clearkey-update-non-ascii-input.html index f9d00f904ab..cf237a7da8e 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-clearkey-update-non-ascii-input.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-clearkey-update-non-ascii-input.html @@ -4,8 +4,11 @@ Test Clear Key handling of non-ASCII responses for update(). +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html index 26bc02328d5..3ee4e8c542d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-sessions.html @@ -4,8 +4,11 @@ Verify MediaKeySession.keyStatuses with multiple sessions +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html index 514109d04fc..809045d99e5 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-keystatuses-multiple-updates.html @@ -4,8 +4,11 @@ Verify MediaKeySession.keyStatuses with multiple updates +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-onencrypted.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-onencrypted.html similarity index 94% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-onencrypted.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-onencrypted.html index 01d140454a4..ad408f0f313 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-onencrypted.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-onencrypted.html @@ -4,8 +4,11 @@ onencrypted + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-encrypted-and-clear-sources.html similarity index 98% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-encrypted-and-clear-sources.html index 4d0acda5b5a..495ba418803 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-playback-encrypted-and-clear-sources.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-encrypted-and-clear-sources.html @@ -4,8 +4,11 @@ Multiple playbacks alternating between encrypted and clear sources. + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html index 2a4adc340dd..8bf94e13c9d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-playback-multiple-sessions.html @@ -4,8 +4,11 @@ Clear Key Playback with Multiple Sessions + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-requestmediakeysystemaccess.html similarity index 99% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-requestmediakeysystemaccess.html index 68002d2a808..456f37f5774 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-requestmediakeysystemaccess.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-requestmediakeysystemaccess.html @@ -4,8 +4,11 @@ Test navigator.requestMediaKeySystemAccess() +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-reset-src-after-setmediakeys.html similarity index 96% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-reset-src-after-setmediakeys.html index dc2c1d53324..15c91a001c3 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-reset-src-after-setmediakeys.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-reset-src-after-setmediakeys.html @@ -4,8 +4,11 @@ Reset src after setMediaKeys() + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-session-closed-event.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-session-closed-event.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-session-closed-event.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-session-closed-event.html index 6f817f7b3e5..577047a251d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-session-closed-event.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-session-closed-event.html @@ -4,8 +4,11 @@ Test MediaKeySession closed event +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-playback.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-playback.html index 2106c937781..29f53b31d7a 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-playback.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-playback.html @@ -4,8 +4,11 @@ setMediaKeys() again after playback + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-resetting-src.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-resetting-src.html index ed7f2370271..8f6891b79c1 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-again-after-resetting-src.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-again-after-resetting-src.html @@ -4,8 +4,11 @@ setMediaKeys() again after resetting src + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-at-same-time.html similarity index 98% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-at-same-time.html index 62c63652969..01fd7b19402 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-at-same-time.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-at-same-time.html @@ -4,8 +4,11 @@ Set MediaKeys multiple times in parallel + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html similarity index 97% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html index bea28d0e176..31cc6107964 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-different-mediakeys.html @@ -4,8 +4,11 @@ setMediaKeys() multiple times with different MediaKeys. + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html index 93af8cceb7c..64ed315e0c9 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-multiple-times-with-the-same-mediakeys.html @@ -4,8 +4,11 @@ setMediaKeys() multiple times with the same MediaKeys. + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-to-multiple-video-elements.html similarity index 95% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-to-multiple-video-elements.html index 38c11ee74ef..fb8386e8cff 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys-to-multiple-video-elements.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys-to-multiple-video-elements.html @@ -4,8 +4,11 @@ setMediaKeys() on multiple video elements. + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys.html similarity index 96% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys.html index 5374c9a65c4..96b0fed974f 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-setmediakeys.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-setmediakeys.html @@ -4,8 +4,11 @@ setMediaKeys + diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-syntax.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-syntax.html similarity index 99% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-syntax.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-syntax.html index 0c960c86184..5c4c667cb99 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-syntax.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-syntax.html @@ -4,8 +4,11 @@ Test EME syntax + +
                                                                                        diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-utils.js b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-utils.js similarity index 100% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-utils.js rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-utils.js diff --git a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-waiting-for-a-key.html b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-waiting-for-a-key.html similarity index 98% rename from tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-waiting-for-a-key.html rename to tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-waiting-for-a-key.html index 3469b159ad0..2af37cfb9af 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/Google/encrypted-media-waiting-for-a-key.html +++ b/tests/wpt/web-platform-tests/encrypted-media/Google/migrated_to_root_disabled/encrypted-media-waiting-for-a-key.html @@ -4,8 +4,11 @@ Waiting for a key. + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-events-session-closed-event.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events-session-closed-event.html new file mode 100644 index 00000000000..ddf3ecbbbf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events-session-closed-event.html @@ -0,0 +1,40 @@ + + + + + Encrypted Media Extensions - Test MediaKeySession closed event with Clear Key, mp4 + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.html index 31bcc40636f..4f3b6222b86 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.html @@ -31,10 +31,11 @@ getSupportedContent( 'org.w3.clearkey' ) .then( function( contents ) { - var handler = new MessageHandler( 'org.w3.clearkey', contents[ 0 ] ); + var content = contents.filter(function(content) { return content.keys; })[0], + handler = new MessageHandler( 'org.w3.clearkey', content ); runTest( { keysystem: 'org.w3.clearkey', - content: contents[ 0 ], + content: content, messagehandler: handler.messagehandler, } ); } ); diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.html new file mode 100644 index 00000000000..09ff934a04d --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.html @@ -0,0 +1,31 @@ + + + + + Encrypted Media Extensions: Test handling of invalid Clear Key license + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html index 0d6086d3851..3474f9d5151 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html @@ -33,7 +33,7 @@ .then( function( contents ) { // Select a content item with multiple keys - var contentitem = contents.filter( function( item ) { return item.keys.length > 1; } )[ 0 ], + var contentitem = contents.filter( function( item ) { return item.keys && item.keys.length > 1; } )[ 0 ], handler = new MessageHandler( 'org.w3.clearkey', contentitem ); var config = { keysystem: 'org.w3.clearkey', diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.html index 4fad37e5eb7..6edec35cd02 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.html @@ -33,7 +33,7 @@ .then( function( contents ) { // Select a content item with multiple keys - var contentitem = contents.filter( function( item ) { return item.keys.length > 1; } )[ 0 ]; + var contentitem = contents.filter( function( item ) { return item.keys && item.keys.length > 1; } )[ 0 ]; var handler = new MessageHandler( 'org.w3.clearkey', contentitem ); var config = { keysystem: 'org.w3.clearkey', content: contentitem, diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html new file mode 100644 index 00000000000..9eca41cc08b --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, clear then encrypted + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html new file mode 100644 index 00000000000..884d22d7577 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html @@ -0,0 +1,59 @@ + + + + + + Encrypted Media Extensions: Successful Playback, alternate Encrypted and Clear playbacks, Temporary, mp4, Clear Key + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html new file mode 100644 index 00000000000..1e190246372 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, encrypted then clear + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html new file mode 100644 index 00000000000..66313e727e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html @@ -0,0 +1,55 @@ + + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, multiple keys in sequence, check readyState + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html new file mode 100644 index 00000000000..64b00cd2902 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html @@ -0,0 +1,54 @@ + + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, multiple keys in sequence + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html new file mode 100644 index 00000000000..f8402c99a56 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html @@ -0,0 +1,40 @@ + + + + + + Encrypted Media Extensions: requestMediaKeySystemAccess tests, Clear Key + + + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html new file mode 100644 index 00000000000..61da9d86743 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html @@ -0,0 +1,47 @@ + + + + + Encrypted Media Extensions - Reset MediaSource after setMediaKeys for Clear Key, mp4 + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html new file mode 100644 index 00000000000..697cf207cfb --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: setMediaKeys again after playback with Clear Key + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html new file mode 100644 index 00000000000..d695445ef1f --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: setMediaKeys again after resetting src attribute on video element with Clear Key + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html new file mode 100644 index 00000000000..91e6b9ec3f3 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple at same time with Clear Key + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html new file mode 100644 index 00000000000..064d7ed05c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html @@ -0,0 +1,49 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple times with different mediakeys with Clear Key + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html new file mode 100644 index 00000000000..9e383afc3cc --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html @@ -0,0 +1,49 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple times with the same mediakeys with Clear Key + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html new file mode 100644 index 00000000000..cf73b8085c6 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html @@ -0,0 +1,47 @@ + + + + + Encrypted Media Extensions: setMediaKeys to multiple video elements with Clear Key + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.html new file mode 100644 index 00000000000..2865052c65d --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions: setMediaKeys with Clear Key + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html new file mode 100644 index 00000000000..6b4a08a9171 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html @@ -0,0 +1,42 @@ + + + + + Encrypted Media Extensions - Test MediaKeys attribute, setServerCertificate and setServerCertificate exception syntax for Clear Key, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html new file mode 100644 index 00000000000..2748c31a57f --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html @@ -0,0 +1,42 @@ + + + + + Encrypted Media Extensions - Test MediaKeySession attribute and function syntax for Clear Key, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html new file mode 100644 index 00000000000..22e72ccc82d --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html @@ -0,0 +1,42 @@ + + + + + Encrypted Media Extensions - Test navigator.requestmediakeysystemaccess exception and MediaKeySystemAccess attribute syntax for Clear Key, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html new file mode 100644 index 00000000000..2871862dd40 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions: Unique origin with Clear Key, mp4 + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.html new file mode 100644 index 00000000000..e5061a76542 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.html @@ -0,0 +1,28 @@ + + + + + Encrypted Media Extensions - Test handling of invalid responses for update() for Clear Key, mp4 + + + + + + + + + + + + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html new file mode 100644 index 00000000000..2876a54a479 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html @@ -0,0 +1,52 @@ + + + + + Encrypted Media Extensions - Waiting for a key for Clear Key, mp4 + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.html new file mode 100644 index 00000000000..cc134729140 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.html @@ -0,0 +1,36 @@ + + + + + Encrypted Media Extensions: Test Clear Key handling of non-ASCII responses for update() + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/content-metadata.js b/tests/wpt/web-platform-tests/encrypted-media/content/content-metadata.js index 31c6e3d6c60..8ba5bcf06c2 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/content/content-metadata.js +++ b/tests/wpt/web-platform-tests/encrypted-media/content/content-metadata.js @@ -1,5 +1,14 @@ content = addMemberListToObject( { - 'mp4-basic' : { initDataType: 'cenc', + + 'mp4-clear' : { initDataType: 'cenc', + audio : { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video : { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_clear_dashinit.mp4' } + }, + + 'mp4-basic' : { assetId: 'mp4-basic', + initDataType: 'cenc', audio : { type: 'audio/mp4;codecs="mp4a.40.2"', path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, video : { type: 'video/mp4;codecs="avc1.4d401e"', @@ -10,7 +19,35 @@ content = addMemberListToObject( { initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrAFQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjAHQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsAGUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] }, + 'mp4-clear-encrypted' : { + assetId: 'mp4-basic', + initDataType: 'cenc', + audio : { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video : { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_clear_enc_dashinit.mp4' }, + keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], + key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], + initDataType: 'cenc', + initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrAFQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjAHQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsAGUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] + }, + + 'mp4-encrypted-clear' : { + assetId: 'mp4-basic', + initDataType: 'cenc', + audio : { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video : { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_enc_clear_dashinit.mp4' }, + keys : [ { kid: [ 0xad, 0x13, 0xf9, 0xea, 0x2b, 0xe6, 0x98, 0xb8, 0x75, 0xf5, 0x04, 0xa8, 0xe3, 0xcc, 0xea, 0x64 ], + key: [ 0xbe, 0x7d, 0xf8, 0xa3, 0x66, 0x7a, 0x6a, 0x8f, 0xd5, 0x64, 0xd0, 0xed, 0x81, 0x33, 0x9a, 0x95 ], + initDataType: 'cenc', + initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFEIARIQrRP56ivmmLh19QSo48zqZBoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADYAdgBrAFQAcgBlAFkAcgB1AEoAaAAxADkAUQBTAG8ANAA4AHoAcQBaAEEAPQA9ADwALwBLAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AagBZAEYATgBmADAAeQBmADQAaQBzAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjAHQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsAGUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] + }, + + 'mp4-av-multikey' : { + assetId: 'mp4-basic', initDataType: 'cenc', associatedInitData: true, // indicates that initData for one key causes other keys to be returned as well audio: { type: 'audio/mp4;codecs="mp4a.40.2"', @@ -27,20 +64,64 @@ content = addMemberListToObject( { initData: 'AAAAcXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAFEIARIQVY7lQbkKsvOVDQCt43YNRRoIY2FzdGxhYnMiKGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRjMmx1WjJ4bEluMD0yB2RlZmF1bHQAAAMacHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAAC+voCAAABAAEA8AI8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFEAZQBXAE8AVgBRAHEANQA4ADcASwBWAEQAUQBDAHQANAAzAFkATgBSAFEAPQA9ADwALwBLAEkARAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AWQBpAE8ALwAxADYATABzADkANgBFAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwADoALwAvAHAAbABhAHkAcgBlAGEAZAB5AC4AZABpAHIAZQBjAHQAdABhAHAAcwAuAG4AZQB0AC8AcAByAC8AcwB2AGMALwByAGkAZwBoAHQAcwBtAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA/AFAAbABhAHkAUgBpAGcAaAB0AD0AMQAmAGEAbQBwADsAVQBzAGUAUwBpAG0AcABsAGUATgBvAG4AUABlAHIAcwBpAHMAdABlAG4AdABMAGkAYwBlAG4AcwBlAD0AMQA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==' } ] }, - 'mp4-multikey' : { initDataType: 'cenc', + 'mp4-multikey' : { assetId: 'mp4-multikey', + initDataType: 'cenc', audio: { type: 'audio/mp4;codecs="mp4a.40.2"', path: '/encrypted-media/content/audio_aac-lc_128k_2keys_2sess.mp4' }, video: { type: 'video/mp4;codecs="avc1.4d401e"', path: '/encrypted-media/content/video_512x288_h264-360k_enc_2keys_2sess.mp4' }, keys: [ { kid: [ 0x13, 0xa7, 0x53, 0x06, 0xd1, 0x18, 0x91, 0x7b, 0x47, 0xa6, 0xc1, 0x83, 0x64, 0x42, 0x51, 0x6f ], key: [ 0x8a, 0xaa, 0xd8, 0xc4, 0xdb, 0xde, 0xac, 0xcd, 0xad, 0x26, 0x76, 0xa1, 0xed, 0x38, 0x95, 0x2e ], + variantId: 'key1', initDataType: 'cenc', initData: 'AAAAjXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAG0IARIQE6dTBtEYkXtHpsGDZEJRbxoIY2FzdGxhYnMiRGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRNbk5sYzNOcGIyNGlMQ0oyWVhKcFlXNTBTV1FpT2lKclpYa3hJbjA9MgdkZWZhdWx0AAADwnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAA6KiAwAAAQABAJgDPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBCAGwATwBuAEUAeABqAFIAZQA1AEYASABwAHMARwBEAFoARQBKAFIAYgB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AcwB0AGEAZwBpAG4AZwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAFUASQBfAFUAUgBMAD4APABDAEgARQBDAEsAUwBVAE0APgBJAEQAUgB0AFAAZwBVAEkALwBiAEkAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=' }, { kid: [ 0xee, 0x73, 0x56, 0x4e, 0xc8, 0xa8, 0x90, 0xf0, 0x78, 0xef, 0x68, 0x71, 0xfa, 0x4b, 0xe1, 0x8b ], key: [ 0xe4, 0x4f, 0xe1, 0x45, 0x7c, 0x5e, 0xbc, 0xd8, 0x3e, 0xad, 0xdc, 0xd6, 0x2c, 0xaf, 0x55, 0x18 ], - initDataType: 'cenc', + variantId: 'key2', + initDataType: 'cenc', initData: 'AAAAjXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAG0IARIQ7nNWTsiokPB472hx+kvhixoIY2FzdGxhYnMiRGV5SmhjM05sZEVsa0lqb2laVzFsTFhSbGMzUXRNbk5sYzNOcGIyNGlMQ0oyWVhKcFlXNTBTV1FpT2lKclpYa3lJbjA9MgdkZWZhdWx0AAADwnBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAA6KiAwAAAQABAJgDPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgBUAGwAWgB6ADcAcQBqAEkAOABKAEIANAA3ADIAaAB4ACsAawB2AGgAaQB3AD0APQA8AC8ASwBJAEQAPgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGwAaQBjAC4AcwB0AGEAZwBpAG4AZwAuAGQAcgBtAHQAbwBkAGEAeQAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQAtAHAAcgBvAHgAeQAtAGgAZQBhAGQAZQByAGEAdQB0AGgALwBkAHIAbQB0AG8AZABhAHkALwBSAGkAZwBoAHQAcwBNAGEAbgBhAGcAZQByAC4AYQBzAG0AeAA8AC8ATABBAF8AVQBSAEwAPgA8AEwAVQBJAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAFUASQBfAFUAUgBMAD4APABDAEgARQBDAEsAUwBVAE0APgB4AEQASwBBAFkAMAB2AFoAaABVAFUAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=' } ] }, + 'mp4-basic-key1' : { assetId: 'mp4-multikey-sequential', + variantId: 'key1', + initDataType: 'cenc', + audio: { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video: { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4' }, + keys: [ { kid: [0x8a, 0x0d, 0x85, 0x45, 0x21, 0x05, 0xd4, 0x15, 0x35, 0x8f, 0xea, 0x8f, 0x68, 0xe6, 0xc1, 0x91], + key: [0x76, 0x6f, 0xab, 0xc1, 0x68, 0x3f, 0xf8, 0xef, 0x4e, 0x76, 0x00, 0x24, 0xc5, 0x23, 0x8f, 0x10], + initDataType: 'cenc', + initData: 'AAAAlXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHUIARIQig2FRSEF1BU1j+qPaObBkRoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhreEluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFIAWQBVAE4AaQBnAFUAaABGAGQAUQAxAGoAKwBxAFAAYQBPAGIAQgBrAFEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AcQBOAEkAZQBiAFQAWABzAG8AcgBnAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] + }, + 'mp4-basic-key2' : { assetId: 'mp4-multikey-sequential', + variantId: 'key2', + initDataType: 'cenc', + audio: { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video: { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_multikey_key2_dashinit.mp4' }, + keys: [ { kid: [0xfb, 0xb4, 0xb7, 0xf3, 0x4a, 0xbd, 0x31, 0x87, 0x34, 0x4b, 0xce, 0xc4, 0x5f, 0x96, 0x68, 0x88], + key: [0x26, 0x52, 0xc3, 0x1d, 0xf7, 0x92, 0xd1, 0x7b, 0x08, 0xa6, 0xfa, 0xd3, 0x7c, 0xb6, 0x25, 0x60], + initDataType: 'cenc', + initData: 'AAAAlXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHUIARIQ+7S380q9MYc0S87EX5ZoiBoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhreUluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADgANwBlADAAKwA3ADEASwBoAHoARQAwAFMAOAA3AEUAWAA1AFoAbwBpAEEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgB0AGkASQBoADYAUwBKAG0AcABZAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] }, + + 'mp4-multikey-sequential' : { assetId: 'mp4-multikey-sequential', + initDataType: 'cenc', + audio: { type: 'audio/mp4;codecs="mp4a.40.2"', + path: '/encrypted-media/content/audio_aac-lc_128k_dashinit.mp4' }, + video: { type: 'video/mp4;codecs="avc1.4d401e"', + path: '/encrypted-media/content/video_512x288_h264-360k_multikey_dashinit.mp4' }, + keys: [ { kid: [0x8a, 0x0d, 0x85, 0x45, 0x21, 0x05, 0xd4, 0x15, 0x35, 0x8f, 0xea, 0x8f, 0x68, 0xe6, 0xc1, 0x91], + key: [0x76, 0x6f, 0xab, 0xc1, 0x68, 0x3f, 0xf8, 0xef, 0x4e, 0x76, 0x00, 0x24, 0xc5, 0x23, 0x8f, 0x10], + variantId: 'key1', + initDataType: 'cenc', + initData: 'AAAAlXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHUIARIQig2FRSEF1BU1j+qPaObBkRoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhreEluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+AFIAWQBVAE4AaQBnAFUAaABGAGQAUQAxAGoAKwBxAFAAYQBPAGIAQgBrAFEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4AcQBOAEkAZQBiAFQAWABzAG8AcgBnAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' }, + { kid: [0xfb, 0xb4, 0xb7, 0xf3, 0x4a, 0xbd, 0x31, 0x87, 0x34, 0x4b, 0xce, 0xc4, 0x5f, 0x96, 0x68, 0x88], + key: [0x26, 0x52, 0xc3, 0x1d, 0xf7, 0x92, 0xd1, 0x7b, 0x08, 0xa6, 0xfa, 0xd3, 0x7c, 0xb6, 0x25, 0x60], + variantId: 'key2', + initDataType: 'cenc', + initData: 'AAAAlXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAHUIARIQ+7S380q9MYc0S87EX5ZoiBoIY2FzdGxhYnMiTGV5SmhjM05sZEVsa0lqb2liWEEwTFcxMWJIUnBhMlY1TFhObGNYVmxiblJwWVd3aUxDSjJZWEpwWVc1MFNXUWlPaUpyWlhreUluMD0yB2RlZmF1bHQAAANYcHNzaAAAAACaBPB5mEBChquS5lvgiF+VAAADODgDAAABAAEALgM8AFcAUgBNAEgARQBBAEQARQBSACAAeABtAGwAbgBzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8ARABSAE0ALwAyADAAMAA3AC8AMAAzAC8AUABsAGEAeQBSAGUAYQBkAHkASABlAGEAZABlAHIAIgAgAHYAZQByAHMAaQBvAG4APQAiADQALgAwAC4AMAAuADAAIgA+ADwARABBAFQAQQA+ADwAUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEUAWQBMAEUATgA+ADEANgA8AC8ASwBFAFkATABFAE4APgA8AEEATABHAEkARAA+AEEARQBTAEMAVABSADwALwBBAEwARwBJAEQAPgA8AC8AUABSAE8AVABFAEMAVABJAE4ARgBPAD4APABLAEkARAA+ADgANwBlADAAKwA3ADEASwBoAHoARQAwAFMAOAA3AEUAWAA1AFoAbwBpAEEAPQA9ADwALwBLAEkARAA+ADwATABBAF8AVQBSAEwAPgBoAHQAdABwAHMAOgAvAC8AbABpAGMALgBzAHQAYQBnAGkAbgBnAC4AZAByAG0AdABvAGQAYQB5AC4AYwBvAG0ALwBsAGkAYwBlAG4AcwBlAC0AcAByAG8AeAB5AC0AaABlAGEAZABlAHIAYQB1AHQAaAAvAGQAcgBtAHQAbwBkAGEAeQAvAFIAaQBnAGgAdABzAE0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwATABVAEkAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAGwAYQB5AHIAZQBhAGQAeQAtAHUAaQAuAGUAeABhAG0AcABsAGUALgBjAG8AbQA8AC8ATABVAEkAXwBVAFIATAA+ADwAQwBIAEUAQwBLAFMAVQBNAD4ARgB0AGkASQBoADYAUwBKAG0AcABZAD0APAAvAEMASABFAEMASwBTAFUATQA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A' } ] }, + 'webm' : { audio : { type: 'audio/webm; codecs="opus"' }, video : { type: 'video/webm; codecs="vp8"', path: '/encrypted-media/content/test-encrypted.webm' }, @@ -143,9 +224,11 @@ function getMultikeyInitDatas( contentitem, initDataType ) function getProprietaryInitDatas( contentitem ) { + var keysWithInitData = contentitem.keys.filter( function( k ) { return k.initData; } ); return { initDataType: contentitem.initDataType, - initDatas : contentitem.keys.filter( function( k ) { return k.initData; } ) - .map( function( k ) { return k.initData; } ) }; + initDatas : keysWithInitData.map( function( k ) { return k.initData; } ), + variantIds: keysWithInitData.map( function( k ) { return k.variantId; } ) + }; } // Returns a promise that resolves to the following object diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_dashinit.mp4 b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_dashinit.mp4 new file mode 100644 index 00000000000..33ac63f6bfd Binary files /dev/null and b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_dashinit.mp4 differ diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_enc_dashinit.mp4 b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_enc_dashinit.mp4 new file mode 100644 index 00000000000..dca23449af7 Binary files /dev/null and b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_clear_enc_dashinit.mp4 differ diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_enc_clear_dashinit.mp4 b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_enc_clear_dashinit.mp4 new file mode 100644 index 00000000000..d837ac65005 Binary files /dev/null and b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_enc_clear_dashinit.mp4 differ diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_dashinit.mp4 b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_dashinit.mp4 new file mode 100644 index 00000000000..659a61cdcf1 Binary files /dev/null and b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_dashinit.mp4 differ diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/.gitkeep b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4 similarity index 100% rename from tests/wpt/web-platform-tests/html/semantics/grouping-content/.gitkeep rename to tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4 diff --git a/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key2_dashinit.mp4 b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key2_dashinit.mp4 new file mode 100644 index 00000000000..0b9b457a6b3 Binary files /dev/null and b/tests/wpt/web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key2_dashinit.mp4 differ diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-events-session-closed-event.html b/tests/wpt/web-platform-tests/encrypted-media/drm-events-session-closed-event.html new file mode 100644 index 00000000000..425d17646ca --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-events-session-closed-event.html @@ -0,0 +1,39 @@ + + + + + Encrypted Media Extensions - Test MediaKeySession closed event with DRM, mp4 + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-events.html b/tests/wpt/web-platform-tests/encrypted-media/drm-events.html index 118ed204a36..880376d60da 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-events.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-events.html @@ -42,7 +42,7 @@ initDataType, initData; - var contentWithExplicitInitData = supported.filter( function( s ) { return s.content.initDataType; } ); + var contentWithExplicitInitData = supported.filter( function( s ) { return s.content.keys && s.content.initDataType; } ); if ( contentWithExplicitInitData.length > 0 ) { content = contentWithExplicitInitData[ 0 ].content; diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.html b/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.html new file mode 100644 index 00000000000..6dec511470b --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.html @@ -0,0 +1,67 @@ + + + + + Encrypted Media Extensions: Expiration with DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.html b/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.html new file mode 100644 index 00000000000..9584f499ce2 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.html @@ -0,0 +1,32 @@ + + + + + Encrypted Media Extensions: Test handling of invalid DRM license + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html index 40aab914182..8ef745c4fa7 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html @@ -2,7 +2,7 @@ - Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, multiple keys for audio/video + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, multiple keys for audio/video @@ -18,7 +18,7 @@ - + @@ -38,7 +38,7 @@ .then( function( contents ) { // Select a content item with multiple keys and initData - var contentitem = contents.filter( function( item ) { return item.keys.length > 1 && item.initDataType && !item.associatedInitData; } )[ 0 ], + var contentitem = contents.filter( function( item ) { return item.keys && item.keys.length > 1 && item.initDataType && !item.associatedInitData; } )[ 0 ], handler = new MessageHandler( keysystem, contentitem ), config = { keysystem: keysystem, content: contentitem, diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.html b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.html index de2cfd2a552..de7ff395d03 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.html @@ -33,7 +33,7 @@ getSupportedContent( keysystem ).then( function( contents ) { // Select a content item with multiple keys and initData that retrieves all keys var contentitem = contents.filter( function( item ) { - return item.keys.length > 1 && item.initDataType && item.associatedInitData; + return item.keys && item.keys.length > 1 && item.initDataType && item.associatedInitData; } )[ 0 ]; var handler = new MessageHandler( keysystem, contentitem ); diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.html new file mode 100644 index 00000000000..9e4aff330d4 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.html @@ -0,0 +1,47 @@ + + + + + Encrypted Media Extensions: Encrypted fired on encrypted media file with DRM, mp4 + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html index 3a164617462..d70dc9811f0 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html @@ -37,7 +37,8 @@ var keysystem = getSupportedKeySystem(), contentitem = content['mp4-basic'], handler = new MessageHandler( keysystem, contentitem, 'persistent-license' ), - config = { video: document.getElementById('videoelement'), + config = { content: contentitem, + video: document.getElementById('videoelement'), keysystem: keysystem, messagehandler: handler.messagehandler, audioPath: contentitem.audio.path, @@ -51,4 +52,4 @@ runTest(config); - \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html new file mode 100644 index 00000000000..a8621ba2552 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, clear then encrypted + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html new file mode 100644 index 00000000000..491e32a6fe8 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html @@ -0,0 +1,59 @@ + + + + + + Encrypted Media Extensions: Successful Playback, alternate Encrypted and Clear playbacks, Temporary, mp4, DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html new file mode 100644 index 00000000000..ed5ff23632e --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html @@ -0,0 +1,53 @@ + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, encrypted then clear + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html new file mode 100644 index 00000000000..a87687fbaca --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html @@ -0,0 +1,53 @@ + + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, expired license + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html new file mode 100644 index 00000000000..42d563a5de3 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html @@ -0,0 +1,58 @@ + + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, multiple keys in sequence, check readyState + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html new file mode 100644 index 00000000000..0b23721b6fa --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html @@ -0,0 +1,57 @@ + + + + + + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, multiple keys in sequence + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html index 4289af4a3c4..391ebf90724 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html @@ -36,6 +36,7 @@ var keysystem = getSupportedKeySystem(), contentitem = content['mp4-multikey'], handler = new MessageHandler( keysystem, contentitem ), + proprietaryInitDatas = getProprietaryInitDatas(contentitem), config = { video: document.getElementById('videoelement'), keysystem: keysystem, messagehandler: handler.messagehandler, @@ -44,7 +45,8 @@ audioType: contentitem.audio.type, videoType: contentitem.video.type, initDataType: contentitem.initDataType, - initData: getProprietaryInitDatas(contentitem).initDatas.map( base64DecodeToUnit8Array ), + initData: proprietaryInitDatas.initDatas.map( base64DecodeToUnit8Array ), + variantIds: proprietaryInitDatas.variantIds, testcase: 'multikey video' }; runTest(config); diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html index 6109662b765..1aafba40fbd 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html @@ -2,7 +2,7 @@ - Encrypted Media Extensions: Successful Playback, Temporary session with Clear Key, mp4, two videos + Encrypted Media Extensions: Successful Playback, Temporary session with DRM, mp4, two videos @@ -18,7 +18,7 @@ - + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html new file mode 100644 index 00000000000..2656f8feb55 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html @@ -0,0 +1,41 @@ + + + + + + Encrypted Media Extensions: requestMediaKeySystemAccess tests, DRM + + + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html new file mode 100644 index 00000000000..b91211df444 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html @@ -0,0 +1,46 @@ + + + + + Encrypted Media Extensions - Reset MediaSource after setMediaKeys for DRM, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html new file mode 100644 index 00000000000..d215036fae7 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html @@ -0,0 +1,52 @@ + + + + + Encrypted Media Extensions: setMediaKeys again after playback with DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html new file mode 100644 index 00000000000..d1723b5ce9c --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html @@ -0,0 +1,52 @@ + + + + + Encrypted Media Extensions: setMediaKeys again after resetting src attribute on video element with DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html new file mode 100644 index 00000000000..581d22f4af0 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html @@ -0,0 +1,44 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple at same time with DRM + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html new file mode 100644 index 00000000000..7d3fe096383 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html @@ -0,0 +1,50 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple times with different mediakeys with DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html new file mode 100644 index 00000000000..efc6d19780d --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html @@ -0,0 +1,50 @@ + + + + + Encrypted Media Extensions: setMediaKeys multiple times with the same mediakeys with DRM + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html new file mode 100644 index 00000000000..bd78cb930de --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html @@ -0,0 +1,48 @@ + + + + + Encrypted Media Extensions: setMediaKeys to multiple video elements with DRM + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.html new file mode 100644 index 00000000000..1a74a6236a6 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.html @@ -0,0 +1,44 @@ + + + + + Encrypted Media Extensions: setMediaKeys with DRM + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.html new file mode 100644 index 00000000000..f6d03926132 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions - Test MediaKeys attribute, setServerCertificate and setServerCertificate exception syntax for DRM, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.html new file mode 100644 index 00000000000..0c737df9eff --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions - Test MediaKeySession attribute and function syntax for DRM, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html new file mode 100644 index 00000000000..d54e1943765 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html @@ -0,0 +1,43 @@ + + + + + Encrypted Media Extensions - Test navigator.requestmediakeysystemaccess exception and MediaKeySystemAccess attribute syntax for DRM, mp4 + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.html new file mode 100644 index 00000000000..a344ae5c070 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.html @@ -0,0 +1,44 @@ + + + + + Encrypted Media Extensions: Unique origin with DRM, mp4 + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html new file mode 100644 index 00000000000..508afcacb15 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html @@ -0,0 +1,52 @@ + + + + + Encrypted Media Extensions - Waiting for a key for DRM, mp4 + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        +
                                                                                        + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html b/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html index e147560248c..22d9a1359ec 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html @@ -2,7 +2,7 @@ - Encrypted Media Extensions: Test MediaKeySession not callable immediately after CreateSession(). + Encrypted Media Extensions: Test MediaKeySession not callable immediately after CreateSession(), DRM. @@ -14,8 +14,8 @@ - - + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.html b/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.html new file mode 100644 index 00000000000..a4b54dac3b8 --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.html @@ -0,0 +1,71 @@ + + + + + Encrypted Media Extensions: Test that persistent license cannot be ingested into temporary session + + + + + + + + + + + + + + + + + + + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/encrypted-media/polyfill/chrome-polyfill.js b/tests/wpt/web-platform-tests/encrypted-media/polyfill/chrome-polyfill.js index 346da6c67cc..2f11497ccaf 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/polyfill/chrome-polyfill.js +++ b/tests/wpt/web-platform-tests/encrypted-media/polyfill/chrome-polyfill.js @@ -1,5 +1,6 @@ (function(){ - if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1){ + if( navigator.userAgent.toLowerCase().indexOf('edge') === -1 + && navigator.userAgent.toLowerCase().indexOf('chrome') > -1){ if ( ( /chrome\/([0-9]*)\./.exec( navigator.userAgent.toLowerCase() )[1] | 0 ) < 54 ) { diff --git a/tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-keystatuses.js b/tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-keystatuses.js new file mode 100644 index 00000000000..8861444591b --- /dev/null +++ b/tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-keystatuses.js @@ -0,0 +1,144 @@ +(function() { + + // This polyfill fixes the following problems with Edge browser + // (1) Various maplike methods for keystatuses are not supported or suported incorrectly + // (2) Key Ids exposed in keystatuses are incorrect (byte swaps) + if ( navigator.userAgent.toLowerCase().indexOf('edge') > -1 ) { + /////////////////////////////////////////////////////////////////////////////////////////////// + // The following function is the core of this JS patch. The rest of this file is infrastructure + // required to enable this function + /////////////////////////////////////////////////////////////////////////////////////////////// + function _proxyKeyStatusesChange( event ) { + this._keyStatuses.clear(); + var keyStatuses = []; + this._session.keyStatuses.forEach( function( keyId, status ) { + var newKeyId = new Uint8Array( keyId ); + + function swap( arr, a, b ) { var t = arr[a]; arr[a] = arr[b]; arr[b] = t; } + swap( newKeyId, 0, 3 ); + swap( newKeyId, 1, 2 ); + swap( newKeyId, 4, 5 ); + swap( newKeyId, 6, 7 ); + + keyStatuses.push( { key: newKeyId, status: status, ord: arrayBufferAsString( newKeyId ) } ); + }); + + function lexicographical( a, b ) { return a < b ? -1 : a === b ? 0 : +1; } + function lexicographicalkey( a, b ) { return lexicographical( a.ord, b.ord ); } + + keyStatuses.sort( lexicographicalkey ).forEach( function( obj ) { + this._keyStatuses._set( obj.key, obj.status ); + }.bind( this ) ); + + this.dispatchEvent( event ); + }; + /////////////////////////////////////////////////////////////////////////////////////////////// + + // Override MediaKeys.createSession + var _mediaKeysCreateSession = MediaKeys.prototype.createSession; + MediaKeys.prototype.createSession = function ( sessionType ) { + return new MediaKeySession( _mediaKeysCreateSession.call( this, sessionType ) ); + }; + + // MediaKeySession proxy + function MediaKeySession( session ) { + EventTarget.call( this ); + this._session = session; + this._keyStatuses = new MediaKeyStatusMap(); + this._session.addEventListener("keystatuseschange",this._onKeyStatusesChange.bind(this)); + this._session.addEventListener("message",this.dispatchEvent.bind(this)); + } + + MediaKeySession.prototype = Object.create( EventTarget.prototype ); + + Object.defineProperties( MediaKeySession.prototype, { + sessionId: { get: function() { return this._session.sessionId; } }, + expiration: { get: function() { return this._session.expiration; } }, + closed: { get: function() { return this._session.closed; } }, + keyStatuses:{ get: function() { return this._keyStatuses; } } + }); + + [ "generateRequest", "load", "update", "remove", "close" ].forEach( function( fnname ) { + MediaKeySession.prototype[ fnname ] = function() { + return window.MediaKeySession.prototype[ fnname ].apply( this._session, arguments ); + } + } ); + + MediaKeySession.prototype._onKeyStatusesChange = _proxyKeyStatusesChange; + + // MediaKeyStatusMap proxy + // + // We need a proxy class to replace the broken MediaKeyStatusMap one. We cannot use a + // regular Map directly because we need get and has methods to compare by value not + // as references. + function MediaKeyStatusMap() { this._map = new Map(); } + + Object.defineProperties( MediaKeyStatusMap.prototype, { + size: { get: function() { return this._map.size; } }, + forEach: { get: function() { return function( f ) { return this._map.forEach( f ); } } }, + entries: { get: function() { return function() { return this._map.entries(); } } }, + values: { get: function() { return function() { return this._map.values(); } } }, + keys: { get: function() { return function() { return this._map.keys(); } } }, + clear: { get: function() { return function() { return this._map.clear(); } } } } ); + + MediaKeyStatusMap.prototype[ Symbol.iterator ] = function() { return this._map[ Symbol.iterator ]() }; + + MediaKeyStatusMap.prototype.has = function has( keyId ) { + for ( var k of this._map.keys() ) { if ( arrayBufferEqual( k, keyId ) ) return true; } + return false; + }; + + MediaKeyStatusMap.prototype.get = function get( keyId ) { + for ( var k of this._map.entries() ) { if ( arrayBufferEqual( k[ 0 ], keyId ) ) return k[ 1 ]; } + }; + + MediaKeyStatusMap.prototype._set = function _set( keyId, status ) { + this._map.set( new Uint8Array( keyId ), status ); + }; + + function arrayBufferEqual(buf1, buf2) + { + if (buf1.byteLength !== buf2.byteLength) return false; + var a1 = Array.from( new Int8Array(buf1) ), a2 = Array.from( new Int8Array(buf2) ); + return a1.every( function( x, i ) { return x === a2[i]; } ); + } + + // EventTarget + function EventTarget(){ + this.listeners = {}; + }; + + EventTarget.prototype.listeners = null; + + EventTarget.prototype.addEventListener = function(type, callback){ + if(!(type in this.listeners)) { + this.listeners[type] = []; + } + this.listeners[type].push(callback); + }; + + EventTarget.prototype.removeEventListener = function(type, callback){ + if(!(type in this.listeners)) { + return; + } + var stack = this.listeners[type]; + for(var i = 0, l = stack.length; i < l; i++){ + if(stack[i] === callback){ + stack.splice(i, 1); + return this.removeEventListener(type, callback); + } + } + }; + + EventTarget.prototype.dispatchEvent = function(event){ + if(!(event.type in this.listeners)) { + return; + } + var stack = this.listeners[event.type]; + event.target = this; + for(var i = 0, l = stack.length; i < l; i++) { + stack[i].call(this, event); + } + }; + } +})(); diff --git a/tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-polyfill.js b/tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-persistent-usage-record.js similarity index 100% rename from tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-polyfill.js rename to tests/wpt/web-platform-tests/encrypted-media/polyfill/edge-persistent-usage-record.js diff --git a/tests/wpt/web-platform-tests/encrypted-media/polyfill/firefox-polyfill.js b/tests/wpt/web-platform-tests/encrypted-media/polyfill/firefox-polyfill.js index 0e42187971f..ce241af362a 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/polyfill/firefox-polyfill.js +++ b/tests/wpt/web-platform-tests/encrypted-media/polyfill/firefox-polyfill.js @@ -20,4 +20,4 @@ return _requestMediaKeySystemAccess( keysystem, supported_configurations ); } } -}()) \ No newline at end of file +}()); \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/encrypted-media/polyfill/make-polyfill-tests.py b/tests/wpt/web-platform-tests/encrypted-media/polyfill/make-polyfill-tests.py index 7e7dc496e80..b4248569a92 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/polyfill/make-polyfill-tests.py +++ b/tests/wpt/web-platform-tests/encrypted-media/polyfill/make-polyfill-tests.py @@ -8,7 +8,8 @@ scripts = ''' - + + ''' def process_file( infile, outfile ) : diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html index 21a05e87943..39798fe43ef 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html @@ -24,44 +24,44 @@ + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/conditional-get.html b/tests/wpt/web-platform-tests/fetch/api/basic/conditional-get.html new file mode 100644 index 00000000000..b80e929fe6b --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/conditional-get.html @@ -0,0 +1,51 @@ + + + + + Request ETag + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/error-after-response.html b/tests/wpt/web-platform-tests/fetch/api/basic/error-after-response.html new file mode 100644 index 00000000000..5701d6d7866 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/error-after-response.html @@ -0,0 +1,34 @@ + + + + Fetch: network timeout after receiving the HTTP response headers + + + + + +
                                                                                        + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/integrity-sharedworker.html b/tests/wpt/web-platform-tests/fetch/api/basic/integrity-sharedworker.html new file mode 100644 index 00000000000..fa90a60ce98 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/integrity-sharedworker.html @@ -0,0 +1,15 @@ + + + + + Fetch in sharedworker: integrity handling + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/request-headers.js b/tests/wpt/web-platform-tests/fetch/api/basic/request-headers.js index 4c78ff0dc1c..7b0eee489a7 100644 --- a/tests/wpt/web-platform-tests/fetch/api/basic/request-headers.js +++ b/tests/wpt/web-platform-tests/fetch/api/basic/request-headers.js @@ -15,6 +15,8 @@ function checkContentType(contentType, body) expectedContentType = null; else if (body instanceof Blob) expectedContentType = body.type ? body.type : null; + else if (body instanceof URLSearchParams) + expectedContentType = "application/x-www-form-urlencoded;charset=UTF-8"; assert_equals(contentType , expectedContentType, "Request should have header content-type: " + expectedContentType); } @@ -49,6 +51,7 @@ requestHeaders("Fetch with PUT with body", url, "PUT", "Request's body", locatio requestHeaders("Fetch with POST without body", url, "POST", null, location.origin, "0"); requestHeaders("Fetch with POST with text body", url, "POST", "Request's body", location.origin, "14"); requestHeaders("Fetch with POST with FormData body", url, "POST", function() { return new FormData(); }, location.origin); +requestHeaders("Fetch with POST with URLSearchParams body", url, "POST", function() { return new URLSearchParams("name=value"); }, location.origin, "10"); requestHeaders("Fetch with POST with Blob body", url, "POST", new Blob(["Test"]), location.origin, "4"); requestHeaders("Fetch with POST with ArrayBuffer body", url, "POST", new ArrayBuffer(4), location.origin, "4"); requestHeaders("Fetch with POST with Uint8Array body", url, "POST", new Uint8Array(4), location.origin, "4"); diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/request-upload-worker.html b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload-worker.html new file mode 100644 index 00000000000..914de6f37f6 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload-worker.html @@ -0,0 +1,14 @@ + + + + + Fetch in worker: Upload + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.html b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.html new file mode 100644 index 00000000000..1b5b8e76bf5 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.html @@ -0,0 +1,13 @@ + + + + + Fetch: Uploading content + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.js b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.js new file mode 100644 index 00000000000..b5d79c4c185 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/basic/request-upload.js @@ -0,0 +1,35 @@ +if (this.document === undefined) { + importScripts("/resources/testharness.js"); + importScripts("../resources/utils.js"); +} + +function testUpload(desc, url, method, body, expectedBody) { + var requestInit = {"method": method} + promise_test(function(test){ + if (typeof body === "function") + body = body(); + if (body) + requestInit["body"] = body; + return fetch(url, requestInit).then(function(resp) { + return resp.text().then((text)=> { + assert_equals(text, expectedBody); + }); + }); + }, desc); +} + +var url = RESOURCES_DIR + "echo-content.py" + +testUpload("Fetch with PUT with body", url, "PUT", "Request's body", "Request's body"); +testUpload("Fetch with POST with text body", url, "POST", "Request's body", "Request's body"); +testUpload("Fetch with POST with URLSearchParams body", url, "POST", function() { return new URLSearchParams("name=value"); }, "name=value"); +testUpload("Fetch with POST with Blob body", url, "POST", new Blob(["Test"]), "Test"); +testUpload("Fetch with POST with ArrayBuffer body", url, "POST", new ArrayBuffer(4), "\0\0\0\0"); +testUpload("Fetch with POST with Uint8Array body", url, "POST", new Uint8Array(4), "\0\0\0\0"); +testUpload("Fetch with POST with Int8Array body", url, "POST", new Int8Array(4), "\0\0\0\0"); +testUpload("Fetch with POST with Float32Array body", url, "POST", new Float32Array(1), "\0\0\0\0"); +testUpload("Fetch with POST with Float64Array body", url, "POST", new Float64Array(1), "\0\0\0\0\0\0\0\0"); +testUpload("Fetch with POST with DataView body", url, "POST", new DataView(new ArrayBuffer(8), 0, 4), "\0\0\0\0"); +testUpload("Fetch with POST with Blob body with mime type", url, "POST", new Blob(["Test"], { type: "text/maybe" }), "Test"); + +done(); diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/scheme-data.js b/tests/wpt/web-platform-tests/fetch/api/basic/scheme-data.js index e7904d04751..3e2504a0b87 100644 --- a/tests/wpt/web-platform-tests/fetch/api/basic/scheme-data.js +++ b/tests/wpt/web-platform-tests/fetch/api/basic/scheme-data.js @@ -3,10 +3,10 @@ if (this.document === undefined) { importScripts("../resources/utils.js"); } -function checkFetchResponse(url, data, mime, fetchMode) { +function checkFetchResponse(url, data, mime, fetchMode, method) { var cut = (url.length >= 40) ? "[...]" : ""; - desc = "Fetching " + url.substring(0, 40) + cut + " is OK"; - var init = { }; + desc = "Fetching " + (method ? "[" + method + "] " : "") + url.substring(0, 40) + cut + " is OK"; + var init = {"method": method || "GET"}; if (fetchMode) { init.mode = fetchMode; desc += " (" + fetchMode + ")"; @@ -31,6 +31,8 @@ checkFetchResponse("data:text/plain;base64,cmVzcG9uc2UncyBib2R5", "response's bo checkFetchResponse("data:image/png;base64,cmVzcG9uc2UncyBib2R5", "response's body", "image/png"); +checkFetchResponse("data:,response%27s%20body", "response's body", "text/plain;charset=US-ASCII", null, "POST"); +checkFetchResponse("data:,response%27s%20body", "response's body", "text/plain;charset=US-ASCII", null, "HEAD"); function checkKoUrl(url, method, desc) { var cut = (url.length >= 40) ? "[...]" : ""; @@ -41,7 +43,5 @@ function checkKoUrl(url, method, desc) { } checkKoUrl("data:notAdataUrl.com", "GET"); -checkKoUrl("data:,response%27s%20body", "POST"); -checkKoUrl("data:,response%27s%20body", "HEAD"); done(); diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/text-utf8.html b/tests/wpt/web-platform-tests/fetch/api/basic/text-utf8.html index 7499a474a85..e5c567b9c45 100644 --- a/tests/wpt/web-platform-tests/fetch/api/basic/text-utf8.html +++ b/tests/wpt/web-platform-tests/fetch/api/basic/text-utf8.html @@ -41,6 +41,19 @@ function testTextDecoding(body, expectedText, urlParameter, title) }); }); }, title + " with fetched data (UTF-16 charset)"); + + promise_test(function(test) { + return new Response(body).arrayBuffer().then(function(buffer) { + assert_array_equals(new Uint8Array(buffer), encode_utf8(body), "Response.arrayBuffer() should contain data encoded as UTF-8"); + }); + }, title + " (Response object)"); + + promise_test(function(test) { + return new Request("", {method: "POST", body: body}).arrayBuffer().then(function(buffer) { + assert_array_equals(new Uint8Array(buffer), encode_utf8(body), "Request.arrayBuffer() should contain data encoded as UTF-8"); + }); + }, title + " (Request object)"); + } var utf8WithBOM = "\xef\xbb\xbf\xe4\xb8\x89\xe6\x9d\x91\xe3\x81\x8b\xe3\x81\xaa\xe5\xad\x90"; diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/cors-redirect.js b/tests/wpt/web-platform-tests/fetch/api/cors/cors-redirect.js index 75f67e7ee31..99f5a11f354 100644 --- a/tests/wpt/web-platform-tests/fetch/api/cors/cors-redirect.js +++ b/tests/wpt/web-platform-tests/fetch/api/cors/cors-redirect.js @@ -15,7 +15,7 @@ function corsRedirect(desc, redirectUrl, redirectLocation, redirectStatus, expec var requestInit = {"mode": "cors", "redirect": "follow"}; return promise_test(function(test) { - fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) { + return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) { return fetch(url + urlParameters, requestInit).then(function(resp) { assert_equals(resp.status, 200, "Response's status is 200"); assert_equals(resp.headers.get("x-did-preflight"), "0", "No preflight request has been made"); diff --git a/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html b/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html index 90ba2b2a908..98d71acad9f 100644 --- a/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html +++ b/tests/wpt/web-platform-tests/fetch/api/headers/headers-basic.html @@ -127,7 +127,7 @@ return value.toLowerCase(); }).sort(); - var iteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([].values())); + var iteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function checkIteratorProperties(iterator) { var prototype = Object.getPrototypeOf(iterator); assert_equals(Object.getPrototypeOf(prototype), iteratorPrototype); diff --git a/tests/wpt/web-platform-tests/fetch/api/headers/headers-normalize.html b/tests/wpt/web-platform-tests/fetch/api/headers/headers-normalize.html index 384c4f4c26f..6dfcf9d8194 100644 --- a/tests/wpt/web-platform-tests/fetch/api/headers/headers-normalize.html +++ b/tests/wpt/web-platform-tests/fetch/api/headers/headers-normalize.html @@ -32,7 +32,7 @@ assert_equals(headers.get(name), headerDictWS[name].trim(), "name: " + name + " has value: " + headerDictWS[name].trim()); } - }, "Check append method whith not normalized values"); + }, "Check append method with not normalized values"); test(function() { var headers = new Headers(); @@ -41,7 +41,7 @@ assert_equals(headers.get(name), headerDictWS[name].trim(), "name: " + name + " has value: " + headerDictWS[name].trim()); } - }, "Check set method whith not normalized values"); + }, "Check set method with not normalized values"); diff --git a/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-count.js b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-count.js index ffa521a5c0f..0103280f6e2 100644 --- a/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-count.js +++ b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-count.js @@ -17,7 +17,7 @@ function redirectCount(desc, redirectUrl, redirectLocation, redirectStatus, maxC var requestInit = {"redirect": "follow"}; promise_test(function(test) { - fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) { + return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(resp) { assert_equals(resp.status, 200, "Clean stash response's status is 200"); if (!shouldPass) @@ -25,9 +25,10 @@ function redirectCount(desc, redirectUrl, redirectLocation, redirectStatus, maxC return fetch(url + urlParameters, requestInit).then(function(resp) { assert_equals(resp.status, 200, "Response's status is 200"); + return resp.text(); + }).then(function(body) { + assert_equals(body, maxCount.toString(), "Redirected " + maxCount + " times"); }); - }).then(function(body) { - assert_equals(body, maxCount.toString(), "Redirected " + maxCount + "times"); }); }, desc); } diff --git a/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/current/current.html b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/current/current.html new file mode 100644 index 00000000000..82a48d40990 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/current/current.html @@ -0,0 +1,2 @@ + +Current page used as a test helper diff --git a/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html new file mode 100644 index 00000000000..8edc71cfb12 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html @@ -0,0 +1,15 @@ + +Incumbent page used as a test helper + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html new file mode 100644 index 00000000000..f20298ad628 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/multi-globals/url-parsing.html @@ -0,0 +1,27 @@ + +Request constructor URL parsing, with multiple globals in play + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default-conditional.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default-conditional.html new file mode 100644 index 00000000000..7b2a7bd31ae --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default-conditional.html @@ -0,0 +1,180 @@ + + + + + Request cache - default with conditional requests + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default.html new file mode 100644 index 00000000000..c0e37b2d0c9 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-default.html @@ -0,0 +1,50 @@ + + + + + Request cache - default + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-force-cache.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-force-cache.html new file mode 100644 index 00000000000..ed45726f55e --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-force-cache.html @@ -0,0 +1,78 @@ + + + + + Request cache - force-cache + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-cache.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-cache.html new file mode 100644 index 00000000000..d30ed162696 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-cache.html @@ -0,0 +1,36 @@ + + + + + Request cache : no-cache + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-store.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-store.html new file mode 100644 index 00000000000..396b6a65090 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-no-store.html @@ -0,0 +1,48 @@ + + + + + Request cache - no store + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html new file mode 100644 index 00000000000..adb31a397a7 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html @@ -0,0 +1,76 @@ + + + + + Request cache - only-if-cached + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache-reload.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-reload.html new file mode 100644 index 00000000000..45ff5832482 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache-reload.html @@ -0,0 +1,62 @@ + + + + + Request cache - reload + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache.html b/tests/wpt/web-platform-tests/fetch/api/request/request-cache.html deleted file mode 100644 index f2c442a5409..00000000000 --- a/tests/wpt/web-platform-tests/fetch/api/request/request-cache.html +++ /dev/null @@ -1,626 +0,0 @@ - - - - - Request cache - - - - - - - - - - - diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-cache.js b/tests/wpt/web-platform-tests/fetch/api/request/request-cache.js new file mode 100644 index 00000000000..deeb17d1b50 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-cache.js @@ -0,0 +1,223 @@ +/** + * Each test is run twice: once using etag/If-None-Match and once with + * date/If-Modified-Since. Each test run gets its own URL and randomized + * content and operates independently. + * + * The test steps are run with request_cache.length fetch requests issued + * and their immediate results sanity-checked. The cache.py server script + * stashes an entry containing any If-None-Match, If-Modified-Since, Pragma, + * and Cache-Control observed headers for each request it receives. When + * the test fetches have run, this state is retrieved from cache.py and the + * expected_* lists are checked, including their length. + * + * This means that if a request_* fetch is expected to hit the cache and not + * touch the network, then there will be no entry for it in the expect_* + * lists. AKA (request_cache.length - expected_validation_headers.length) + * should equal the number of cache hits that didn't touch the network. + * + * Test dictionary keys: + * - state: required string that determines whether the Expires response for + * the fetched document should be set in the future ("fresh") or past + * ("stale"). + * - vary: optional string to be passed to the server for it to quote back + * in a Vary header on the response to us. + * - cache_control: optional string to be passed to the server for it to + * quote back in a Cache-Control header on the response to us. + * - redirect: optional string "same-origin" or "cross-origin". If + * provided, the server will issue an absolute redirect to the script on + * the same or a different origin, as appropriate. The redirected + * location is the script with the redirect parameter removed, so the + * content/state/etc. will be as if you hadn't specified a redirect. + * - request_cache: required array of cache modes to use (via `cache`). + * - request_headers: optional array of explicit fetch `headers` arguments. + * If provided, the server will log an empty dictionary for each request + * instead of the request headers it would normally log. + * - response: optional array of specialized response handling. Right now, + * "error" array entries indicate a network error response is expected + * which will reject with a TypeError. + * - expected_validation_headers: required boolean array indicating whether + * the server should have seen an If-None-Match/If-Modified-Since header + * in the request. + * - expected_no_cache_headers: required boolean array indicating whether + * the server should have seen Pragma/Cache-control:no-cache headers in + * the request. + * - expected_max_age_headers: optional boolean array indicating whether + * the server should have seen a Cache-Control:max-age=0 header in the + * request. + */ + +var now = new Date(); + +function base_path() { + return location.pathname.replace(/\/[^\/]*$/, '/'); +} +function make_url(uuid, id, value, content, info) { + var dates = { + fresh: new Date(now.getFullYear() + 1, now.getMonth(), now.getDay()).toGMTString(), + stale: new Date(now.getFullYear() - 1, now.getMonth(), now.getDay()).toGMTString(), + }; + var vary = ""; + if ("vary" in info) { + vary = "&vary=" + info.vary; + } + var cache_control = ""; + if ("cache_control" in info) { + cache_control = "&cache_control=" + info.cache_control; + } + var redirect = ""; + + var ignore_request_headers = ""; + if ("request_headers" in info) { + // Ignore the request headers that we send since they may be synthesized by the test. + ignore_request_headers = "&ignore"; + } + var url_sans_redirect = "resources/cache.py?token=" + uuid + + "&content=" + content + + "&" + id + "=" + value + + "&expires=" + dates[info.state] + + vary + cache_control + ignore_request_headers; + // If there's a redirect, the target is the script without any redirect at + // either the same domain or a different domain. + if ("redirect" in info) { + var host_info = get_host_info(); + var origin; + switch (info.redirect) { + case "same-origin": + origin = host_info['HTTP_ORIGIN']; + break; + case "cross-origin": + origin = host_info['HTTP_REMOTE_ORIGIN']; + break; + } + var redirected_url = origin + base_path() + url_sans_redirect; + return url_sans_redirect + "&redirect=" + encodeURIComponent(redirected_url); + } else { + return url_sans_redirect; + } +} +function expected_status(type, identifier, init) { + if (type == "date" && + init.headers && + init.headers["If-Modified-Since"] == identifier) { + // The server will respond with a 304 in this case. + return [304, "Not Modified"]; + } + return [200, "OK"]; +} +function expected_response_text(type, identifier, init, content) { + if (type == "date" && + init.headers && + init.headers["If-Modified-Since"] == identifier) { + // The server will respond with a 304 in this case. + return ""; + } + return content; +} +function server_state(uuid) { + return fetch("resources/cache.py?querystate&token=" + uuid) + .then(function(response) { + return response.text(); + }).then(function(text) { + // null will be returned if the server never received any requests + // for the given uuid. Normalize that to an empty list consistent + // with our representation. + return JSON.parse(text) || []; + }); +} +function make_test(type, info) { + return function(test) { + var uuid = token(); + var identifier = (type == "tag" ? Math.random() : now.toGMTString()); + var content = Math.random().toString(); + var url = make_url(uuid, type, identifier, content, info); + var fetch_functions = []; + for (var i = 0; i < info.request_cache.length; ++i) { + fetch_functions.push(function(idx) { + var init = {cache: info.request_cache[idx]}; + if ("request_headers" in info) { + init.headers = info.request_headers[idx]; + } + if (init.cache === "only-if-cached") { + // only-if-cached requires we use same-origin mode. + init.mode = "same-origin"; + } + return fetch(url, init) + .then(function(response) { + if ("response" in info && info.response[idx] === "error") { + assert_true(false, "fetch should have been an error"); + return; + } + assert_array_equals([response.status, response.statusText], + expected_status(type, identifier, init)); + return response.text(); + }).then(function(text) { + assert_equals(text, expected_response_text(type, identifier, init, content)); + }, function(reason) { + if ("response" in info && info.response[idx] === "error") { + assert_throws(new TypeError(), function() { throw reason; }); + } else { + throw reason; + } + }); + }); + } + var i = 0; + function run_next_step() { + if (fetch_functions.length) { + return fetch_functions.shift()(i++) + .then(run_next_step); + } else { + return Promise.resolve(); + } + } + return run_next_step() + .then(function() { + // Now, query the server state + return server_state(uuid); + }).then(function(state) { + var expectedState = []; + info.expected_validation_headers.forEach(function (validate) { + if (validate) { + if (type == "tag") { + expectedState.push({"If-None-Match": '"' + identifier + '"'}); + } else { + expectedState.push({"If-Modified-Since": identifier}); + } + } else { + expectedState.push({}); + } + }); + for (var i = 0; i < info.expected_no_cache_headers.length; ++i) { + if (info.expected_no_cache_headers[i]) { + expectedState[i]["Pragma"] = "no-cache"; + expectedState[i]["Cache-Control"] = "no-cache"; + } + } + if ("expected_max_age_headers" in info) { + for (var i = 0; i < info.expected_max_age_headers.length; ++i) { + if (info.expected_max_age_headers[i]) { + expectedState[i]["Cache-Control"] = "max-age=0"; + } + } + } + assert_equals(state.length, expectedState.length); + for (var i = 0; i < state.length; ++i) { + for (var header in state[i]) { + assert_equals(state[i][header], expectedState[i][header]); + delete expectedState[i][header]; + } + for (var header in expectedState[i]) { + assert_false(header in state[i]); + } + } + }); + }; +} + +function run_tests(tests) +{ + tests.forEach(function(info) { + promise_test(make_test("tag", info), info.name + " with Etag and " + info.state + " response"); + promise_test(make_test("date", info), info.name + " with date and " + info.state + " response"); + }); +} diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html index a2bb3e2a9bd..c3ca8383a95 100644 --- a/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-consume-empty.html @@ -98,6 +98,10 @@ checkRequestWithEmptyBody("text", "", false); checkRequestWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), true); checkRequestWithEmptyBody("text", "", true); + checkRequestWithEmptyBody("URLSearchParams", new URLSearchParams(""), true); + // FIXME: This test assumes that the empty string be returned but it is not clear whether that is right. See https://github.com/w3c/web-platform-tests/pull/3950. + checkRequestWithEmptyBody("FormData", new FormData(), true); + checkRequestWithEmptyBody("ArrayBuffer", new ArrayBuffer(), true); diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py b/tests/wpt/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py new file mode 100644 index 00000000000..3135403863b --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/resources/bad-chunk-encoding.py @@ -0,0 +1,13 @@ +import time + +def main(request, response): + delay = float(request.GET.first("ms", 1000)) / 1E3 + count = int(request.GET.first("count", 50)) + time.sleep(delay) + response.headers.set("Transfer-Encoding", "chunked") + response.write_status_headers() + time.sleep(delay); + for i in xrange(count): + response.writer.write_content("a\r\nTEST_CHUNK\r\n") + time.sleep(delay) + response.writer.write_content("garbage") diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/cache.py b/tests/wpt/web-platform-tests/fetch/api/resources/cache.py new file mode 100644 index 00000000000..899638716a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/resources/cache.py @@ -0,0 +1,18 @@ +ETAG = '"123abc"' +CONTENT_TYPE = "text/plain" +CONTENT = "lorem ipsum dolor sit amet" + + +def main(request, response): + # let caching kick in if possible (conditional GET) + etag = request.headers.get("If-None-Match", None) + if etag == ETAG: + response.headers.set("X-HTTP-STATUS", 304) + response.status = (304, "Not Modified") + return "" + + # cache miss, so respond with the actual content + response.status = (200, "OK") + response.headers.set("ETag", ETAG) + response.headers.set("Content-Type", CONTENT_TYPE) + return CONTENT diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py new file mode 100644 index 00000000000..5c39e838181 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/resources/echo-content.py @@ -0,0 +1,9 @@ +def main(request, response): + + headers = [("X-Request-Method", request.method), + ("X-Request-Content-Length", request.headers.get("Content-Length", "NO")), + ("X-Request-Content-Type", request.headers.get("Content-Type", "NO"))] + + content = request.body + + return headers, content diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/utils.js b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js index 86542c7bc8f..f290c22ee7f 100644 --- a/tests/wpt/web-platform-tests/fetch/api/resources/utils.js +++ b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js @@ -51,6 +51,13 @@ function stringToArray(str) { return array; } +function encode_utf8(str) +{ + if (self.TextEncoder) + return (new TextEncoder).encode(str); + return stringToArray(unescape(encodeURIComponent(str))); +} + function validateBufferFromString(buffer, expectedValue, message) { return assert_array_equals(new Uint8Array(buffer !== undefined ? buffer : []), stringToArray(expectedValue), message); diff --git a/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/current/current.html b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/current/current.html new file mode 100644 index 00000000000..82a48d40990 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/current/current.html @@ -0,0 +1,2 @@ + +Current page used as a test helper diff --git a/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html new file mode 100644 index 00000000000..4d1ee085440 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html @@ -0,0 +1,17 @@ + +Incumbent page used as a test helper + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html new file mode 100644 index 00000000000..44f42eda493 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html @@ -0,0 +1,2 @@ + +Relevant page used as a test helper diff --git a/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html new file mode 100644 index 00000000000..73bf9cfd0ad --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/response/multi-globals/url-parsing.html @@ -0,0 +1,27 @@ + +Response.redirect URL parsing, with multiple globals in play + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html b/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html index 1efb4da5eef..2eeb78c4c24 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-clone.html @@ -93,6 +93,44 @@ }); }, 'Cancelling stream should not affect cloned one'); +function testReadableStreamClone(initialBuffer, bufferType) +{ + promise_test(function(test) { + var response = new Response(new ReadableStream({start : function(controller) { + controller.enqueue(initialBuffer); + controller.close(); + }})); + + var clone = response.clone(); + var stream1 = response.body; + var stream2 = clone.body; + + var buffer; + return stream1.getReader().read().then(function(data) { + assert_false(data.done); + assert_true(data.value === initialBuffer, "Buffer of being-cloned response stream is the same as the original buffer"); + return stream2.getReader().read(); + }).then(function(data) { + assert_false(data.done); + assert_array_equals(data.value, initialBuffer, "Cloned buffer chunks have the same content"); + assert_equals(Object.getPrototypeOf(data.value), Object.getPrototypeOf(initialBuffer), "Cloned buffers have the same type"); + assert_true(data.value !== initialBuffer, "Buffer of cloned response stream is a clone of the original buffer"); + }); + }, "Check response clone use structureClone for teed ReadableStreams (" + bufferType + "chunk)"); +} + +var arrayBuffer = new ArrayBuffer(16); +testReadableStreamClone(new Int8Array(arrayBuffer, 1), "Int8Array"); +testReadableStreamClone(new Int16Array(arrayBuffer, 2, 2), "Int16Array"); +testReadableStreamClone(new Int32Array(arrayBuffer), "Int32Array"); +testReadableStreamClone(arrayBuffer, "ArrayBuffer"); +testReadableStreamClone(new Uint8Array(arrayBuffer), "Uint8Array"); +testReadableStreamClone(new Uint8ClampedArray(arrayBuffer), "Uint8ClampedArray"); +testReadableStreamClone(new Uint16Array(arrayBuffer, 2), "Uint16Array"); +testReadableStreamClone(new Uint32Array(arrayBuffer), "Uint32Array"); +testReadableStreamClone(new Float32Array(arrayBuffer), "Float32Array"); +testReadableStreamClone(new Float64Array(arrayBuffer), "Float64Array"); +testReadableStreamClone(new DataView(arrayBuffer, 2, 8), "DataView"); diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html index 78838469933..faa443b5e30 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html @@ -93,11 +93,13 @@ }, "Consume empty " + bodyType + " response body as " + (asText ? "text" : "arrayBuffer")); } - // FIXME: Add BufferSource, FormData and URLSearchParams. checkResponseWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), false); checkResponseWithEmptyBody("text", "", false); checkResponseWithEmptyBody("blob", new Blob([], { "type" : "text/plain" }), true); checkResponseWithEmptyBody("text", "", true); + checkResponseWithEmptyBody("URLSearchParams", new URLSearchParams(""), true); + checkResponseWithEmptyBody("FormData", new FormData(), true); + checkResponseWithEmptyBody("ArrayBuffer", new ArrayBuffer(), true); diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-stream.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-stream.html index f96192fa980..54d55fcb45f 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-stream.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-stream.html @@ -28,6 +28,8 @@ var formData = new FormData(); formData.append("name", "value"); var textData = JSON.stringify("This is response's body"); var blob = new Blob([textData], { "type" : "text/plain" }); +var urlSearchParamsData = "name=value"; +var urlSearchParams = new URLSearchParams(urlSearchParamsData); promise_test(function(test) { var response = new Response(blob); @@ -39,6 +41,11 @@ promise_test(function(test) { return validateStreamFromString(response.body.getReader(), textData); }, "Read text response's body as readableStream"); +promise_test(function(test) { + var response = new Response(urlSearchParams); + return validateStreamFromString(response.body.getReader(), urlSearchParamsData); +}, "Read URLSearchParams response's body as readableStream"); + promise_test(function(test) { var arrayBuffer = new ArrayBuffer(textData.length); var int8Array = new Int8Array(arrayBuffer); diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html index 56e234248c3..dc7239424db 100644 --- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html +++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume.html @@ -12,17 +12,49 @@ diff --git a/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff b/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff new file mode 100644 index 00000000000..9f5d59ae6a7 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff new file mode 100644 index 00000000000..2a9d78cc9d4 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff new file mode 100644 index 00000000000..e4d381edaf2 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff new file mode 100644 index 00000000000..3d90e64302a Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff new file mode 100644 index 00000000000..ab648f5eb66 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff new file mode 100644 index 00000000000..0b7efbaf706 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff new file mode 100644 index 00000000000..2e910bbf421 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff new file mode 100644 index 00000000000..920c81eb1bf Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff new file mode 100644 index 00000000000..1b5d60bb144 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff new file mode 100644 index 00000000000..3e70cd29a34 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-rulethickness10000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-rulethickness10000.woff new file mode 100644 index 00000000000..ec69f2424f2 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/fraction-rulethickness10000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff b/tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff new file mode 100644 index 00000000000..53fcc13a160 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff b/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff new file mode 100644 index 00000000000..76395db141c Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff b/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff new file mode 100644 index 00000000000..df67de52bd0 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff b/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff new file mode 100644 index 00000000000..f5d7b9c84e6 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff b/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff new file mode 100644 index 00000000000..c88e7a9c709 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff b/tests/wpt/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff new file mode 100644 index 00000000000..09076604c3a Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-fraktur.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-fraktur.woff new file mode 100644 index 00000000000..20cd8e3b49e Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-fraktur.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-italic.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-italic.woff new file mode 100644 index 00000000000..9651fc8fe05 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-italic.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-sans-serif.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-sans-serif.woff new file mode 100644 index 00000000000..24f8f2d40b0 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-sans-serif.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-script.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-script.woff new file mode 100644 index 00000000000..3cea7211102 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold-script.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold.woff new file mode 100644 index 00000000000..f35194ef628 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-bold.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-double-struck.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-double-struck.woff new file mode 100644 index 00000000000..ed35ee6d642 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-double-struck.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-fraktur.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-fraktur.woff new file mode 100644 index 00000000000..40adf0d9655 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-fraktur.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-initial.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-initial.woff new file mode 100644 index 00000000000..db0ca9b2272 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-initial.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-italic.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-italic.woff new file mode 100644 index 00000000000..9687f377b32 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-italic.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-looped.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-looped.woff new file mode 100644 index 00000000000..ada1b9e6dec Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-looped.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-monospace.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-monospace.woff new file mode 100644 index 00000000000..fc3f0a49203 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-monospace.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-bold-italic.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-bold-italic.woff new file mode 100644 index 00000000000..05bc8596254 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-bold-italic.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-italic.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-italic.woff new file mode 100644 index 00000000000..dc139bf32ab Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif-italic.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif.woff new file mode 100644 index 00000000000..8ef41f51081 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-sans-serif.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-script.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-script.woff new file mode 100644 index 00000000000..d5c457aae0b Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-script.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-stretched.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-stretched.woff new file mode 100644 index 00000000000..470c879ed97 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-stretched.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/mathvariant-tailed.woff b/tests/wpt/web-platform-tests/fonts/math/mathvariant-tailed.woff new file mode 100644 index 00000000000..d612b1e06db Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/mathvariant-tailed.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff new file mode 100644 index 00000000000..6401070d44f Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff new file mode 100644 index 00000000000..0e8b1e0a434 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff new file mode 100644 index 00000000000..6c0ca282e95 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff new file mode 100644 index 00000000000..24aa4c525a1 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff new file mode 100644 index 00000000000..1fca6f6d85a Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-rulethickness8000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-rulethickness8000.woff new file mode 100644 index 00000000000..0863dc3230e Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-rulethickness8000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff new file mode 100644 index 00000000000..9808112c7aa Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff new file mode 100644 index 00000000000..44f9ece8570 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff new file mode 100644 index 00000000000..46880c1d0ce Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff new file mode 100644 index 00000000000..3565f7aaa8d Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff new file mode 100644 index 00000000000..69cd23de8b5 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff new file mode 100644 index 00000000000..2f9da79063b Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff new file mode 100644 index 00000000000..d85dfee15e3 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff new file mode 100644 index 00000000000..3f528edfe04 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff new file mode 100644 index 00000000000..f3937e869bc Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff new file mode 100644 index 00000000000..845afdf2ff3 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff new file mode 100644 index 00000000000..c85e7f65135 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-axisheight7000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-axisheight7000.woff new file mode 100644 index 00000000000..7a9dc5d4cb1 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-axisheight7000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff new file mode 100644 index 00000000000..8761585484b Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff new file mode 100644 index 00000000000..96ebce2da51 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff new file mode 100644 index 00000000000..a94d6286eab Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-gapmin8000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-gapmin8000.woff new file mode 100644 index 00000000000..a4428d1d49b Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-gapmin8000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff new file mode 100644 index 00000000000..556226f1226 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff new file mode 100644 index 00000000000..d036e893087 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff b/tests/wpt/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff new file mode 100644 index 00000000000..275a4350c91 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff b/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff new file mode 100644 index 00000000000..af61d8ed329 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff b/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff new file mode 100644 index 00000000000..8900a81419f Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff b/tests/wpt/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff new file mode 100644 index 00000000000..7a90c74f3e5 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff new file mode 100644 index 00000000000..2aa7133879b Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff new file mode 100644 index 00000000000..0f975115d93 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff new file mode 100644 index 00000000000..bb3e4658d8c Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff new file mode 100644 index 00000000000..36a4e869d11 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/xheight500.woff b/tests/wpt/web-platform-tests/fonts/math/xheight500.woff new file mode 100644 index 00000000000..76a37da9e40 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/xheight500.woff differ diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html new file mode 100644 index 00000000000..3b0d283978a --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html @@ -0,0 +1,24 @@ + +Document.exitFullscreen() + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html new file mode 100644 index 00000000000..473bdbb0f61 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html @@ -0,0 +1,32 @@ + +Document.fullscreenElement + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html new file mode 100644 index 00000000000..d77872ffb58 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html @@ -0,0 +1,15 @@ + +Document.onfullscreenchange + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html new file mode 100644 index 00000000000..a630fe2e8fa --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html @@ -0,0 +1,21 @@ + +Element ready check for containing iframe + + + +
                                                                                        + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-enabled-flag-not-set-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-enabled-flag-not-set-manual.html new file mode 100644 index 00000000000..501767dd629 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-enabled-flag-not-set-manual.html @@ -0,0 +1,19 @@ + +Element ready check with enabled flag not set + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html new file mode 100644 index 00000000000..82672cbfd60 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html @@ -0,0 +1,23 @@ + +Element ready check for sibling of fullscreen element + + + +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html new file mode 100644 index 00000000000..598fcfecf95 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html @@ -0,0 +1,28 @@ + +Element ready check for child of a fullscreen iframe + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html new file mode 100644 index 00000000000..0c1dd29a1e6 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html @@ -0,0 +1,17 @@ + +Element ready check for child of iframe + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html new file mode 100644 index 00000000000..904d319908d --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html @@ -0,0 +1,15 @@ + +Element ready check for element not in a document + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-manual.html new file mode 100644 index 00000000000..81bd6a05e34 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-manual.html @@ -0,0 +1,22 @@ + +Element.requestFullscreen() + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html new file mode 100644 index 00000000000..88eff090abe --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html @@ -0,0 +1,28 @@ + +Element.requestFullscreen() for non-top element in fullscreen element stack + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html new file mode 100644 index 00000000000..5661bfef760 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html @@ -0,0 +1,17 @@ + +Element.requestFullscreen() for SVG rect element + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html new file mode 100644 index 00000000000..553785d29b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html @@ -0,0 +1,17 @@ + +Element.requestFullscreen() for SVG svg element + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top-manual.html new file mode 100644 index 00000000000..3618344409b --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top-manual.html @@ -0,0 +1,30 @@ + +Element.requestFullscreen() for top element in fullscreen element stack + + + +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html new file mode 100644 index 00000000000..63cc727fb18 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html @@ -0,0 +1,28 @@ + +Remove the child of the fullscreen element + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html new file mode 100644 index 00000000000..5873a1cfc62 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html @@ -0,0 +1,32 @@ + +Remove the first element on the fullscreen element stack + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html new file mode 100644 index 00000000000..3e52049624d --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html @@ -0,0 +1,32 @@ + +Remove the last element on the fullscreen element stack + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html new file mode 100644 index 00000000000..74327637ee9 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html @@ -0,0 +1,26 @@ + +Remove the parent of the fullscreen element + + + +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html new file mode 100644 index 00000000000..53abb5e82fe --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html @@ -0,0 +1,24 @@ + +Remove the single element on the fullscreen element stack + + + +
                                                                                        +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/fullscreen/trusted-click.js b/tests/wpt/web-platform-tests/fullscreen/trusted-click.js new file mode 100644 index 00000000000..6cd4020f6ed --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/trusted-click.js @@ -0,0 +1,24 @@ +// Invokes callback from a trusted click event, to satisfy +// https://html.spec.whatwg.org/#triggered-by-user-activation +function trusted_click(callback, container) +{ + var document = container.ownerDocument; + var button = document.createElement("button"); + button.textContent = "click to continue test"; + button.style.display = "block"; + button.style.fontSize = "20px"; + button.style.padding = "10px"; + button.onclick = function() + { + callback(); + container.removeChild(button); + }; + container.appendChild(button); +} + +// Invokes element.requestFullscreen() from a trusted click. +function trusted_request(element, container) +{ + var request = element.requestFullscreen.bind(element); + trusted_click(request, container || element.parentNode); +} diff --git a/tests/wpt/web-platform-tests/hr-time/idlharness.html b/tests/wpt/web-platform-tests/hr-time/idlharness.html index 0b1fd7d3260..729f7381f7b 100644 --- a/tests/wpt/web-platform-tests/hr-time/idlharness.html +++ b/tests/wpt/web-platform-tests/hr-time/idlharness.html @@ -19,20 +19,31 @@ interface Window { }; -interface Performance { +[Exposed=Worker] +interface WorkerGlobalScope { }; -partial interface Window { - [Replaceable] readonly attribute Performance performance; -};
                                                                                         typedef double DOMHighResTimeStamp;
                                                                                         
                                                                                        -partial interface Performance {
                                                                                        -  DOMHighResTimeStamp now();
                                                                                        +[Exposed=(Window,Worker)]
                                                                                        +interface Performance : EventTarget {
                                                                                        +    DOMHighResTimeStamp now();
                                                                                        +    serializer = {attribute};
                                                                                         };
                                                                                        +
                                                                                        +[NoInterfaceObject,
                                                                                        + Exposed=(Window,Worker)]
                                                                                        +interface GlobalPerformance {
                                                                                        +    [Replaceable]
                                                                                        +    readonly attribute Performance performance;
                                                                                        +};
                                                                                        +
                                                                                        +Window implements GlobalPerformance;
                                                                                        +
                                                                                        +WorkerGlobalScope implements GlobalPerformance;
                                                                                         
                                                                                        -
                                                                                        +
                                                                                        Test diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri-1.html b/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri-1.html new file mode 100644 index 00000000000..46c744e95d6 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri-1.html @@ -0,0 +1,23 @@ + + + diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri.html b/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri.html new file mode 100644 index 00000000000..6b5ebf1bffa --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/history_go_to_uri.html @@ -0,0 +1,32 @@ + +history.go() negative tests + + + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html b/tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual.html similarity index 100% rename from tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html rename to tests/wpt/web-platform-tests/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual.html diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html new file mode 100644 index 00000000000..726aaea23ab --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html @@ -0,0 +1,18 @@ + + +[[SetPrototypeOf]] on a location object should return false + + + diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html index 91c3f8205d3..74d2d015430 100644 --- a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html +++ b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html @@ -7,6 +7,8 @@
                                                                                        + diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.sub.htm b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm similarity index 100% rename from tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.sub.htm rename to tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html index abb5eae4a61..79440e212d5 100644 --- a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html +++ b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html @@ -55,7 +55,7 @@ function addTest(fun, desc) { testList.push([fun, desc]); } addTest(function() { // Note: we do not check location.host as its default port semantics are hard to reflect statically assert_equals(location.hostname, host_info.ORIGINAL_HOST, 'Need to run the top-level test from domain ' + host_info.ORIGINAL_HOST); - assert_equals(location.port, host_info.HTTP_PORT, 'Need to run the top-level test from port ' + host_info.HTTP_PORT); + assert_equals(get_port(location), host_info.HTTP_PORT, 'Need to run the top-level test from port ' + host_info.HTTP_PORT); assert_equals(B.parent, window, "window.parent works same-origin"); assert_equals(C.parent, window, "window.parent works cross-origin"); assert_equals(B.location.pathname, path, "location.href works same-origin"); diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html index e05c4d9e5d4..3bfcd0cd1a5 100644 --- a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html +++ b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html @@ -10,9 +10,9 @@ var path = location.pathname.substring(0, location.pathname.lastIndexOf('/')) + '/frame.html'; A.location = 'frame.html'; - B.location = '//{{domains[www2]}}:' + location.port + path; - C.location = '//{{domains[www2]}}:' + location.port + path; - D.location = '//{{domains[www1]}}:' + location.port + path; + B.location = '//{{domains[www2]}}:' + get_port(location) + path; + C.location = '//{{domains[www2]}}:' + get_port(location) + path; + D.location = '//{{domains[www1]}}:' + get_port(location) + path; var loadCount = 0; function frameLoaded() { diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/inner-iframe.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/inner-iframe.html new file mode 100644 index 00000000000..229f6b3d852 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/inner-iframe.html @@ -0,0 +1,13 @@ + + + + + + +
                                                                                        foo
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-same-origin.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-same-origin.html new file mode 100644 index 00000000000..d6b3b099f28 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-same-origin.html @@ -0,0 +1,30 @@ + + + + DOM access in sandbox="allow-same-origin" iframe + + + + + + + +

                                                                                        DOM access in sandbox="allow-same-origin" iframe

                                                                                        + + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-scripts.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-scripts.html new file mode 100644 index 00000000000..6cf3f5a4a8c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-allow-scripts.html @@ -0,0 +1,29 @@ + + + + Script execution in sandbox="allow-scripts" iframe + + + + + + + +

                                                                                        Script execution in sandbox="allow-scripts" iframe

                                                                                        + + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-same-origin.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-same-origin.html new file mode 100644 index 00000000000..327a1f5e867 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-same-origin.html @@ -0,0 +1,30 @@ + + + + Access to sandbox iframe + + + + + + + +

                                                                                        Access to sandbox iframe

                                                                                        + + + + + +
                                                                                        + diff --git a/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts.html b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts.html new file mode 100644 index 00000000000..1bc116ada46 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/sandboxing/sandbox-disallow-scripts.html @@ -0,0 +1,29 @@ + + + + Script execution in sandbox iframe + + + + + + + +

                                                                                        Script execution in sandbox iframe

                                                                                        + + + + +
                                                                                        + + diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html index 05a831e87a6..f020e0ecbe1 100644 --- a/tests/wpt/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html @@ -33,30 +33,28 @@ test(function() { }, "Check if the first nested browsing context is returned by window['c']"); test(function() { - assert_equals(window['a'].length, 7, "The length should be 7."); + assert_equals(window['a'].length, 5, "The length should be 5."); assert_true(window['a'] instanceof HTMLCollection); - assert_array_equals(window['a'], - [ document.getElementById('a1'), document.getElementById('app1'), - document.getElementById('area1'), document.getElementById('embed1'), - document.getElementById('form1'), document.getElementById('img1'), - document.getElementById('obj1') ], - "The elements are not in tree order."); - - document.getElementById('a1').setAttribute("name", ""); - document.getElementById('area1').setAttribute("name", ""); assert_array_equals(window['a'], [ document.getElementById('app1'), document.getElementById('embed1'), document.getElementById('form1'), document.getElementById('img1'), document.getElementById('obj1') ], - "Window['a'] should not contain the elements with empty name attribute."); -}, "Check if window['a'] contains all a, applet, area, embed, form, img, and object elements, and their order"); + "The elements are not in tree order."); -var t = async_test("Check if window['fs'] return the frameset element with name='fs'"); + document.getElementById('form1').setAttribute("name", ""); + document.getElementById('embed1').setAttribute("name", ""); + assert_array_equals(window['a'], + [ document.getElementById('app1'), document.getElementById('img1'), + document.getElementById('obj1') ], + "Window['a'] should not contain the elements with empty name attribute."); +}, "Check if window['a'] contains all applet, embed, form, img, and object elements, and their order"); + +var t = async_test("Check that window['fs'] does not return the frameset element with name='fs' (historical)"); function on_load () { t.step(function () { assert_equals(document.getElementById('fm2').contentWindow['fs'], - document.getElementById('fm2').contentDocument.getElementById('fs1'), - "The frameset element should be returned."); + undefined, + "The frameset element should not be returned."); }); t.done(); } diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html similarity index 100% rename from tests/wpt/web-platform-tests/html/browsers/the-window-object/security-window/window-security.sub.html rename to tests/wpt/web-platform-tests/html/browsers/the-window-object/security-window/window-security.html diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html new file mode 100644 index 00000000000..d0d0360260c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/support/noopener-target.html @@ -0,0 +1,8 @@ + + diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html new file mode 100644 index 00000000000..808f55e23a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/window-open-noopener.html @@ -0,0 +1,105 @@ + + +window.open() with "noopener" tests + + + diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html b/tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.html similarity index 100% rename from tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html rename to tests/wpt/web-platform-tests/html/browsers/windows/nested-browsing-contexts/frameElement.html diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/support-open-cross-origin.sub.html b/tests/wpt/web-platform-tests/html/browsers/windows/support-open-cross-origin.sub.html new file mode 100644 index 00000000000..06137ef7504 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/windows/support-open-cross-origin.sub.html @@ -0,0 +1,3 @@ + +

                                                                                        Follow this link to open a new browsing context in a separate origin. +link. diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html b/tests/wpt/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html similarity index 100% rename from tests/wpt/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.sub.html rename to tests/wpt/web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts.html diff --git a/tests/wpt/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html b/tests/wpt/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html new file mode 100644 index 00000000000..c5cb03baf09 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/windows/targeting-multiple-cross-origin-manual.sub.html @@ -0,0 +1,9 @@ + +

                                                                                        Follow this link to open a new browsing context in a separate origin. Follow the instructions +in that new window, and then come back to this window. +link. + +

                                                                                        Once you come back to this page, follow this link. +link. + +

                                                                                        After clicking that link, you should have three additional windows open. diff --git a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html similarity index 100% rename from tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.sub.html rename to tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html diff --git a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms.html b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms.html index 3bb89f498c1..e0689c7c799 100644 --- a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms.html +++ b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms.html @@ -56,11 +56,11 @@ test(function() { // http://heycam.github.io/webidl/#property-enumeration // If the object supports indexed properties, then the object’s supported // property indices are enumerated first, in numerical order. - assert_array_equals(result.splice(0, 2), ["0", "1", "2"]); + assert_array_equals(result.splice(0, 3), ["0", "1", "2"]); // [...] // Finally, any enumerable own properties or properties from the object’s // prototype chain are then enumerated, in no defined order. - assert_array_equals(result.sort(), ["0", "1", "2", "item", "namedItem", "length"].sort()) + assert_array_equals(result.sort(), ["item", "namedItem", "length"].sort()) }, "document.forms iteration") test(function() { diff --git a/tests/wpt/web-platform-tests/html/dom/interfaces.html b/tests/wpt/web-platform-tests/html/dom/interfaces.html index 8e35f4175fa..d698f3bff26 100644 --- a/tests/wpt/web-platform-tests/html/dom/interfaces.html +++ b/tests/wpt/web-platform-tests/html/dom/interfaces.html @@ -726,7 +726,6 @@ interface CSSStyleDeclaration { attribute DOMString marginRight; attribute DOMString marginBottom; attribute DOMString marginLeft; - attribute DOMString markerOffset; attribute DOMString marks; attribute DOMString maxHeight; attribute DOMString maxWidth; @@ -883,7 +882,7 @@ interface HTMLAllCollection { interface HTMLFormControlsCollection : HTMLCollection { // inherits length and item() - legacycaller getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem() + getter (RadioNodeList or Element)? namedItem(DOMString name); // shadows inherited namedItem() }; interface RadioNodeList : NodeList { @@ -891,13 +890,12 @@ interface RadioNodeList : NodeList { }; interface HTMLOptionsCollection : HTMLCollection { - // inherits item() - attribute unsigned long length; // shadows inherited length - legacycaller HTMLOptionElement? (DOMString name); - setter creator void (unsigned long index, HTMLOptionElement? option); - void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); - void remove(long index); - attribute long selectedIndex; + // inherits item(), namedItem() + attribute unsigned long length; // shadows inherited length + [CEReactions] setter void (unsigned long index, HTMLOptionElement? option); + [CEReactions] void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null); + [CEReactions] void remove(long index); + attribute long selectedIndex; }; typedef sequence PropertyValueArray; @@ -1179,7 +1177,6 @@ interface HTMLEmbedElement : HTMLElement { attribute DOMString width; attribute DOMString height; Document getSVGDocument(); - legacycaller any (any... arguments); // also has obsolete members }; @@ -1203,8 +1200,6 @@ interface HTMLObjectElement : HTMLElement { boolean reportValidity(); void setCustomValidity(DOMString error); - legacycaller any (any... arguments); - // also has obsolete members }; @@ -2628,9 +2623,9 @@ interface MessageEvent : Event { readonly attribute DOMString origin; readonly attribute DOMString lastEventId; readonly attribute (WindowProxy or MessagePort)? source; - readonly attribute MessagePort[]? ports; + readonly attribute FrozenArray ports; - void initMessageEvent(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg, DOMString originArg, DOMString lastEventIdArg, (WindowProxy or MessagePort) sourceArg, MessagePort[]? portsArg); + void initMessageEvent(DOMString type, boolean bubbles, boolean cancelable, any data, DOMString origin, DOMString lastEventId, (WindowProxy or MessagePort) source, sequence ports); }; dictionary MessageEventInit : EventInit { diff --git a/tests/wpt/web-platform-tests/html/dom/new-harness.js b/tests/wpt/web-platform-tests/html/dom/new-harness.js index f7481996e12..11bf7623251 100644 --- a/tests/wpt/web-platform-tests/html/dom/new-harness.js +++ b/tests/wpt/web-platform-tests/html/dom/new-harness.js @@ -1,22 +1,11 @@ // We override only the things we need to -- the rest we'll just inherit from // original-harness.js. Polymorphism, kind of. -ReflectionHarness.catchUnexpectedExceptions = false; +ReflectionHarness.conformanceTesting = true; -ReflectionHarness.test = function(expected, actual, description) { - test(function() { - assert_equals(expected, actual); - }, this.getTypeDescription() + ": " + description); - // This is the test suite that will rate conformance, so we don't want to - // bail out early if a test fails -- we want all tests to always run. - return true; -} - -ReflectionHarness.run = function(fun, description) { +ReflectionHarness.test = function(fun, description) { test(fun, this.getTypeDescription() + ": " + description); } -ReflectionHarness.testException = function(exceptionName, fn, description) { - test(function() { - assert_throws(exceptionName, fn); - }, this.getTypeDescription() + ": " + description); -} +ReflectionHarness.assertEquals = assert_equals; + +ReflectionHarness.assertThrows = assert_throws; diff --git a/tests/wpt/web-platform-tests/html/dom/original-harness.js b/tests/wpt/web-platform-tests/html/dom/original-harness.js index 3cfa05bcb8d..113da5f9b28 100644 --- a/tests/wpt/web-platform-tests/html/dom/original-harness.js +++ b/tests/wpt/web-platform-tests/html/dom/original-harness.js @@ -5,13 +5,10 @@ ReflectionHarness.passed = document.getElementById("passed"); ReflectionHarness.failed = document.getElementById("failed"); /** - * Should we report a failure for unexpected exceptions, or just rethrow them? - * The original test framework reports an exception, but testharness.js doesn't - * want that. - * - * @public + * In conformance testing mode, all tests will be run. Otherwise, we'll skip + * tests for attributes that have an entirely incorrect type. */ -ReflectionHarness.catchUnexpectedExceptions = true; +ReflectionHarness.conformanceTesting = false; /** * Returns a string representing val. Basically just adds quotes for strings, @@ -86,12 +83,28 @@ ReflectionHarness.stringRep = function(val) { ReflectionHarness.currentTestInfo = {}; /** - * This is called when we want to test a single element/attribute combination. - * For the original harness, it does nothing special (just calls the function), - * but for testharness.js, it can wrap everything in a test() call. + * .test() sets this, and it's used by .assertEquals()/.assertThrows(). + * Calling .test() recursively is an error. */ -ReflectionHarness.testWrapper = function(fn) { - fn(); +ReflectionHarness.currentTestDescription = null; + +/** + * Run a group of one or more assertions. If any exceptions are thrown, catch + * them and report a failure. + */ +ReflectionHarness.test = function(fn, description) { + if (this.currentTestDescription) { + throw "TEST BUG: test() may not be called recursively!"; + } + this.currentTestDescription = description; + try { + fn(); + // Not throwing is a success + this.success(); + } catch(err) { + this.failure("Exception thrown during tests with " + description); + } + this.currentTestDescription = null; } /** @@ -102,37 +115,29 @@ ReflectionHarness.testWrapper = function(fn) { * * @public */ -ReflectionHarness.test = function(expected, actual, description) { +ReflectionHarness.assertEquals = function(expected, actual, description) { // Special-case -0 yay! if (expected === 0 && actual === 0 && 1/expected === 1/actual) { this.increment(this.passed); - return true; } else if (expected === actual) { this.increment(this.passed); - return true; } else { this.increment(this.failed); - this.reportFailure(description + ' (expected ' + this.stringRep(actual) + ', got ' + this.stringRep(expected) + ')'); - return false; - } -} - -ReflectionHarness.run = function(fun, description) { - try { - fun(); - } catch (err) { - ReflectionHarness.failure(description); + this.reportFailure(this.currentTestDescription + + (description ? " followed by " + description : "") + + ' (expected ' + this.stringRep(actual) + ', got ' + + this.stringRep(expected) + ')'); } } /** * If calling fn causes a DOMException of the type given by the string - * exceptionName (e.g., "INDEX_SIZE_ERR"), output a success. Otherwise, report - * a failure with the given description. + * exceptionName (e.g., "IndexSizeError"), output a success. Otherwise, report + * a failure. * * @public */ -ReflectionHarness.testException = function(exceptionName, fn, description) { +ReflectionHarness.assertThrows = function(exceptionName, fn) { try { fn(); } catch (e) { @@ -142,7 +147,8 @@ ReflectionHarness.testException = function(exceptionName, fn, description) { } } this.increment(this.failed); - this.reportFailure(description); + this.reportFailure(this.currentTestDescription + " must throw " + + exceptionName); return false; } @@ -248,9 +254,9 @@ ReflectionHarness.reportFailure = function(description) { } /** - * Shorthand function for when we have a failure outside of test(). Generally - * used when the failure is an exception thrown unexpectedly or such, something - * not equality-based. + * Shorthand function for when we have a failure outside of + * assertEquals()/assertThrows(). Generally used when the failure is an + * exception thrown unexpectedly or such, something not equality-based. * * @public */ @@ -260,8 +266,8 @@ ReflectionHarness.failure = function(message) { } /** - * Shorthand function for when we have a success outside of test(). Only - * called if catchUnexpectedExceptions is true. + * Shorthand function for when we have a success outside of + * assertEquals()/assertThrows(). * * @public */ diff --git a/tests/wpt/web-platform-tests/html/dom/reflection.js b/tests/wpt/web-platform-tests/html/dom/reflection.js index 72ed01ef7bf..b105a8b5ad6 100644 --- a/tests/wpt/web-platform-tests/html/dom/reflection.js +++ b/tests/wpt/web-platform-tests/html/dom/reflection.js @@ -567,15 +567,6 @@ ReflectionTests.reflects = function(data, idlName, idlObj, domName, domObj) { // probably safe enough. Just don't read stuff that will change. ReflectionHarness.currentTestInfo = {data: data, idlName: idlName, idlObj: idlObj, domName: domName, domObj: domObj}; - ReflectionHarness.testWrapper(function() { - ReflectionTests.doReflects(data, idlName, idlObj, domName, domObj); - }); -}; - -/** - * Actual implementation of the above. - */ -ReflectionTests.doReflects = function(data, idlName, idlObj, domName, domObj) { // If we don't recognize the type, testing is impossible. if (this.typeMap[data.type] === undefined) { if (unimplemented.indexOf(data.type) == -1) { @@ -591,9 +582,15 @@ ReflectionTests.doReflects = function(data, idlName, idlObj, domName, domObj) { } // Test that typeof idlObj[idlName] is correct. If not, further tests are - // probably pointless, so bail out. - var isDefaultValueNull = data.isNullable && data.defaultVal === null; - if (!ReflectionHarness.test(typeof idlObj[idlName], isDefaultValueNull ? "object" : typeInfo.jsType, "typeof IDL attribute")) { + // probably pointless, so bail out if we're not running conformance tests. + var expectedType = data.isNullable && data.defaultVal === null ? "object" + : typeInfo.jsType; + ReflectionHarness.test(function() { + ReflectionHarness.assertEquals(typeof idlObj[idlName], expectedType); + }, "typeof IDL attribute"); + + if (!ReflectionHarness.conformanceTesting && + typeof idlObj[idlName] !== expectedType) { return; } @@ -603,7 +600,9 @@ ReflectionTests.doReflects = function(data, idlName, idlObj, domName, domObj) { defaultVal = typeInfo.defaultVal; } if (defaultVal !== null || data.isNullable) { - ReflectionHarness.test(idlObj[idlName], defaultVal, "IDL get with DOM attribute unset"); + ReflectionHarness.test(function() { + ReflectionHarness.assertEquals(idlObj[idlName], defaultVal); + }, "IDL get with DOM attribute unset"); } var domTests = typeInfo.domTests.slice(0); @@ -704,50 +703,42 @@ ReflectionTests.doReflects = function(data, idlName, idlObj, domName, domObj) { // the test. continue; } - try { + ReflectionHarness.test(function() { domObj.setAttribute(domName, domTests[i]); - ReflectionHarness.test(domObj.getAttribute(domName), String(domTests[i]), "setAttribute() to " + ReflectionHarness.stringRep(domTests[i]) + " followed by getAttribute()"); - ReflectionHarness.test(idlObj[idlName], domExpected[i], "setAttribute() to " + ReflectionHarness.stringRep(domTests[i]) + " followed by IDL get"); - if (ReflectionHarness.catchUnexpectedExceptions) { - ReflectionHarness.success(); - } - } catch (err) { - if (ReflectionHarness.catchUnexpectedExceptions) { - ReflectionHarness.failure("Exception thrown during tests with setAttribute() to " + ReflectionHarness.stringRep(domTests[i])); - } else { - throw err; - } - } + ReflectionHarness.assertEquals(domObj.getAttribute(domName), + String(domTests[i]), "getAttribute()"); + ReflectionHarness.assertEquals(idlObj[idlName], domExpected[i], + "IDL get"); + }, "setAttribute() to " + ReflectionHarness.stringRep(domTests[i])); } } for (var i = 0; i < idlTests.length; i++) { - if ((data.type == "limited long" && idlTests[i] < 0) || - (data.type == "limited unsigned long" && idlTests[i] == 0)) { - ReflectionHarness.testException("INDEX_SIZE_ERR", function() { - idlObj[idlName] = idlTests[i]; - }, "IDL set to " + ReflectionHarness.stringRep(idlTests[i]) + " must throw INDEX_SIZE_ERR"); - } else { - ReflectionHarness.run(function() { + ReflectionHarness.test(function() { + if ((data.type == "limited long" && idlTests[i] < 0) || + (data.type == "limited unsigned long" && idlTests[i] == 0)) { + ReflectionHarness.assertThrows("IndexSizeError", function() { + idlObj[idlName] = idlTests[i]; + }); + } else { idlObj[idlName] = idlTests[i]; if (data.type == "boolean") { // Special case yay - ReflectionHarness.test(domObj.hasAttribute(domName), Boolean(idlTests[i]), "IDL set to " + ReflectionHarness.stringRep(idlTests[i]) + " followed by hasAttribute()"); + ReflectionHarness.assertEquals(domObj.hasAttribute(domName), + Boolean(idlTests[i]), "hasAttribute()"); } else if (idlDomExpected[i] !== null || data.isNullable) { var expected = idlDomExpected[i] + ""; if (data.isNullable && idlDomExpected[i] === null) { expected = null; } - ReflectionHarness.test(domObj.getAttribute(domName), expected, "IDL set to " + ReflectionHarness.stringRep(idlTests[i]) + " followed by getAttribute()"); + ReflectionHarness.assertEquals(domObj.getAttribute(domName), expected, + "getAttribute()"); } if (idlIdlExpected[i] !== null || data.isNullable) { - ReflectionHarness.test(idlObj[idlName], idlIdlExpected[i], "IDL set to " + ReflectionHarness.stringRep(idlTests[i]) + " followed by IDL get"); + ReflectionHarness.assertEquals(idlObj[idlName], idlIdlExpected[i], "IDL get"); } - if (ReflectionHarness.catchUnexpectedExceptions) { - ReflectionHarness.success(); - } - }, "IDL set to " + ReflectionHarness.stringRep(idlTests[i]) + " should not throw"); - } + } + }, "IDL set to " + ReflectionHarness.stringRep(idlTests[i])); } }; diff --git a/tests/wpt/web-platform-tests/html/editing/activation/click-manual.html b/tests/wpt/web-platform-tests/html/editing/activation/click-manual.html new file mode 100644 index 00000000000..1359a43c1b8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/editing/activation/click-manual.html @@ -0,0 +1,5 @@ + +Interaction of UI input and the click in progress flag +

                                                                                        When you mouse click the checkbox below it should not be checked:

                                                                                        +

                                                                                        +

                                                                                        Now keyboard "click" the checkbox and confirm it's still not checked.

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/editing/dnd/the-datatransfer-interface/dndTransferCases-manual.html b/tests/wpt/web-platform-tests/html/editing/dnd/the-datatransfer-interface/dndTransferCases-manual.html index 84a8c7ea62d..6081b5d42c3 100755 --- a/tests/wpt/web-platform-tests/html/editing/dnd/the-datatransfer-interface/dndTransferCases-manual.html +++ b/tests/wpt/web-platform-tests/html/editing/dnd/the-datatransfer-interface/dndTransferCases-manual.html @@ -4,7 +4,8 @@ HTML Test: dropzone_attribute_data_item_kind_string - + + + +

                                                                                        This test matches if both lists display similar to the following:

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +   D
                                                                                        +3. E
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. + D +
                                                                                        5. E
                                                                                        6. +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. + D +
                                                                                        5. E
                                                                                        6. +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html new file mode 100644 index 00000000000..ce63cf7c7c0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html @@ -0,0 +1,44 @@ + + +display: list-item on non-<li> elements + + + + + + + + +

                                                                                        This test matches if both lists display similar to the following:

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +   D
                                                                                        +3. E
                                                                                        + +
                                                                                        + +
                                                                                          + A + B + + D + E +
                                                                                        + +
                                                                                          +
                                                                                          A
                                                                                          +
                                                                                          B
                                                                                          + +
                                                                                          D
                                                                                          +
                                                                                          E
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu-ref.html new file mode 100644 index 00000000000..2b1ea76656f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu-ref.html @@ -0,0 +1,46 @@ + + +list owner is calculated to be narest ancestor menu if it exists + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J +
                                                                                              +
                                                                                            1. K
                                                                                            2. +
                                                                                            3. L
                                                                                            4. +
                                                                                            +
                                                                                          4. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html new file mode 100644 index 00000000000..86afa5d2067 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html @@ -0,0 +1,58 @@ + + +list owner is calculated to be narest ancestor menu if it exists + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + + +
                                                                                      • A
                                                                                      • +
                                                                                      • B
                                                                                      • +
                                                                                        +
                                                                                      • C
                                                                                      • + +
                                                                                      • D
                                                                                      • +
                                                                                      • E
                                                                                      • +
                                                                                        + +
                                                                                      • F
                                                                                      • +
                                                                                      • G
                                                                                      • +
                                                                                        +
                                                                                        +
                                                                                      • H
                                                                                      • + +
                                                                                      • I
                                                                                      • +
                                                                                      • + J + +
                                                                                      • K
                                                                                      • +
                                                                                      • L
                                                                                      • +
                                                                                        +
                                                                                      • +
                                                                                        +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed-ref.html new file mode 100644 index 00000000000..b72768aefc5 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed-ref.html @@ -0,0 +1,52 @@ + + +list owner is calculated to be nearest ancestor ul or ul (but not dir) if it exists + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          3. K
                                                                                        +          4. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J + +
                                                                                          4. K
                                                                                          5. +
                                                                                          6. L
                                                                                          7. +
                                                                                            +
                                                                                          8. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html new file mode 100644 index 00000000000..82e39f995ec --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html @@ -0,0 +1,64 @@ + + +list owner is calculated to be nearest ancestor ul or ul (but not dir) if it exists + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          3. K
                                                                                        +          4. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        • A
                                                                                        • +
                                                                                        • B
                                                                                        • +
                                                                                          +
                                                                                        • C
                                                                                        • + +
                                                                                        • D
                                                                                        • +
                                                                                        • E
                                                                                        • +
                                                                                          +
                                                                                            +
                                                                                          1. F
                                                                                          2. + G +
                                                                                          +
                                                                                          +
                                                                                        • H
                                                                                        • +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J + +
                                                                                          4. K
                                                                                          5. +
                                                                                          6. L
                                                                                          7. +
                                                                                            +
                                                                                          8. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir-ref.html new file mode 100644 index 00000000000..fad00fa3bde --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir-ref.html @@ -0,0 +1,52 @@ + + +The dir element is not treated specially when calculating list owners + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     6. F
                                                                                        +     7. G
                                                                                        +8. H
                                                                                        +     9. I
                                                                                        +     10. J
                                                                                        +          11. K
                                                                                        +          12. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. + +
                                                                                        11. F
                                                                                        12. +
                                                                                        13. G
                                                                                        14. +
                                                                                          +
                                                                                        15. H
                                                                                        16. + +
                                                                                        17. I
                                                                                        18. +
                                                                                        19. + J + +
                                                                                        20. K
                                                                                        21. +
                                                                                        22. L
                                                                                        23. +
                                                                                          +
                                                                                        24. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html new file mode 100644 index 00000000000..747d90738b0 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html @@ -0,0 +1,58 @@ + + +The dir element is not treated specially when calculating list owners + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     6. F
                                                                                        +     7. G
                                                                                        +8. H
                                                                                        +     9. I
                                                                                        +     10. J
                                                                                        +          11. K
                                                                                        +          12. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                          +
                                                                                        5. C
                                                                                        6. + +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                          + +
                                                                                        11. F
                                                                                        12. +
                                                                                        13. G
                                                                                        14. +
                                                                                          +
                                                                                          +
                                                                                        15. H
                                                                                        16. + +
                                                                                        17. I
                                                                                        18. +
                                                                                        19. + J + +
                                                                                        20. K
                                                                                        21. +
                                                                                        22. L
                                                                                        23. +
                                                                                          +
                                                                                        24. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol-ref.html new file mode 100644 index 00000000000..96cc9c3600d --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol-ref.html @@ -0,0 +1,46 @@ + + +list owner is calculated to be narest ancestor ol if it exists + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J +
                                                                                              +
                                                                                            1. K
                                                                                            2. +
                                                                                            3. L
                                                                                            4. +
                                                                                            +
                                                                                          4. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html new file mode 100644 index 00000000000..fcb93cfbb53 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html @@ -0,0 +1,52 @@ + + +list owner is calculated to be narest ancestor ol if it exists + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                          +
                                                                                        5. C
                                                                                        6. + +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                          +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J +
                                                                                              +
                                                                                            1. K
                                                                                            2. +
                                                                                            3. L
                                                                                            4. +
                                                                                            +
                                                                                          4. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent-ref.html new file mode 100644 index 00000000000..03a0570ba40 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent-ref.html @@ -0,0 +1,40 @@ + + +list owner is calculated to be the parent if there is no ancestor ul/ol/menu + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +1. C
                                                                                        +1. D
                                                                                        +       1. E
                                                                                        +3. F
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                          +
                                                                                        9. E
                                                                                        10. +
                                                                                          +
                                                                                        11. F
                                                                                        12. +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html new file mode 100644 index 00000000000..0345add996e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html @@ -0,0 +1,45 @@ + + +list owner is calculated to be the parent if there is no ancestor ul/ol/menu + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +1. C
                                                                                        +1. D
                                                                                        +       1. E
                                                                                        +3. F
                                                                                        + +
                                                                                        + +
                                                                                        +
                                                                                      • A
                                                                                      • +
                                                                                      • B
                                                                                      • +
                                                                                        +
                                                                                      • C
                                                                                      • + +
                                                                                      • D
                                                                                      • +
                                                                                        +
                                                                                        +
                                                                                        +
                                                                                      • E
                                                                                      • +
                                                                                        +
                                                                                      • F
                                                                                      • +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes-ref.html new file mode 100644 index 00000000000..e758f52be96 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes-ref.html @@ -0,0 +1,42 @@ + + +list owner calculation skips elements that do not generate layout boxes + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +6. F
                                                                                        +7. G
                                                                                        +8. H
                                                                                        +9. I
                                                                                        +10. J
                                                                                        +     1. K
                                                                                        +     2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                        11. F
                                                                                        12. +
                                                                                        13. G
                                                                                        14. +
                                                                                        15. H
                                                                                        16. +
                                                                                        17. I
                                                                                        18. +
                                                                                        19. + J +
                                                                                            +
                                                                                          1. K
                                                                                          2. +
                                                                                          3. L
                                                                                          4. +
                                                                                          +
                                                                                        20. +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html new file mode 100644 index 00000000000..defdcb70003 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html @@ -0,0 +1,52 @@ + + +list owner calculation skips elements that do not generate layout boxes + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +6. F
                                                                                        +7. G
                                                                                        +8. H
                                                                                        +9. I
                                                                                        +10. J
                                                                                        +     1. K
                                                                                        +     2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                          +
                                                                                        5. C
                                                                                        6. + +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                          +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J +
                                                                                              +
                                                                                            1. K
                                                                                            2. +
                                                                                            3. L
                                                                                            4. +
                                                                                            +
                                                                                          4. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul-ref.html new file mode 100644 index 00000000000..22ee9f437f1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul-ref.html @@ -0,0 +1,46 @@ + + +list owner is calculated to be nearest ancestor ul if it exists + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. C
                                                                                        6. +
                                                                                        7. D
                                                                                        8. +
                                                                                        9. E
                                                                                        10. +
                                                                                            +
                                                                                          1. F
                                                                                          2. +
                                                                                          3. G
                                                                                          4. +
                                                                                          +
                                                                                        11. H
                                                                                        12. +
                                                                                            +
                                                                                          1. I
                                                                                          2. +
                                                                                          3. + J +
                                                                                              +
                                                                                            1. K
                                                                                            2. +
                                                                                            3. L
                                                                                            4. +
                                                                                            +
                                                                                          4. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html new file mode 100644 index 00000000000..8f1c7e3766a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html @@ -0,0 +1,58 @@ + + +list owner is calculated to be nearest ancestor ul if it exists + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. C
                                                                                        +4. D
                                                                                        +5. E
                                                                                        +     1. F
                                                                                        +     2. G
                                                                                        +6. H
                                                                                        +     1. I
                                                                                        +     2. J
                                                                                        +          1. K
                                                                                        +          2. L
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        • A
                                                                                        • +
                                                                                        • B
                                                                                        • +
                                                                                          +
                                                                                        • C
                                                                                        • + +
                                                                                        • D
                                                                                        • +
                                                                                        • E
                                                                                        • +
                                                                                          +
                                                                                            +
                                                                                          • F
                                                                                          • +
                                                                                          • G
                                                                                          • +
                                                                                          +
                                                                                          +
                                                                                        • H
                                                                                        • +
                                                                                            +
                                                                                          • I
                                                                                          • +
                                                                                          • + J +
                                                                                              +
                                                                                            • K
                                                                                            • +
                                                                                            • L
                                                                                            • +
                                                                                            +
                                                                                          • +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html new file mode 100644 index 00000000000..e3ed2a51482 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner-ref.html @@ -0,0 +1,29 @@ + + +If no ancestors generate CSS boxes, the list item has no owner, and thus gets numbered as 0 + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        0. A
                                                                                        +0. B
                                                                                        +0. C
                                                                                        + +
                                                                                        + +
                                                                                      • A
                                                                                      • +
                                                                                      • B
                                                                                      • +
                                                                                      • C
                                                                                      • diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html new file mode 100644 index 00000000000..02fdd63de8c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-no-list-owner.html @@ -0,0 +1,31 @@ + + +If no ancestors generate CSS boxes, the list item has no owner, and thus gets numbered as 0 + + + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        0. A
                                                                                        +0. B
                                                                                        +0. C
                                                                                        + +
                                                                                        + +
                                                                                      • A
                                                                                      • +
                                                                                      • B
                                                                                      • +
                                                                                      • C
                                                                                      • diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered-ref.html new file mode 100644 index 00000000000..9a018cfaf3e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered-ref.html @@ -0,0 +1,24 @@ + + +List items that are not being rendered do not participate in numbering + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. D
                                                                                        +4. E
                                                                                        +5. G
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. +
                                                                                        5. D
                                                                                        6. +
                                                                                        7. E
                                                                                        8. +
                                                                                        9. G
                                                                                        10. +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html new file mode 100644 index 00000000000..da476c4bffc --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html @@ -0,0 +1,30 @@ + + +List items that are not being rendered do not participate in numbering + + + + + + +

                                                                                        This test matches if the list displays similar to the following

                                                                                        + +
                                                                                        1. A
                                                                                        +2. B
                                                                                        +3. D
                                                                                        +4. E
                                                                                        +5. G
                                                                                        + +
                                                                                        + +
                                                                                          +
                                                                                        1. A
                                                                                        2. +
                                                                                        3. B
                                                                                        4. + +
                                                                                        5. D
                                                                                        6. +
                                                                                          +
                                                                                        7. E
                                                                                        8. + +
                                                                                        9. G
                                                                                        10. +
                                                                                          +
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/.gitkeep b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001-ref.html index 019aef1b6ff..8da32887f8e 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001-ref.html @@ -17,9 +17,6 @@

                                                                                        These reftests are necessary because the values of the ol's li children as calculated by the user agent are NOT available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -
                                                                                        "The reversed attribute is a boolean attribute. If present, it indicates that the list is a descending list (..., 3, 2, 1). If the attribute is omitted, the list is an ascending list (1, 2, 3, ...)."
                                                                                        -

                                                                                        This reftest passes if you see an ascending list followed by two descending lists.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html index 32d4f2c86f9..7c502e38357 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html @@ -20,9 +20,6 @@

                                                                                        These reftests are necessary because the values of the ol's li children as calculated by the user agent are NOT available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -
                                                                                        "The reversed attribute is a boolean attribute. If present, it indicates that the list is a descending list (..., 3, 2, 1). If the attribute is omitted, the list is an ascending list (1, 2, 3, ...)."
                                                                                        -

                                                                                        This reftest passes if you see an ascending list followed by two descending lists.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001-ref.html index f87074899a5..0f651183a8d 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001-ref.html @@ -14,10 +14,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The first item in the list has the ordinal value given by the ol element's start attribute, unless that li element has a value attribute with a value that can be successfully parsed, in which case it has the ordinal value given by that value attribute.

                                                                                        -

                                                                                        Each subsequent item in the list has the ordinal value given by its value attribute, if it has one, or, if it doesn't, the ordinal value of the previous item, plus one if the reversed is absent, or minus one if it is present.

                                                                                        -

                                                                                        This reftest passes if each list's items are numbered identically to the horizontal sequence immediately above those list items.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html index dc373f91019..b6de3dbb4b1 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html @@ -17,10 +17,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The first item in the list has the ordinal value given by the ol element's start attribute, unless that li element has a value attribute with a value that can be successfully parsed, in which case it has the ordinal value given by that value attribute.

                                                                                        -

                                                                                        Each subsequent item in the list has the ordinal value given by its value attribute, if it has one, or, if it doesn't, the ordinal value of the previous item, plus one if the reversed is absent, or minus one if it is present.

                                                                                        -

                                                                                        This reftest passes if each list's items are numbered identically to the horizontal sequence immediately above those list items.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002-ref.html index 2ba4af9b100..2dbdf4aa744 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002-ref.html @@ -14,10 +14,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The first item in the list has the ordinal value given by the ol element's start attribute, unless that li element has a value attribute with a value that can be successfully parsed, in which case it has the ordinal value given by that value attribute.

                                                                                        -

                                                                                        Each subsequent item in the list has the ordinal value given by its value attribute, if it has one, or, if it doesn't, the ordinal value of the previous item, plus one if the reversed is absent, or minus one if it is present.

                                                                                        -

                                                                                        This reftest passes if each list's items are numbered identically to the horizontal sequence immediately above those list items.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html index 559e3c21967..9b21c79496f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html @@ -17,10 +17,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The first item in the list has the ordinal value given by the ol element's start attribute, unless that li element has a value attribute with a value that can be successfully parsed, in which case it has the ordinal value given by that value attribute.

                                                                                        -

                                                                                        Each subsequent item in the list has the ordinal value given by its value attribute, if it has one, or, if it doesn't, the ordinal value of the previous item, plus one if the reversed is absent, or minus one if it is present.

                                                                                        -

                                                                                        This reftest passes if each list's items are numbered identically to the horizontal sequence immediately above those list items.

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001-ref.html index 294c9abc2d2..391859efc63 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001-ref.html @@ -14,9 +14,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The type attribute represents the state given in the cell in the second column of the row whose first cell matches the attribute's value; if none of the cells match, or if the attribute is omitted, then the attribute represents the decimal state.

                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html index 32b0e200ba5..b7dc22d779a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html @@ -16,9 +16,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -

                                                                                        The type attribute represents the state given in the cell in the second column of the row whose first cell matches the attribute's value; if none of the cells match, or if the attribute is omitted, then the attribute represents the decimal state.

                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002-ref.html index cf31b7a9c2e..8d8012e8eda 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002-ref.html @@ -14,9 +14,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -
                                                                                        User agents should render the items of the list in a manner consistent with the state of the type attribute of the ol element.
                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html index 7daea54c027..db55fd4bc41 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html @@ -16,9 +16,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states:

                                                                                        -
                                                                                        User agents should render the items of the list in a manner consistent with the state of the type attribute of the ol element.
                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003-ref.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003-ref.html index 4906f3ca6df..6c836cf3675 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003-ref.html @@ -14,8 +14,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states: Numbers less than or equal to zero should always use the decimal system regardless of the type attribute.

                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html index 5e4b5a58885..654287298f8 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html @@ -16,8 +16,6 @@

                                                                                        This test continues to validate the ol element. This reftest is necessary because the values of the ol's li children as calculated and displayed by the user agent are NOT systematically available programatically. Only explicitly-set values are available programatically. Therefore, we need to check actual rendering against expected rendering.

                                                                                        -

                                                                                        The spec states: Numbers less than or equal to zero should always use the decimal system regardless of the type attribute.

                                                                                        -

                                                                                        This reftest passes if each list's items are labelled identically to the horizontal sequence immediately above those list items:

                                                                                        (Note: each list item has no content; only the sequencing should appear.)

                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html index 0de2a064103..80fa734a92e 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html @@ -230,83 +230,68 @@ // is the number of child li elements otherwise." // "The start IDL attribute has the same default as its content attribute." - // basic - default should be 1 test(function() { - assert_equals(document.getElementById("basic").start, 1, "no start attribute provided -> 1"); + assert_equals(document.getElementById("basic").start, 1); }, "Default start value for non-reversed list should be 1"); - // decimal's first element has value of .5 which should return 1 test(function() { - assert_equals(document.getElementById("decimal").start, 1, "start of .5 -> 1 (default)"); + assert_equals(document.getElementById("decimal").start, 1); }, "IDL and content attribute parse start of '.5' correctly."); - // letter's first element has value of A which should return 1 test(function() { - assert_equals(document.getElementById("letter").start, 1, "start of A -> 1 (default)"); + assert_equals(document.getElementById("letter").start, 1); }, "IDL and content attribute parse start of 'A' correctly."); - // basicRevGoodName - default should be 3 test(function() { - assert_equals(document.getElementById("basicRevGoodName").start, 3, "no start attribute provided -> 3"); - }, "Default start value (if none provided) for reversed list = child li elements."); + assert_equals(document.getElementById("basicRevGoodName").start, 1); + }, "Default start value (if none provided) for reversed list = 1."); - // basicRevEmpty - default should be 3 test(function() { - assert_equals(document.getElementById("basicRevEmpty").start, 3, "start of A -> 3 (default)"); - }, "Default start value (if failed to parse) for reversed list = child li elements."); + assert_equals(document.getElementById("basicRevEmpty").start, 1); + }, "Default start value (if failed to parse) for reversed list = 1."); - // lots - default should be 3 test(function() { - assert_equals(document.getElementById("lots").start, 3, "no start attribute -> 3 (default)"); - }, "Default start value for reversed list = child li elements (even with tons of other child elements)."); + assert_equals(document.getElementById("lots").start, 1); + }, "Default start value for reversed list = 1 (even with tons of other child elements)."); - // adding child element changes default start value for reversed list test(function() { var myList = document.getElementById("basicRevGoodName"), myLI = document.createElement("li"); myList.appendChild(myLI); - assert_equals(document.getElementById("basicRevGoodName").start, 4, "Adding child element to reversed list adds 1 to start value"); - }, "Adding child element to reversed list adds 1 to start value"); + assert_equals(document.getElementById("basicRevGoodName").start, 1); + }, "Adding child element to reversed list does not change start value"); - // removing child element changes default start value for reversed list test(function() { var myList = document.getElementById("basicRevTrue"); myList.removeChild(myList.children[0]); - assert_equals(document.getElementById("basicRevTrue").start, 2, "Deleting child element from reversed list reduces start value by 1"); - }, "Deleting child element from reversed list reduces start value by 1"); + assert_equals(document.getElementById("basicRevTrue").start, 1); + }, "Deleting child element from reversed list does not change start value"); - // start2's first element has value of 2 test(function() { - assert_equals(document.getElementById("start2").start, 2, "start of 2 -> 2"); + assert_equals(document.getElementById("start2").start, 2); }, "IDL and content attribute parse start of '2' correctly."); - // negative's first element has value of -10 test(function() { - assert_equals(document.getElementById("negative").start, -10, "start of -10 -> -10"); + assert_equals(document.getElementById("negative").start, -10); }, "IDL and content attribute parse start of '-10' correctly."); - // posFloatDown's first element has value of 4.03 which should return 4 test(function() { - assert_equals(document.getElementById("posFloatDown").start, 4, "start of 4.03 -> 4"); + assert_equals(document.getElementById("posFloatDown").start, 4); }, "IDL and content attribute parse start of '4.03' correctly."); - // negFloatDown's first element has value of -4.03 which should return -4 test(function() { - assert_equals(document.getElementById("negFloatDown").start, -4, "start of -4.03 -> -4"); + assert_equals(document.getElementById("negFloatDown").start, -4); }, "IDL and content attribute parse start of '-4.03' correctly."); - // posFloatUp's first element has value of 4.9 which should return 4 test(function() { - assert_equals(document.getElementById("posFloatUp").start, 4, "start of 4.9 -> 4"); + assert_equals(document.getElementById("posFloatUp").start, 4); }, "IDL and content attribute parse start of '4.9' correctly."); - // negFloatUp's first element has value of -4.9 which should return -4 test(function() { - assert_equals(document.getElementById("negFloatUp").start, -4, "start of -4.9 -> -4"); + assert_equals(document.getElementById("negFloatUp").start, -4); }, "IDL and content attribute parse start of '-4.9' correctly."); - // exponent's first element has value of 7e2 which should return 7 test(function() { - assert_equals(document.getElementById("exponent").start, 7, "start of 7e2 -> 7"); + assert_equals(document.getElementById("exponent").start, 7); }, "IDL and content attribute parse start of '7e2' correctly."); diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html index f6a260a8b4e..c7c9aeab481 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html @@ -18,7 +18,7 @@
                                                                                        diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a.html index 35e967c05e6..202315b1c6b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a.html @@ -1,4 +1,8 @@ + +`reversed` should reverse the numbering correctly + +
                                                                                        1. Three
                                                                                        2. Two
                                                                                        3. diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b.html index d9810560eb7..4d6202943d0 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b.html @@ -1,4 +1,8 @@ + +Dynamically setting `reversed` should update the numbering + +
                                                                                          1. Three
                                                                                          2. Two
                                                                                          3. diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c.html index 82ae844335e..6fad13053f1 100644 --- a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c.html +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c.html @@ -1,4 +1,8 @@ + +Reversed numbering should update on dynamic addition of child nodes + +
                                                                                            1. Three
                                                                                            2. Two
                                                                                            3. diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1d.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1d.html new file mode 100644 index 00000000000..a256b6a428f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1d.html @@ -0,0 +1,12 @@ + + +Reverse numbering should not be affected by nested div + + +
                                                                                                +
                                                                                              1. Three
                                                                                              2. +
                                                                                                +
                                                                                              3. Two
                                                                                              4. +
                                                                                              5. One
                                                                                              6. +
                                                                                                +
                                                                                              diff --git a/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1e.html b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1e.html new file mode 100644 index 00000000000..48a27999423 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1e.html @@ -0,0 +1,11 @@ + + +Reverse numbering should not count display:none elements + + +
                                                                                                +
                                                                                              1. Three
                                                                                              2. +
                                                                                              3. Three
                                                                                              4. +
                                                                                              5. Two
                                                                                              6. +
                                                                                              7. One
                                                                                              8. +
                                                                                              diff --git a/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html new file mode 100644 index 00000000000..3d22481d29f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html @@ -0,0 +1,78 @@ + + +Test behavior of rel="noopener" links + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-popup.html b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-popup.html new file mode 100644 index 00000000000..2057dbf0bea --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-popup.html @@ -0,0 +1,19 @@ + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-1.html b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-1.html new file mode 100644 index 00000000000..0dbd14275cb --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-1.html @@ -0,0 +1,4 @@ + + diff --git a/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-2.html b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-2.html new file mode 100644 index 00000000000..dd2d719134f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/support/noopener-target-2.html @@ -0,0 +1,8 @@ + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html new file mode 100644 index 00000000000..86190b6cf9f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html @@ -0,0 +1,24 @@ + + +data URL and scripts + + +
                                                                                              + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html new file mode 100644 index 00000000000..0fe39b11a81 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html @@ -0,0 +1,12 @@ + + +Test that the insertion point is defined in the error event of a parser-inserted script that actually started a fetch (but just had it fail). + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html new file mode 100644 index 00000000000..6d3f3ef09ee --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html @@ -0,0 +1,13 @@ + + +Test that the insertion point is not defined in the error event of a + parser-inserted script that has an unparseable URL + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html new file mode 100644 index 00000000000..ce3ddeee65f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html @@ -0,0 +1,12 @@ + + +Test that the insertion point is defined in the load event of a parser-inserted script. + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-1-helper.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-1-helper.html new file mode 100644 index 00000000000..d9b0c84ca4f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-1-helper.html @@ -0,0 +1,2 @@ +Some diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-2-helper.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-2-helper.html new file mode 100644 index 00000000000..7a173981562 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-2-helper.html @@ -0,0 +1,2 @@ +Some diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.html new file mode 100644 index 00000000000..f0236b4fbb3 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.html @@ -0,0 +1,2 @@ +Some diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.js new file mode 100644 index 00000000000..8a96a0b783e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.js @@ -0,0 +1 @@ +document.write("te"); diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/node-document-changes.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/node-document-changes.html index 8027fbb9196..0c60c10738d 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/node-document-changes.html +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/node-document-changes.html @@ -14,7 +14,6 @@
                                                                                              diff --git a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow.html b/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow.html index c81abd82600..5e50a318739 100644 --- a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow.html +++ b/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow.html @@ -51,4 +51,11 @@ test(function () { assert_equals(tbody.rows.length, 0); }, "HTMLTableSectionElement deleteRow(-1) with no rows"); +test(function () { + assert_equals(tbody.rows.length, 0); + assert_throws("IndexSizeError", function () { + tbody.deleteRow(0); + }); +}, "HTMLTableSectionElement deleteRow(0) with no rows"); + diff --git a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell.html b/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell.html index 1400d32e1b1..aa15ef77ec2 100644 --- a/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell.html +++ b/tests/wpt/web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell.html @@ -51,4 +51,11 @@ test(function () { assert_equals(tr.cells.length, 0); }, "HTMLTableRowElement deleteCell(-1) with no cells"); +test(function () { + assert_equals(tr.cells.length, 0); + assert_throws("IndexSizeError", function () { + tr.deleteCell(0); + }); +}, "HTMLTableRowElement deleteCell(0) with no cells"); + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-exception.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-exception.html new file mode 100644 index 00000000000..fecda221dec --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-exception.html @@ -0,0 +1,22 @@ + + +requestIdleCallback callback exception reported to error handler + + +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-iframe.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-iframe.html new file mode 100644 index 00000000000..965941be107 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-iframe.html @@ -0,0 +1,17 @@ + + + + + +
                                                                                              + + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-invoked.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-invoked.html new file mode 100644 index 00000000000..5e799cf39f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-invoked.html @@ -0,0 +1,12 @@ + + +requestIdleCallback callback must be called eventually + + +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-multiple-calls.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-multiple-calls.html new file mode 100644 index 00000000000..8584c71daf1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-multiple-calls.html @@ -0,0 +1,41 @@ + + +multiple calls to requestIdleCallback + + +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-timeout.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-timeout.html new file mode 100644 index 00000000000..823d5f5db47 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/callback-timeout.html @@ -0,0 +1,28 @@ + + +requestIdleCallback timeout callback must be called with didTimeout equal to true + + +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/cancel-invoked.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/cancel-invoked.html new file mode 100644 index 00000000000..8956b8709dc --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/cancel-invoked.html @@ -0,0 +1,26 @@ + + +cancelling idle requests + + +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/idlharness.html b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/idlharness.html new file mode 100644 index 00000000000..6033535f397 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/idle-callbacks/idlharness.html @@ -0,0 +1,34 @@ + + +idlharness test + + + + + + + +
                                                                                              +partial interface Window {
                                                                                              +  unsigned long requestIdleCallback(IdleRequestCallback callback,
                                                                                              +                                    optional IdleRequestOptions options);
                                                                                              +  void          cancelIdleCallback(unsigned long handle);
                                                                                              +};
                                                                                              +
                                                                                              +dictionary IdleRequestOptions {
                                                                                              +  unsigned long timeout;
                                                                                              +};
                                                                                              +
                                                                                              +callback IdleRequestCallback = void (IdleDeadline deadline);
                                                                                              +
                                                                                              + diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window.html index bfd6f9c6815..1c87892cba7 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window.html +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window.html @@ -21,4 +21,14 @@ handlers.forEach(function(handler) { }, handler); }); +handlers.forEach(function(handler) { + document.body['on' + handler] = null; +}); + +handlers.forEach(function(handler) { + test(function() { + assert_equals(document.body['on' + handler], null); + assert_equals(window['on' + handler], null); + }, handler + " removal"); +}); diff --git a/tests/wpt/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https.html b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https.html new file mode 100644 index 00000000000..8a8a8f67f22 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https.html @@ -0,0 +1,96 @@ + +MessageEvent constructor + + + + diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js index cf16c68d441..78706f44d74 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js +++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js @@ -1,11 +1,19 @@ function run_test() { + var compatibilityMode; + if (navigator.userAgent.includes("Chrome")) { + compatibilityMode = "Chrome"; + } else if (navigator.userAgent.includes("WebKit")) { + compatibilityMode = "WebKit"; + } else { + compatibilityMode = "Gecko"; + } + test(function() { assert_equals(navigator.appCodeName, "Mozilla"); }, "appCodeName"); test(function() { - assert_equals(typeof navigator.appName, "string", - "navigator.appName should be a string"); + assert_equals(navigator.appName, "Netscape"); }, "appName"); test(function() { @@ -23,31 +31,22 @@ function run_test() { }, "product"); test(function() { - // See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555 if ("window" in self) { - // If you identify as WebKit, taintEnabled should not exist. - if (navigator.userAgent.indexOf("WebKit") != -1) { - assert_false("taintEnabled" in navigator); - } - // Otherwise it should exist and return false. - else { - assert_false(navigator.taintEnabled()); + if (compatibilityMode == "Gecko") { + assert_equals(navigator.productSub, "20100101"); + } else { + assert_equals(navigator.productSub, "20030107"); } } else { - // taintEnabled should not exist in workers. - assert_false("taintEnabled" in navigator); + assert_false("productSub" in navigator); } - }, "taintEnabled"); + }, "productSub"); test(function() { assert_equals(typeof navigator.userAgent, "string", "navigator.userAgent should be a string"); }, "userAgent type"); - test(function() { - assert_equals(navigator.vendorSub, ""); - }, "vendorSub"); - async_test(function() { var request = new XMLHttpRequest(); request.onload = this.step_func_done(function() { @@ -60,4 +59,48 @@ function run_test() { "filter_name=User-Agent"); request.send(); }, "userAgent value"); + + test(function() { + if ("window" in self) { + if (compatibilityMode == "Chrome") { + assert_equals(navigator.vendor, "Google Inc."); + } else if (compatibilityMode == "WebKit") { + assert_equals(navigator.vendor, "Apple Computer, Inc."); + } else { + assert_equals(navigator.vendor, ""); + } + } else { + assert_false("vendor" in navigator); + } + }, "vendor"); + + test(function() { + if ("window" in self) { + assert_equals(navigator.vendorSub, ""); + } else { + assert_false("vendorSub" in navigator); + } + }, "vendorSub"); + + // "If the navigator compatibility mode is Gecko, then the user agent must + // also support the following partial interface" (taintEnabled() and oscpu) + // See https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555 and + // https://www.w3.org/Bugs/Public/show_bug.cgi?id=27820 + + test(function() { + if ("window" in self && compatibilityMode == "Gecko") { + assert_false(navigator.taintEnabled()); + } else { + assert_false("taintEnabled" in navigator); + } + }, "taintEnabled"); + + test(function() { + if ("window" in self && compatibilityMode == "Gecko") { + assert_equals(typeof navigator.oscpu, "string", + "navigator.oscpu should be a string"); + } else { + assert_false("oscpu" in navigator); + } + }, "oscpu"); } diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html new file mode 100644 index 00000000000..1dbfa2b46af --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource.html @@ -0,0 +1,90 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha.html new file mode 100644 index 00000000000..88d12d144c2 --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha.html @@ -0,0 +1,75 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation.html new file mode 100644 index 00000000000..3daa3977898 --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-creation.html @@ -0,0 +1,19 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-preserves-canvas.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-preserves-canvas.html new file mode 100644 index 00000000000..eca7afe9ddd --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/context-preserves-canvas.html @@ -0,0 +1,21 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null.html new file mode 100644 index 00000000000..c12a8c93fdb --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null.html @@ -0,0 +1,75 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html new file mode 100644 index 00000000000..2c547ee63b5 --- /dev/null +++ b/tests/wpt/web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached.html @@ -0,0 +1,34 @@ + + +Canvas's ImageBitmapRenderingContext test + + + + diff --git a/tests/wpt/web-platform-tests/innerText/getter-tests.js b/tests/wpt/web-platform-tests/innerText/getter-tests.js index d4511410b46..44be5267e55 100644 --- a/tests/wpt/web-platform-tests/innerText/getter-tests.js +++ b/tests/wpt/web-platform-tests/innerText/getter-tests.js @@ -126,10 +126,6 @@ testText("
                                                                                              abc", "abc", "
                                                                                              contents preserved"); testText("
                                                                                              abc", "abc", "
                                                                                              contents preserved"); testText("", "", " contents ignored"); testText("