aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/MANIFEST.json4993
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.html.ini5
-rw-r--r--tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js.ini5
-rw-r--r--tests/wpt/metadata/dom/ranges/Range-extractContents.html.ini6
-rw-r--r--tests/wpt/metadata/dom/ranges/Range-insertNode.html.ini80
-rw-r--r--tests/wpt/metadata/dom/ranges/Range-surroundContents.html.ini76
-rw-r--r--tests/wpt/metadata/mozilla-sync2
-rw-r--r--tests/wpt/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js1
-rwxr-xr-xtests/wpt/web-platform-tests/XMLHttpRequest/send-content-type-charset.htm4
-rw-r--r--tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html1
-rw-r--r--tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars.html1
-rw-r--r--tests/wpt/web-platform-tests/dom/common.js28
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe1.xml1
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe2.xml1
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml4
-rw-r--r--tests/wpt/web-platform-tests/dom/ranges/Range-constructor.html20
-rw-r--r--tests/wpt/web-platform-tests/dom/ranges/Range-deleteContents.html22
-rw-r--r--tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode.html8
-rw-r--r--tests/wpt/web-platform-tests/dom/ranges/Range-surroundContents.html34
-rw-r--r--tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html92
-rw-r--r--tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html50
-rw-r--r--tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html2
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.html9
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml14
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html5
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html6
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html6
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js2
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection.html1
-rwxr-xr-xtests/wpt/web-platform-tests/lint7
-rw-r--r--tests/wpt/web-platform-tests/microdata/microdata-dom-api/.gitkeep0
-rw-r--r--tests/wpt/web-platform-tests/microdata/microdata-dom-api/001.html3665
-rw-r--r--tests/wpt/web-platform-tests/microdata/microdata-dom-api/htmlpropertiescollection/.gitkeep0
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/manifest.py28
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html71
-rw-r--r--tests/wpt/web-platform-tests/webrtc/datachannel-emptystring.html5
-rw-r--r--tests/wpt/web-platform-tests/webrtc/no-media-call.html6
-rw-r--r--tests/wpt/web-platform-tests/webrtc/promises-call.html5
-rw-r--r--tests/wpt/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html43
-rw-r--r--tests/wpt/web-platform-tests/webrtc/simplecall.html5
48 files changed, 695 insertions, 8686 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index c3d606bfc18..565d49f15c3 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -4276,24 +4276,124 @@
"url": "/html/rendering/bindings/the-textarea-element-0/rows-zero.html"
},
{
- "path": "html/rendering/non-replaced-elements/flow-content-0/div-align.html",
+ "path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
"references": [
[
- "/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html",
+ "/html/rendering/non-replaced-elements/flow-content-0/figure-ref.html",
"=="
]
],
- "url": "/html/rendering/non-replaced-elements/flow-content-0/div-align.html"
+ "url": "/html/rendering/non-replaced-elements/flow-content-0/figure.html"
},
{
- "path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-supported.html",
"references": [
[
- "/html/rendering/non-replaced-elements/flow-content-0/figure-ref.html",
+ "/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html",
"=="
]
],
- "url": "/html/rendering/non-replaced-elements/flow-content-0/figure.html"
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-supported.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html"
+ },
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html"
},
{
"path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html",
@@ -12950,14 +13050,6 @@
"url": "/cors/status.htm"
},
{
- "path": "custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html",
- "url": "/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html"
- },
- {
- "path": "custom-elements/concepts/custom-elements-type-allowed-chars.html",
- "url": "/custom-elements/concepts/custom-elements-type-allowed-chars.html"
- },
- {
"path": "custom-elements/concepts/custom-elements-type-naming.html",
"url": "/custom-elements/concepts/custom-elements-type-naming.html"
},
@@ -13190,10 +13282,6 @@
"url": "/dom/collections/HTMLCollection-supported-property-names.html"
},
{
- "path": "dom/collections/storage-supported-property-names.html",
- "url": "/dom/collections/storage-supported-property-names.html"
- },
- {
"path": "dom/events/Event-constants.html",
"url": "/dom/events/Event-constants.html"
},
@@ -13970,6 +14058,10 @@
"url": "/dom/ranges/Range-commonAncestorContainer-2.html"
},
{
+ "path": "dom/ranges/Range-constructor.html",
+ "url": "/dom/ranges/Range-constructor.html"
+ },
+ {
"path": "dom/traversal/NodeFilter-constants.html",
"url": "/dom/traversal/NodeFilter-constants.html"
},
@@ -17562,10 +17654,6 @@
"url": "/html/semantics/forms/textfieldselection/selection-not-application.html"
},
{
- "path": "html/semantics/forms/textfieldselection/selection.html",
- "url": "/html/semantics/forms/textfieldselection/selection.html"
- },
- {
"path": "html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html",
"url": "/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html"
},
@@ -18914,10 +19002,6 @@
"url": "/mediacapture-streams/stream-api/video-and-audio-tracks/videostreamtrack.html"
},
{
- "path": "microdata/microdata-dom-api/001.html",
- "url": "/microdata/microdata-dom-api/001.html"
- },
- {
"path": "mixed-content/allowed/http-csp/same-host-https/audio-tag/top-level/keep-scheme-redirect/allowed.https.html",
"url": "/mixed-content/allowed/http-csp/same-host-https/audio-tag/top-level/keep-scheme-redirect/allowed.https.html"
},
@@ -26210,6 +26294,10 @@
"url": "/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html"
},
{
+ "path": "webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html",
+ "url": "/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html"
+ },
+ {
"path": "webaudio/the-audio-api/the-delaynode-interface/idl-test.html",
"url": "/webaudio/the-audio-api/the-delaynode-interface/idl-test.html"
},
@@ -27510,6 +27598,10 @@
"url": "/webstorage/storage_string_conversion.html"
},
{
+ "path": "webstorage/storage_supported_property_names.html",
+ "url": "/webstorage/storage_supported_property_names.html"
+ },
+ {
"path": "webvtt/interfaces.html",
"url": "/webvtt/interfaces.html"
},
@@ -28370,6 +28462,16 @@
"url": "/cors/status-async.htm"
},
{
+ "path": "custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html",
+ "timeout": "long",
+ "url": "/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html"
+ },
+ {
+ "path": "custom-elements/concepts/custom-elements-type-allowed-chars.html",
+ "timeout": "long",
+ "url": "/custom-elements/concepts/custom-elements-type-allowed-chars.html"
+ },
+ {
"path": "dom/nodes/Document-characterSet-normalization.html",
"timeout": "long",
"url": "/dom/nodes/Document-characterSet-normalization.html"
@@ -28655,6 +28757,11 @@
"url": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html"
},
{
+ "path": "html/semantics/forms/textfieldselection/selection.html",
+ "timeout": "long",
+ "url": "/html/semantics/forms/textfieldselection/selection.html"
+ },
+ {
"path": "html/syntax/parsing/html5lib_adoption01.html",
"timeout": "long",
"url": "/html/syntax/parsing/html5lib_adoption01.html?run_type=uri"
@@ -29670,4691 +29777,9 @@
]
},
"local_changes": {
- "deleted": [
- "dom/collections/storage-supported-property-names.html"
- ],
- "items": {
- "reftest": {
- "2dcontext/building-paths/canvas_complexshapes_arcto_001.htm": [
- {
- "path": "2dcontext/building-paths/canvas_complexshapes_arcto_001.htm",
- "references": [
- [
- "/2dcontext/building-paths/canvas_complexshapes_arcto_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm"
- }
- ],
- "2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm": [
- {
- "path": "2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm",
- "references": [
- [
- "/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm"
- }
- ],
- "2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm": [
- {
- "path": "2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm",
- "references": [
- [
- "/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_1.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_10.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_11.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_12.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_2.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_3.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_4.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_5.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_6.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_7.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_8.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_canvas_9.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_1.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_10.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_11.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_12.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_13.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_2.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_3.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_4.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_5.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_6.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_7.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_8.html"
- }
- ],
- "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html": [
- {
- "path": "2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html",
- "references": [
- [
- "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/drawing-images-to-the-canvas/drawimage_html_image_9.html"
- }
- ],
- "2dcontext/line-styles/canvas_linestyles_linecap_001.htm": [
- {
- "path": "2dcontext/line-styles/canvas_linestyles_linecap_001.htm",
- "references": [
- [
- "/2dcontext/line-styles/canvas_linestyles_linecap_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/line-styles/canvas_linestyles_linecap_001.htm"
- }
- ],
- "2dcontext/line-styles/lineto_a.html": [
- {
- "path": "2dcontext/line-styles/lineto_a.html",
- "references": [
- [
- "/2dcontext/line-styles/lineto_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/line-styles/lineto_a.html"
- }
- ],
- "2dcontext/shadows/canvas_shadows_002.htm": [
- {
- "path": "2dcontext/shadows/canvas_shadows_002.htm",
- "references": [
- [
- "/2dcontext/shadows/canvas_shadows_002-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/shadows/canvas_shadows_002.htm"
- }
- ],
- "2dcontext/the-canvas-state/canvas_state_restore_001.htm": [
- {
- "path": "2dcontext/the-canvas-state/canvas_state_restore_001.htm",
- "references": [
- [
- "/2dcontext/the-canvas-state/canvas_state_restore_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/the-canvas-state/canvas_state_restore_001.htm"
- }
- ],
- "2dcontext/transformations/canvas_transformations_reset_001.html": [
- {
- "path": "2dcontext/transformations/canvas_transformations_reset_001.html",
- "references": [
- [
- "/2dcontext/transformations/canvas_transformations_reset_001-ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/transformations/canvas_transformations_reset_001.html"
- }
- ],
- "2dcontext/transformations/canvas_transformations_scale_001.htm": [
- {
- "path": "2dcontext/transformations/canvas_transformations_scale_001.htm",
- "references": [
- [
- "/2dcontext/transformations/canvas_transformations_scale_001-ref.htm",
- "=="
- ]
- ],
- "url": "/2dcontext/transformations/canvas_transformations_scale_001.htm"
- }
- ],
- "2dcontext/transformations/transform_a.html": [
- {
- "path": "2dcontext/transformations/transform_a.html",
- "references": [
- [
- "/2dcontext/transformations/transform_ref.html",
- "=="
- ]
- ],
- "url": "/2dcontext/transformations/transform_a.html"
- }
- ],
- "FileAPI/url/url_xmlhttprequest_img.html": [
- {
- "path": "FileAPI/url/url_xmlhttprequest_img.html",
- "references": [
- [
- "/FileAPI/url/url_xmlhttprequest_img-ref.html",
- "=="
- ]
- ],
- "url": "/FileAPI/url/url_xmlhttprequest_img.html"
- }
- ],
- "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html": [
- {
- "path": "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html",
- "references": [
- [
- "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag-ref.html",
- "=="
- ]
- ],
- "url": "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-custom-tag.html"
- }
- ],
- "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-custom-tag.html": [
- {
- "path": "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-custom-tag.html",
- "references": [
- [
- "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-custom-tag-ref.html",
- "=="
- ]
- ],
- "url": "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-custom-tag.html"
- }
- ],
- "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-type-extension.html": [
- {
- "path": "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-type-extension.html",
- "references": [
- [
- "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-type-extension-ref.html",
- "=="
- ]
- ],
- "url": "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-registered-type-extension.html"
- }
- ],
- "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-type-extension.html": [
- {
- "path": "custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-type-extension.html",
- "references": [
- [
- "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-type-extension-ref.html",
- "=="
- ]
- ],
- "url": "/custom-elements/registering-custom-elements/unresolved-element-pseudoclass/unresolved-element-pseudoclass-css-test-type-extension.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-N-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-N-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-N-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-N-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-N-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-N-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-N-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-N-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-N-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-N-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-N-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-N-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-N-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-N-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-N-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-N-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-bdi-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-bdi-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-bdi-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-dir-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-dir-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-dir-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-dir-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-dir-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-dir-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-dir-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-dir-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-script-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-script-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-script-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-script-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-script-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-script-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-script-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-script-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-style-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-style-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-style-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-style-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-style-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-style-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-style-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-style-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-textarea-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-contained-textarea-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-N-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-N-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-N-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-N-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-N-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-N-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-N-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-N-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-N-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-N-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-N-EN-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-N-EN-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-N-EN-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-N-EN-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-N-L.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-N-L.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-N-L-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-N-L.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-N-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-N-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-N-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-N-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-input-script-R.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-input-script-R.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-input-script-R-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-input-script-R.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-isolate.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-isolate.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-isolate-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-isolate.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-pre-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-pre-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-pre-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-pre-mixed.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-pre-mixed.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-pre-mixed-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-pre-mixed.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-mixed.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-mixed.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-mixed-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html"
- }
- ],
- "html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html": [
- {
- "path": "html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/dir_auto-textarea-script-mixed-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html"
- }
- ],
- "html/dom/elements/global-attributes/lang-xmllang-01.html": [
- {
- "path": "html/dom/elements/global-attributes/lang-xmllang-01.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/lang-xmllang-01-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/lang-xmllang-01.html"
- }
- ],
- "html/dom/elements/global-attributes/lang-xyzzy.html": [
- {
- "path": "html/dom/elements/global-attributes/lang-xyzzy.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/lang-xyzzy-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/lang-xyzzy.html"
- }
- ],
- "html/dom/elements/global-attributes/style-01.html": [
- {
- "path": "html/dom/elements/global-attributes/style-01.html",
- "references": [
- [
- "/html/dom/elements/global-attributes/style-01-ref.html",
- "=="
- ]
- ],
- "url": "/html/dom/elements/global-attributes/style-01.html"
- }
- ],
- "html/editing/the-hidden-attribute/hidden-2.svg": [
- {
- "path": "html/editing/the-hidden-attribute/hidden-2.svg",
- "references": [
- [
- "/html/editing/the-hidden-attribute/hidden-2-ref.svg",
- "=="
- ]
- ],
- "url": "/html/editing/the-hidden-attribute/hidden-2.svg"
- }
- ],
- "html/rendering/bindings/the-select-element-0/option-label.html": [
- {
- "path": "html/rendering/bindings/the-select-element-0/option-label.html",
- "references": [
- [
- "/html/rendering/bindings/the-select-element-0/option-label-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/bindings/the-select-element-0/option-label.html"
- }
- ],
- "html/rendering/bindings/the-textarea-element-0/cols-default.html": [
- {
- "path": "html/rendering/bindings/the-textarea-element-0/cols-default.html",
- "references": [
- [
- "/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/bindings/the-textarea-element-0/cols-default.html"
- }
- ],
- "html/rendering/bindings/the-textarea-element-0/cols-zero.html": [
- {
- "path": "html/rendering/bindings/the-textarea-element-0/cols-zero.html",
- "references": [
- [
- "/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/bindings/the-textarea-element-0/cols-zero.html"
- }
- ],
- "html/rendering/bindings/the-textarea-element-0/rows-default.html": [
- {
- "path": "html/rendering/bindings/the-textarea-element-0/rows-default.html",
- "references": [
- [
- "/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/bindings/the-textarea-element-0/rows-default.html"
- }
- ],
- "html/rendering/bindings/the-textarea-element-0/rows-zero.html": [
- {
- "path": "html/rendering/bindings/the-textarea-element-0/rows-zero.html",
- "references": [
- [
- "/html/rendering/bindings/the-textarea-element-0/textarea-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/bindings/the-textarea-element-0/rows-zero.html"
- }
- ],
- "html/rendering/non-replaced-elements/flow-content-0/figure.html": [
- {
- "path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/flow-content-0/figure-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/flow-content-0/figure.html"
- }
- ],
- "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html": [
- {
- "path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html"
- }
- ],
- "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-q.html": [
- {
- "path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-q.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-q.html"
- }
- ],
- "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-s.html": [
- {
- "path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-s.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-s.html"
- }
- ],
- "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml": [
- {
- "path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml",
- "references": [
- [
- "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-x.xhtml"
- }
- ],
- "html/rendering/non-replaced-elements/tables/table-border-1.html": [
- {
- "path": "html/rendering/non-replaced-elements/tables/table-border-1.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/tables/table-border-1-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/tables/table-border-1.html"
- }
- ],
- "html/rendering/non-replaced-elements/tables/table-border-2.html": [
- {
- "path": "html/rendering/non-replaced-elements/tables/table-border-2.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/tables/table-border-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/tables/table-border-2.html"
- }
- ],
- "html/rendering/non-replaced-elements/tables/table-layout.html": [
- {
- "path": "html/rendering/non-replaced-elements/tables/table-layout.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/tables/table-layout-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/tables/table-layout.html"
- }
- ],
- "html/rendering/non-replaced-elements/tables/table-width-150percent.html": [
- {
- "path": "html/rendering/non-replaced-elements/tables/table-width-150percent.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/tables/table-width-150percent-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/tables/table-width-150percent.html"
- }
- ],
- "html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html": [
- {
- "path": "html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/the-fieldset-element-0/ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/the-fieldset-element-0/min-width-not-important.html"
- }
- ],
- "html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml": [
- {
- "path": "html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml",
- "references": [
- [
- "/html/rendering/non-replaced-elements/the-page/body_text_00ffff-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml"
- }
- ],
- "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml": [
- {
- "path": "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml",
- "references": [
- [
- "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border-ref.xhtml",
- "=="
- ]
- ],
- "url": "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml"
- }
- ],
- "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml": [
- {
- "path": "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml",
- "references": [
- [
- "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border-ref.xhtml",
- "=="
- ]
- ],
- "url": "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml"
- }
- ],
- "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml": [
- {
- "path": "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml",
- "references": [
- [
- "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border-ref.xhtml",
- "=="
- ]
- ],
- "url": "/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml"
- }
- ],
- "html/rendering/replaced-elements/images/space.html": [
- {
- "path": "html/rendering/replaced-elements/images/space.html",
- "references": [
- [
- "/html/rendering/replaced-elements/images/space-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/replaced-elements/images/space.html"
- }
- ],
- "html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml": [
- {
- "path": "html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml",
- "references": [
- [
- "/html/semantics/document-metadata/the-style-element/html_style_in_comment-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/document-metadata/the-style-element/html_style_in_comment.xhtml"
- }
- ],
- "html/semantics/embedded-content/the-audio-element/audio_001.htm": [
- {
- "path": "html/semantics/embedded-content/the-audio-element/audio_001.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-audio-element/audio_content-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-audio-element/audio_001.htm"
- }
- ],
- "html/semantics/embedded-content/the-audio-element/audio_002.htm": [
- {
- "path": "html/semantics/embedded-content/the-audio-element/audio_002.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-audio-element/audio_content-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-audio-element/audio_002.htm"
- }
- ],
- "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html": [
- {
- "path": "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html",
- "references": [
- [
- "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-01.html"
- }
- ],
- "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html": [
- {
- "path": "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html",
- "references": [
- [
- "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-02.html"
- }
- ],
- "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html": [
- {
- "path": "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html",
- "references": [
- [
- "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-03.html"
- }
- ],
- "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html": [
- {
- "path": "html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html",
- "references": [
- [
- "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-embed-element/embed-represent-nothing-04.html"
- }
- ],
- "html/semantics/embedded-content/the-video-element/video_content_image.htm": [
- {
- "path": "html/semantics/embedded-content/the-video-element/video_content_image.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-video-element/video_content-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-video-element/video_content_image.htm"
- }
- ],
- "html/semantics/embedded-content/the-video-element/video_content_text.htm": [
- {
- "path": "html/semantics/embedded-content/the-video-element/video_content_text.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-video-element/video_content-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-video-element/video_content_text.htm"
- }
- ],
- "html/semantics/embedded-content/the-video-element/video_dynamic_poster_absolute.htm": [
- {
- "path": "html/semantics/embedded-content/the-video-element/video_dynamic_poster_absolute.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-video-element/video_dynamic_poster-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-video-element/video_dynamic_poster_absolute.htm"
- }
- ],
- "html/semantics/embedded-content/the-video-element/video_dynamic_poster_relative.htm": [
- {
- "path": "html/semantics/embedded-content/the-video-element/video_dynamic_poster_relative.htm",
- "references": [
- [
- "/html/semantics/embedded-content/the-video-element/video_dynamic_poster-ref.htm",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-video-element/video_dynamic_poster_relative.htm"
- }
- ],
- "html/semantics/embedded-content/the-video-element/video_initially_paused.html": [
- {
- "path": "html/semantics/embedded-content/the-video-element/video_initially_paused.html",
- "references": [
- [
- "/html/semantics/embedded-content/the-video-element/video_initially_paused-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/embedded-content/the-video-element/video_initially_paused.html"
- }
- ],
- "html/semantics/forms/the-input-element/image01.html": [
- {
- "path": "html/semantics/forms/the-input-element/image01.html",
- "references": [
- [
- "/html/semantics/forms/the-input-element/image01-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/forms/the-input-element/image01.html"
- }
- ],
- "html/semantics/forms/the-textarea-element/textarea-newline-bidi.html": [
- {
- "path": "html/semantics/forms/the-textarea-element/textarea-newline-bidi.html",
- "references": [
- [
- "/html/semantics/forms/the-textarea-element/textarea-newline-bidi-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html"
- }
- ],
- "html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html": [
- {
- "path": "html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html",
- "references": [
- [
- "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html"
- }
- ],
- "html/semantics/grouping-content/the-ol-element/reversed-2.html": [
- {
- "path": "html/semantics/grouping-content/the-ol-element/reversed-2.html",
- "references": [
- [
- "/html/semantics/grouping-content/the-ol-element/reversed-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/grouping-content/the-ol-element/reversed-2.html"
- }
- ],
- "html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html": [
- {
- "path": "html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html",
- "references": [
- [
- "/html/semantics/grouping-content/the-pre-element/pre-newline-bidi-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/grouping-content/the-pre-element/pre-newline-bidi.html"
- }
- ],
- "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001.html": [
- {
- "path": "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001.html",
- "references": [
- [
- "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001.html"
- }
- ],
- "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002.html": [
- {
- "path": "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002.html",
- "references": [
- [
- "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002.html"
- }
- ],
- "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003.html": [
- {
- "path": "html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003.html",
- "references": [
- [
- "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/scripting-1/the-template-element/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-auto-dir-default.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-missing-pdf.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-nested.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-number.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-separate.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-1.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-another-bdi-2.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-1.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-following-2.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-1.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-1.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-number-following-2.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-surrounding-run.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdi-element/bdi-paragraph-level-container.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdo-element/bdo-child.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdo-element/bdo-child.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdo-element/bdo-child.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdo-element/bdo-ltr.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdo-element/bdo-override.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdo-element/bdo-override.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdo-element/bdo-override.html"
- }
- ],
- "html/semantics/text-level-semantics/the-bdo-element/bidi-001.html": [
- {
- "path": "html/semantics/text-level-semantics/the-bdo-element/bidi-001.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-bdo-element/bidi-001-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-bdo-element/bidi-001.html"
- }
- ],
- "html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html": [
- {
- "path": "html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html"
- }
- ],
- "html/semantics/text-level-semantics/the-br-element/br-bidi.html": [
- {
- "path": "html/semantics/text-level-semantics/the-br-element/br-bidi.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-br-element/br-bidi-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-br-element/br-bidi.html"
- }
- ],
- "html/semantics/text-level-semantics/the-wbr-element/wbr-element.html": [
- {
- "path": "html/semantics/text-level-semantics/the-wbr-element/wbr-element.html",
- "references": [
- [
- "/html/semantics/text-level-semantics/the-wbr-element/wbr-element-ref.html",
- "=="
- ]
- ],
- "url": "/html/semantics/text-level-semantics/the-wbr-element/wbr-element.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-001.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-001.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-001-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-001.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-002.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-002.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-002-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/lower-boundary-encapsulation/distribution-002.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/nested-shadow-trees/nested_tree_reftest.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/nested-shadow-trees/nested_tree_reftest.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/nested-shadow-trees/nested_tree_reftest-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/nested-shadow-trees/nested_tree_reftest.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/reprojection/reprojection-002.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/reprojection/reprojection-002.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-002-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-002.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/shadow-root-001.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/shadow-root-001.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/shadow-root-001-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/shadow-root-001.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/shadow-root-002.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/shadow-root-002.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/shadow-root-002-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/shadow-root-002.html"
- }
- ],
- "shadow-dom/untriaged/shadow-trees/text-decoration-001.html": [
- {
- "path": "shadow-dom/untriaged/shadow-trees/text-decoration-001.html",
- "references": [
- [
- "/shadow-dom/untriaged/shadow-trees/text-decoration-001-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/shadow-trees/text-decoration-001.html"
- }
- ],
- "shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html": [
- {
- "path": "shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html",
- "references": [
- [
- "/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001-ref.html",
- "=="
- ]
- ],
- "url": "/shadow-dom/untriaged/styles/not-apply-in-shadow-root-001.html"
- }
- ],
- "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",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_down.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_down.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_down-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_down.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/2_tracks.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/2_tracks.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/2_tracks-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/2_tracks.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/3_tracks.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/3_tracks.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/3_tracks-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/3_tracks.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_end.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_end.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_end-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_end.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_end_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_end_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_end_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle_position_50.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle_position_50.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_50-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_50.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle_position_gt_50.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle_position_gt_50.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_gt_50-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_gt_50.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50_size_gt_maximum_size.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50_size_gt_maximum_size.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50_size_gt_maximum_size-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle_position_lt_50_size_gt_maximum_size.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_middle_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_middle_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_middle_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_middle_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_start.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_start.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_start-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_start.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/align_start_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/align_start_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/align_start_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/audio_has_no_subtitles.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/basic.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/basic.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/basic-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/basic.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/bidi_ruby.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_LF_u05D0.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2028_u05D0.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2028_u05D0.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2028_u05D0-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2028_u05D0.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2029_u05D0.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2029_u05D0.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2029_u05D0-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u002E_u2029_u05D0.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u0041_first.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u0041_first.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u0041_first-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u0041_first.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u05D0_first.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u05D0_first.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u05D0_first-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u05D0_first.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u0628_first.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u0628_first.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u0628_first-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u0628_first.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/bidi/u06E9_no_strong_dir.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/bidi/u06E9_no_strong_dir.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/bidi/u06E9_no_strong_dir-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/bidi/u06E9_no_strong_dir.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/cue_too_long.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/cue_too_long.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/cue_too_long-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/cue_too_long.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/decode_escaped_entities.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/decode_escaped_entities.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/decode_escaped_entities-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/decode_escaped_entities.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/disable_controls_reposition.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size_while_paused.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size_while_paused.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size_while_paused-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_align_position_line_size_while_paused.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_line.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_line.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_line-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_line.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text_while_paused.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text_while_paused.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text_while_paused-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_cue_text_while_paused.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/dom_override_remove_cue_while_paused.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/enable_controls_reposition.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/enable_controls_reposition.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/enable_controls_reposition-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/enable_controls_reposition.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/media_404_omit_subtitles.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/media_404_omit_subtitles.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/media_404_omit_subtitles-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/media_404_omit_subtitles.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/media_height_19.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/media_height_19.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/media_height_19-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/media_height_19.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/single_quote.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/single_quote.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/single_quote-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/single_quote.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/size_90.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/size_90.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/size_90-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/size_90.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/evil/size_99.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/evil/size_99.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/evil/size_99-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/evil/size_99.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_-2_wrapped_cue_grow_upwards.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_-2_wrapped_cue_grow_upwards.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_-2_wrapped_cue_grow_upwards-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_-2_wrapped_cue_grow_upwards.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_0_is_top.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_0_is_top.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_0_is_top-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_0_is_top.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_1_wrapped_cue_grow_downwards.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_1_wrapped_cue_grow_downwards.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_1_wrapped_cue_grow_downwards-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_1_wrapped_cue_grow_downwards.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_50_percent.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_50_percent.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_50_percent-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_50_percent.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap_move_up.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap_move_up.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap_move_up-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_integer_and_percent_mixed_overlap_move_up.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap_move_up.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap_move_up.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap_move_up-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/line_percent_and_integer_mixed_overlap_move_up.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/media_height400_with_controls.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/media_height400_with_controls.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/media_height400_with_controls-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/media_height400_with_controls.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/media_with_controls.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/media_with_controls.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/media_with_controls-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/media_with_controls.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/navigate_cue_position.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/navigate_cue_position.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/navigate_cue_position.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/one_line_cue_plus_wrapped_cue.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/one_line_cue_plus_wrapped_cue.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/one_line_cue_plus_wrapped_cue-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/one_line_cue_plus_wrapped_cue.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/repaint.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/repaint.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/repaint-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/repaint.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand_css_relative_url.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand_css_relative_url.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand_css_relative_url-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/background_shorthand_css_relative_url.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hex.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hex.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hex-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hex.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hsla.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hsla.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hsla-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_hsla.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_rgba.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_rgba.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_rgba-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/color_rgba.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/cue_selector_single_colon.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/cue_selector_single_colon.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/cue_selector_single_colon-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/cue_selector_single_colon.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/inherit_values_from_media_element.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/inherit_values_from_media_element.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/inherit_values_from_media_element-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/inherit_values_from_media_element.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline_underline_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline_underline_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline_underline_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_overline_underline_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_underline.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_underline.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_underline-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_underline.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_nowrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_nowrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_nowrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_nowrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_box.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_box.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_box-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_box.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand_css_relative_url.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand_css_relative_url.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand_css_relative_url-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/background_shorthand_css_relative_url.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_animation_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_animation_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_animation_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_animation_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_future.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_future.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_future-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_future.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_past.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_past.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_past-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_timestamp_past.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_transition_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_transition_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_transition_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_transition_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_nowrap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_nowrap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_nowrap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_nowrap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class_object_specific_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class_object_specific_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class_object_specific_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/bold_object/bold_with_class_object_specific_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_animation_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_animation_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_animation_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_animation_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_future.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_future.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_future-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_future.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_past.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_past.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_past-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_timestamp_past.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_transition_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_transition_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_transition_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_transition_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_nowrap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_nowrap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_nowrap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_nowrap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class_object_specific_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class_object_specific_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class_object_specific_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/class_object/class_with_class_object_specific_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hex.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hex.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hex-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hex.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hsla.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hsla.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hsla-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_hsla.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_rgba.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_rgba.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_rgba-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/color_rgba.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/cue_func_selector_single_colon.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/cue_func_selector_single_colon.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/cue_func_selector_single_colon-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/cue_func_selector_single_colon.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/id_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/id_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/id_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/id_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/inherit_values_from_media_element.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/inherit_values_from_media_element.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/inherit_values_from_media_element-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/inherit_values_from_media_element.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_animation_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_animation_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_animation_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_animation_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_future.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_future.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_future-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_future.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_past.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_past.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_past-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_timestamp_past.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_transition_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_transition_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_transition_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_transition_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_nowrap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_nowrap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_nowrap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_nowrap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class_object_specific_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class_object_specific_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class_object_specific_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/italic_object/italic_with_class_object_specific_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_allowed_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_allowed_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_allowed_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_allowed_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_root_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_root_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_root_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/not_root_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/root_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline_underline_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline_underline_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline_underline_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_overline_underline_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_underline.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_underline.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_underline-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-decoration_underline.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/type_selector_root.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/type_selector_root.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/type_selector_root-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/type_selector_root.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_animation_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_animation_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_animation_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_animation_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_future.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_future.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_future-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_future.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_past.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_past.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_past-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_timestamp_past.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_transition_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_transition_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_transition_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_transition_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_nowrap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_nowrap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_nowrap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_nowrap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class_object_specific_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class_object_specific_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class_object_specific_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/underline_object/underline_with_class_object_specific_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_animation_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_animation_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_animation_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_animation_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_background_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_color.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_color.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_color-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_color.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_font_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_namespace.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_namespace.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_namespace-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_namespace.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_properties.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_properties.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_properties-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_properties.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_shorthand.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_shorthand.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_shorthand-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_outline_shorthand.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-decoration_line-through.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-decoration_line-through.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-decoration_line-through-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-decoration_line-through.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-shadow.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-shadow.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-shadow-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_text-shadow.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_future.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_future.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_future-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_future.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_past.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_past.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_past-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_timestamp_past.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_transition_with_timestamp.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_transition_with_timestamp.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_transition_with_timestamp-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_transition_with_timestamp.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_voice_attribute.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_voice_attribute.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_voice_attribute-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_voice_attribute.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_nowrap.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_nowrap.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_nowrap-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_nowrap.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class_object_specific_selector.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class_object_specific_selector.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class_object_specific_selector-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/voice_object/voice_with_class_object_specific_selector.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_normal_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_normal_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_normal_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_normal_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_nowrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_nowrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_nowrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_nowrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-line_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-line_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-line_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-line_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-wrap_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-wrap_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-wrap_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-wrap_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/cue_function/white-space_pre_wrapped.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/bold_object_default_font-style.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/bold_object_default_font-style.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/bold_object_default_font-style-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/bold_object_default_font-style.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/inherit_as_default_value_inherits_values_from_media_element.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/inherit_as_default_value_inherits_values_from_media_element.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/inherit_as_default_value_inherits_values_from_media_element-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/inherit_as_default_value_inherits_values_from_media_element.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/italic_object_default_font-style.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/italic_object_default_font-style.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/italic_object_default_font-style-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/italic_object_default_font-style.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/underline_object_default_font-style.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/underline_object_default_font-style.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/underline_object_default_font-style-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/underline_object_default_font-style.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/size_50.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/size_50.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/size_50-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/size_50.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/too_many_cues.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/too_many_cues.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/too_many_cues-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/too_many_cues.html"
- }
- ],
- "webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html": [
- {
- "path": "webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html",
- "references": [
- [
- "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped-ref.html",
- "=="
- ]
- ],
- "url": "/webvtt/rendering/cues-with-video/processing-model/too_many_cues_wrapped.html"
- }
- ]
- },
- "testharness": {
- "webstorage/storage_supported_property_names.html": [
- {
- "path": "webstorage/storage_supported_property_names.html",
- "url": "/webstorage/storage_supported_property_names.html"
- }
- ]
- }
- },
- "reftest_nodes": {
- "html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html": [
- {
- "path": "html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html",
- "references": [
- [
- "/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html",
- "=="
- ]
- ],
- "url": "/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html"
- }
- ]
- }
+ "deleted": [],
+ "items": {},
+ "reftest_nodes": {}
},
"reftest_nodes": {
"2dcontext/building-paths/canvas_complexshapes_arcto_001.htm": [
@@ -36085,6 +31510,18 @@
"url": "/html/rendering/bindings/the-textarea-element-0/rows-zero.html"
}
],
+ "html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html"
+ }
+ ],
"html/rendering/non-replaced-elements/flow-content-0/figure.html": [
{
"path": "html/rendering/non-replaced-elements/flow-content-0/figure.html",
@@ -36097,6 +31534,138 @@
"url": "/html/rendering/non-replaced-elements/flow-content-0/figure.html"
}
],
+ "html/rendering/non-replaced-elements/lists/ol-type-supported.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-supported.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-supported.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html"
+ }
+ ],
+ "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html": [
+ {
+ "path": "html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html",
+ "references": [
+ [
+ "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html",
+ "=="
+ ]
+ ],
+ "url": "/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html"
+ }
+ ],
"html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html": [
{
"path": "html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html",
@@ -39746,7 +35315,7 @@
}
]
},
- "rev": "7da6acfd668e66adae5ab4e2d389810d3b1460be",
+ "rev": "4bba821de44da9ed47c2562f995a0da6eecc177b",
"url_base": "/",
"version": 2
} \ No newline at end of file
diff --git a/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.html.ini b/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.html.ini
deleted file mode 100644
index 08e9917281c..00000000000
--- a/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[XMLHttpRequest-withCredentials.html]
- type: testharness
- [setting withCredentials when in DONE state (synchronous)]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js.ini b/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js.ini
deleted file mode 100644
index 95d0a5d1129..00000000000
--- a/tests/wpt/metadata/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.js.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[XMLHttpRequest-withCredentials.worker]
- type: testharness
- [setting withCredentials when in DONE state (synchronous)]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/dom/ranges/Range-extractContents.html.ini b/tests/wpt/metadata/dom/ranges/Range-extractContents.html.ini
index 0474c44eeec..c711c9d518b 100644
--- a/tests/wpt/metadata/dom/ranges/Range-extractContents.html.ini
+++ b/tests/wpt/metadata/dom/ranges/Range-extractContents.html.ini
@@ -48,15 +48,9 @@
[Resulting cursor position for range 35 [detachedXmlComment, 2, detachedXmlComment, 6\]]
expected: FAIL
- [Resulting DOM for range 37 [processingInstruction, 0, processingInstruction, 4\]]
- expected: FAIL
-
[Resulting cursor position for range 37 [processingInstruction, 0, processingInstruction, 4\]]
expected: FAIL
- [Returned fragment for range 37 [processingInstruction, 0, processingInstruction, 4\]]
- expected: FAIL
-
[Resulting cursor position for range 38 [paras[1\].firstChild, 0, paras[1\].firstChild, 1\]]
expected: FAIL
diff --git a/tests/wpt/metadata/dom/ranges/Range-insertNode.html.ini b/tests/wpt/metadata/dom/ranges/Range-insertNode.html.ini
new file mode 100644
index 00000000000..96d14f31928
--- /dev/null
+++ b/tests/wpt/metadata/dom/ranges/Range-insertNode.html.ini
@@ -0,0 +1,80 @@
+[Range-insertNode.html]
+ type: testharness
+ [0,1: resulting DOM for range [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [0,1: resulting range position for range [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [1,1: resulting DOM for range [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [1,1: resulting range position for range [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [2,1: resulting DOM for range [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [2,1: resulting range position for range [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [3,1: resulting DOM for range [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [3,1: resulting range position for range [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [4,2: resulting DOM for range [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], node paras[1\].firstChild]
+ expected: FAIL
+
+ [4,2: resulting range position for range [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], node paras[1\].firstChild]
+ expected: FAIL
+
+ [5,2: resulting DOM for range [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], node paras[1\].firstChild]
+ expected: FAIL
+
+ [5,2: resulting range position for range [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], node paras[1\].firstChild]
+ expected: FAIL
+
+ [6,6: resulting DOM for range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], node detachedPara1.firstChild]
+ expected: FAIL
+
+ [6,6: resulting range position for range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], node detachedPara1.firstChild]
+ expected: FAIL
+
+ [7,6: resulting DOM for range [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], node detachedPara1.firstChild]
+ expected: FAIL
+
+ [7,6: resulting range position for range [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], node detachedPara1.firstChild]
+ expected: FAIL
+
+ [8,4: resulting DOM for range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], node foreignPara1.firstChild]
+ expected: FAIL
+
+ [8,4: resulting range position for range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], node foreignPara1.firstChild]
+ expected: FAIL
+
+ [9,4: resulting DOM for range [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], node foreignPara1.firstChild]
+ expected: FAIL
+
+ [9,4: resulting range position for range [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], node foreignPara1.firstChild]
+ expected: FAIL
+
+ [18,1: resulting DOM for range [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [18,1: resulting range position for range [paras[0\].firstChild, 0, paras[1\].firstChild, 0\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [19,1: resulting DOM for range [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [19,1: resulting range position for range [paras[0\].firstChild, 0, paras[1\].firstChild, 8\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [20,1: resulting DOM for range [paras[0\].firstChild, 3, paras[3\], 1\], node paras[0\].firstChild]
+ expected: FAIL
+
+ [20,1: resulting range position for range [paras[0\].firstChild, 3, paras[3\], 1\], node paras[0\].firstChild]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/ranges/Range-surroundContents.html.ini b/tests/wpt/metadata/dom/ranges/Range-surroundContents.html.ini
index 0cb1a7fd6fe..89459529b33 100644
--- a/tests/wpt/metadata/dom/ranges/Range-surroundContents.html.ini
+++ b/tests/wpt/metadata/dom/ranges/Range-surroundContents.html.ini
@@ -1,98 +1,62 @@
[Range-surroundContents.html]
type: testharness
- [37,0: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node paras[0\]]
+ [0,1: resulting DOM for range [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], node paras[0\].firstChild]
expected: FAIL
- [37,0: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node paras[0\]]
+ [0,1: resulting range position for range [paras[0\].firstChild, 0, paras[0\].firstChild, 0\], node paras[0\].firstChild]
expected: FAIL
- [37,1: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node paras[0\].firstChild]
+ [1,1: resulting DOM for range [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], node paras[0\].firstChild]
expected: FAIL
- [37,1: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node paras[0\].firstChild]
+ [1,1: resulting range position for range [paras[0\].firstChild, 0, paras[0\].firstChild, 1\], node paras[0\].firstChild]
expected: FAIL
- [37,2: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node paras[1\].firstChild]
+ [2,1: resulting DOM for range [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], node paras[0\].firstChild]
expected: FAIL
- [37,2: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node paras[1\].firstChild]
+ [2,1: resulting range position for range [paras[0\].firstChild, 2, paras[0\].firstChild, 8\], node paras[0\].firstChild]
expected: FAIL
- [37,3: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara1]
+ [3,1: resulting DOM for range [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], node paras[0\].firstChild]
expected: FAIL
- [37,3: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara1]
+ [3,1: resulting range position for range [paras[0\].firstChild, 2, paras[0\].firstChild, 9\], node paras[0\].firstChild]
expected: FAIL
- [37,4: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara1.firstChild]
+ [4,2: resulting DOM for range [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], node paras[1\].firstChild]
expected: FAIL
- [37,4: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara1.firstChild]
+ [4,2: resulting range position for range [paras[1\].firstChild, 0, paras[1\].firstChild, 0\], node paras[1\].firstChild]
expected: FAIL
- [37,5: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedPara1]
+ [5,2: resulting DOM for range [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], node paras[1\].firstChild]
expected: FAIL
- [37,5: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedPara1]
+ [5,2: resulting range position for range [paras[1\].firstChild, 2, paras[1\].firstChild, 9\], node paras[1\].firstChild]
expected: FAIL
- [37,6: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedPara1.firstChild]
+ [6,6: resulting DOM for range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], node detachedPara1.firstChild]
expected: FAIL
- [37,6: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedPara1.firstChild]
+ [6,6: resulting range position for range [detachedPara1.firstChild, 0, detachedPara1.firstChild, 0\], node detachedPara1.firstChild]
expected: FAIL
- [37,8: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedDiv]
+ [7,6: resulting DOM for range [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], node detachedPara1.firstChild]
expected: FAIL
- [37,8: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedDiv]
+ [7,6: resulting range position for range [detachedPara1.firstChild, 2, detachedPara1.firstChild, 8\], node detachedPara1.firstChild]
expected: FAIL
- [37,10: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara2]
+ [8,4: resulting DOM for range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], node foreignPara1.firstChild]
expected: FAIL
- [37,10: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node foreignPara2]
+ [8,4: resulting range position for range [foreignPara1.firstChild, 0, foreignPara1.firstChild, 0\], node foreignPara1.firstChild]
expected: FAIL
- [37,12: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node xmlElement]
+ [9,4: resulting DOM for range [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], node foreignPara1.firstChild]
expected: FAIL
- [37,12: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node xmlElement]
- expected: FAIL
-
- [37,13: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedTextNode]
- expected: FAIL
-
- [37,13: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedTextNode]
- expected: FAIL
-
- [37,14: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node foreignTextNode]
- expected: FAIL
-
- [37,14: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node foreignTextNode]
- expected: FAIL
-
- [37,15: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node processingInstruction]
- expected: FAIL
-
- [37,15: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node processingInstruction]
- expected: FAIL
-
- [37,16: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedProcessingInstruction]
- expected: FAIL
-
- [37,16: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedProcessingInstruction]
- expected: FAIL
-
- [37,17: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node comment]
- expected: FAIL
-
- [37,17: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node comment]
- expected: FAIL
-
- [37,18: resulting DOM for range [processingInstruction, 0, processingInstruction, 4\], node detachedComment]
- expected: FAIL
-
- [37,18: resulting range position for range [processingInstruction, 0, processingInstruction, 4\], node detachedComment]
+ [9,4: resulting range position for range [foreignPara1.firstChild, 2, foreignPara1.firstChild, 8\], node foreignPara1.firstChild]
expected: FAIL
diff --git a/tests/wpt/metadata/mozilla-sync b/tests/wpt/metadata/mozilla-sync
index 30ccc1e6f50..23fa30ad660 100644
--- a/tests/wpt/metadata/mozilla-sync
+++ b/tests/wpt/metadata/mozilla-sync
@@ -1 +1 @@
-a350b215cc3e943985a66f1485c7eac7f4b9832e \ No newline at end of file
+0008a0d00ae1a58ba888ba9bec181cd6e16d8b94 \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js b/tests/wpt/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js
index 5120d45c22e..b9b4d653244 100644
--- a/tests/wpt/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.js
@@ -43,6 +43,7 @@ function test_withCredentials(worker) {
test(function() {
var client = new XMLHttpRequest()
client.open("GET", "resources/delay.py?ms=1000", false)
+ client.send();
assert_throws("InvalidStateError", function() { client.withCredentials = true })
}, "setting withCredentials when in DONE state (synchronous)")
}
diff --git a/tests/wpt/web-platform-tests/XMLHttpRequest/send-content-type-charset.htm b/tests/wpt/web-platform-tests/XMLHttpRequest/send-content-type-charset.htm
index 4fb6713c339..9e93279d6ba 100755
--- a/tests/wpt/web-platform-tests/XMLHttpRequest/send-content-type-charset.htm
+++ b/tests/wpt/web-platform-tests/XMLHttpRequest/send-content-type-charset.htm
@@ -58,9 +58,9 @@
"text/x-thepiano;charset=UTF-8",
"charset given but wrong, fix it (unknown MIME, bogus charset)"
)
- request( /**/
+ request(
"text/plain;charset=utf-8;charset=waddup",
- "text/plain;charset=UTF-8;charset=UTF-8",
+ "text/plain;charset=utf-8;charset=UTF-8",
"charset given but wrong, fix it (known MIME, bogus charset)"
)
request(
diff --git a/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html b/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html
index 7dc855a9358..f55244e8b0c 100644
--- a/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html
+++ b/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars-first-char.html
@@ -5,6 +5,7 @@
<meta name="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru">
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="assert" content="The custom element type identifies a custom element interface and is a sequence of characters that must match the NCName production">
+<meta name="timeout" content="long">
<link rel="help" href="https://dvcs.w3.org/hg/webcomponents/raw-file/default/spec/custom/index.html#concepts">
<link rel="help" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName">
<script src="/resources/testharness.js"></script>
diff --git a/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars.html b/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars.html
index f10d0209646..03847c6b92e 100644
--- a/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars.html
+++ b/tests/wpt/web-platform-tests/custom-elements/concepts/custom-elements-type-allowed-chars.html
@@ -5,6 +5,7 @@
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
<meta name="author" title="Aleksei Yu. Semenov" href="mailto:a.semenov@unipro.ru">
<meta name="assert" content="The custom element type identifies a custom element interface and is a sequence of characters that must match the NCName production">
+<meta name="timeout" content="long">
<link rel="help" href="https://dvcs.w3.org/hg/webcomponents/raw-file/default/spec/custom/index.html#concepts">
<link rel="help" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName">
<script src="/resources/testharness.js"></script>
diff --git a/tests/wpt/web-platform-tests/dom/common.js b/tests/wpt/web-platform-tests/dom/common.js
index 1f0bc70d2df..70367b2efff 100644
--- a/tests/wpt/web-platform-tests/dom/common.js
+++ b/tests/wpt/web-platform-tests/dom/common.js
@@ -571,14 +571,6 @@ function indexOf(node) {
* a spec bug.
*/
function myExtractContents(range) {
- // "If the context object's detached flag is set, raise an
- // INVALID_STATE_ERR exception and abort these steps."
- try {
- range.collapsed;
- } catch (e) {
- return "INVALID_STATE_ERR";
- }
-
// "Let frag be a new DocumentFragment whose ownerDocument is the same as
// the ownerDocument of the context object's start node."
var ownerDoc = range.startContainer.nodeType == Node.DOCUMENT_NODE
@@ -601,10 +593,11 @@ function myExtractContents(range) {
var originalEndNode = range.endContainer;
var originalEndOffset = range.endOffset;
- // "If original start node and original end node are the same, and they are
- // a Text or Comment node:"
+ // "If original start node is original end node, and they are a Text,
+ // ProcessingInstruction, or Comment node:"
if (range.startContainer == range.endContainer
&& (range.startContainer.nodeType == Node.TEXT_NODE
+ || range.startContainer.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| range.startContainer.nodeType == Node.COMMENT_NODE)) {
// "Let clone be the result of calling cloneNode(false) on original
// start node."
@@ -716,9 +709,11 @@ function myExtractContents(range) {
newOffset = 1 + indexOf(referenceNode);
}
- // "If first partially contained child is a Text or Comment node:"
+ // "If first partially contained child is a Text, ProcessingInstruction, or
+ // Comment node:"
if (firstPartiallyContainedChild
&& (firstPartiallyContainedChild.nodeType == Node.TEXT_NODE
+ || firstPartiallyContainedChild.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| firstPartiallyContainedChild.nodeType == Node.COMMENT_NODE)) {
// "Let clone be the result of calling cloneNode(false) on original
// start node."
@@ -773,9 +768,11 @@ function myExtractContents(range) {
frag.appendChild(containedChildren[i]);
}
- // "If last partially contained child is a Text or Comment node:"
+ // "If last partially contained child is a Text, ProcessingInstruction, or
+ // Comment node:"
if (lastPartiallyContainedChild
&& (lastPartiallyContainedChild.nodeType == Node.TEXT_NODE
+ || lastPartiallyContainedChild.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| lastPartiallyContainedChild.nodeType == Node.COMMENT_NODE)) {
// "Let clone be the result of calling cloneNode(false) on original
// end node."
@@ -831,13 +828,14 @@ function myExtractContents(range) {
* instance "HIERARCHY_REQUEST_ERR".
*/
function myInsertNode(range, node) {
- // "If range's start node is either a ProcessingInstruction or Comment
- // node, or a Text node whose parent is null, throw an
+ // "If range's start node is a ProcessingInstruction or Comment node, or is
+ // a Text node whose parent is null, or is node, throw an
// "HierarchyRequestError" exception and terminate these steps."
if (range.startContainer.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| range.startContainer.nodeType == Node.COMMENT_NODE
|| (range.startContainer.nodeType == Node.TEXT_NODE
- && !range.startContainer.parentNode)) {
+ && !range.startContainer.parentNode)
+ || range.startContainer == node) {
return "HIERARCHY_REQUEST_ERR";
}
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe1.xml b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe1.xml
new file mode 100644
index 00000000000..8077e73c274
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe1.xml
@@ -0,0 +1 @@
+<!DOCTYPE foo [ <!ELEMENT foo (#PCDATA)> ]><foo/>
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe2.xml b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe2.xml
new file mode 100644
index 00000000000..eacc9d17af3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode-iframe2.xml
@@ -0,0 +1 @@
+<!DOCTYPE foo [ <!ELEMENT foo EMPTY> ]><foo/>
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml
index 47423473b69..3170643d2fd 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml
+++ b/tests/wpt/web-platform-tests/dom/nodes/Node-isEqualNode.xhtml
@@ -78,7 +78,7 @@ function iframeLoaded() {
}
}
</script>
-<iframe id="subset1" onload="iframeLoaded()" src="data:application/xml,&lt;!DOCTYPE foo [ &lt;!ELEMENT foo (%23PCDATA)> ]>&lt;foo/>" />
-<iframe id="subset2" onload="iframeLoaded()" src="data:application/xml,&lt;!DOCTYPE foo [ &lt;!ELEMENT foo EMPTY> ]>&lt;foo/>" />
+<iframe id="subset1" onload="iframeLoaded()" src="Node-isEqualNode-iframe1.xml" />
+<iframe id="subset2" onload="iframeLoaded()" src="Node-isEqualNode-iframe2.xml" />
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-constructor.html b/tests/wpt/web-platform-tests/dom/ranges/Range-constructor.html
new file mode 100644
index 00000000000..e8cfbef753d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/ranges/Range-constructor.html
@@ -0,0 +1,20 @@
+<!doctype html>
+<title>Range constructor test</title>
+<link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name>
+<div id=log></div>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+"use strict";
+
+test(function() {
+ var range = new Range();
+ assert_equals(range.startContainer, document, "startContainer");
+ assert_equals(range.endContainer, document, "endContainer");
+ assert_equals(range.startOffset, 0, "startOffset");
+ assert_equals(range.endOffset, 0, "endOffset");
+ assert_true(range.collapsed, "collapsed");
+ assert_equals(range.commonAncestorContainer, document,
+ "commonAncestorContainer");
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-deleteContents.html b/tests/wpt/web-platform-tests/dom/ranges/Range-deleteContents.html
index c3eca6c5bd7..40dc4001250 100644
--- a/tests/wpt/web-platform-tests/dom/ranges/Range-deleteContents.html
+++ b/tests/wpt/web-platform-tests/dom/ranges/Range-deleteContents.html
@@ -67,11 +67,13 @@ function myDeleteContents(range) {
var originalEndOffset = range.endOffset;
// "If original start node and original end node are the same, and they are
- // a Text or Comment node, call deleteData(original start offset, original
- // end offset − original start offset) on that node, and abort these
- // steps."
+ // a Text, ProcessingInstruction, or Comment node, replace data with node
+ // original start node, offset original start offset, count original end
+ // offset minus original start offset, and data the empty string, and then
+ // terminate these steps"
if (originalStartNode == originalEndNode
&& (range.startContainer.nodeType == Node.TEXT_NODE
+ || range.startContainer.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| range.startContainer.nodeType == Node.COMMENT_NODE)) {
originalStartNode.deleteData(originalStartOffset, originalEndOffset - originalStartOffset);
return;
@@ -120,10 +122,12 @@ function myDeleteContents(range) {
newOffset = 1 + indexOf(referenceNode);
}
- // "If original start node is a Text or Comment node, run deleteData() on
- // it, with original start offset as the first argument and (length of
- // original start node − original start offset) as the second."
+ // "If original start node is a Text, ProcessingInstruction, or Comment node,
+ // replace data with node original start node, offset original start offset,
+ // count original start node's length minus original start offset, data the
+ // empty start"
if (originalStartNode.nodeType == Node.TEXT_NODE
+ || originalStartNode.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| originalStartNode.nodeType == Node.COMMENT_NODE) {
originalStartNode.deleteData(originalStartOffset, nodeLength(originalStartNode) - originalStartOffset);
}
@@ -134,9 +138,11 @@ function myDeleteContents(range) {
nodesToRemove[i].parentNode.removeChild(nodesToRemove[i]);
}
- // "If original end node is a Text or Comment node, run deleteData(0,
- // original end offset) on it."
+ // "If original end node is a Text, ProcessingInstruction, or Comment node,
+ // replace data with node original end node, offset 0, count original end
+ // offset, and data the empty string."
if (originalEndNode.nodeType == Node.TEXT_NODE
+ || originalEndNode.nodeType == Node.PROCESSING_INSTRUCTION_NODE
|| originalEndNode.nodeType == Node.COMMENT_NODE) {
originalEndNode.deleteData(0, originalEndOffset);
}
diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode.html b/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode.html
index 3a0e1635a3b..97e10f6f0d8 100644
--- a/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode.html
+++ b/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode.html
@@ -15,14 +15,6 @@ var testRangesCached = [];
for (var i = 0; i < testNodes.length; i++) {
var node = eval(testNodes[i]);
- // "If the detached flag is set, throw an "InvalidStateError" exception and
- // terminate these steps."
- test(function() {
- var range = document.createRange();
- range.detach();
- assert_equals(range.intersectsNode(node), node === document);
- }, "Node " + i + " " + testNodes[i] + ", detached range");
-
for (var j = 0; j < testRanges.length; j++) {
test(function() {
if (testRangesCached[j] === undefined) {
diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-surroundContents.html b/tests/wpt/web-platform-tests/dom/ranges/Range-surroundContents.html
index 1574e2221f2..e8cc11b24e7 100644
--- a/tests/wpt/web-platform-tests/dom/ranges/Range-surroundContents.html
+++ b/tests/wpt/web-platform-tests/dom/ranges/Range-surroundContents.html
@@ -17,14 +17,6 @@ testDiv.parentNode.removeChild(testDiv);
function mySurroundContents(range, newParent) {
try {
- // "If the detached flag is set, throw an "InvalidStateError" exception
- // and terminate these steps."
- try {
- range.collapsed;
- } catch (e) {
- return "INVALID_STATE_ERR";
- }
-
// "If a non-Text node is partially contained in the context object,
// throw a "InvalidStateError" exception and terminate these steps."
var node = range.commonAncestorContainer;
@@ -118,8 +110,6 @@ function testSurroundContents(i, j) {
var actualRoots = [];
var expectedRoots = [];
- var detached = false;
-
domTests[i][j].step(function() {
restoreIframe(actualIframe, i, j);
restoreIframe(expectedIframe, i, j);
@@ -129,12 +119,6 @@ function testSurroundContents(i, j) {
actualNode = actualIframe.contentWindow.testNode;
expectedNode = expectedIframe.contentWindow.testNode;
- try {
- actualRange.collapsed;
- } catch (e) {
- detached = true;
- }
-
assert_equals(actualIframe.contentWindow.unexpectedException, null,
"Unexpected exception thrown when setting up Range for actual surroundContents()");
assert_equals(expectedIframe.contentWindow.unexpectedException, null,
@@ -160,15 +144,8 @@ function testSurroundContents(i, j) {
// also the trees containing the moved nodes. These might not be the
// same, if we're inserting a node from a detached tree or a different
// document.
- //
- // Detached ranges are always in the contentDocument.
- if (detached) {
- actualRoots.push(actualIframe.contentDocument);
- expectedRoots.push(expectedIframe.contentDocument);
- } else {
- actualRoots.push(furthestAncestor(actualRange.startContainer));
- expectedRoots.push(furthestAncestor(expectedRange.startContainer));
- }
+ actualRoots.push(furthestAncestor(actualRange.startContainer));
+ expectedRoots.push(furthestAncestor(expectedRange.startContainer));
if (furthestAncestor(actualNode) != actualRoots[0]) {
actualRoots.push(furthestAncestor(actualNode));
@@ -264,11 +241,6 @@ function testSurroundContents(i, j) {
assertNodesEqual(actualRoots[k], expectedRoots[k], k ? "moved node's tree root" : "range's tree root");
}
- if (detached) {
- // No further tests we can do
- return;
- }
-
assert_equals(actualRange.startOffset, expectedRange.startOffset,
"Unexpected startOffset after surroundContents()");
assert_equals(actualRange.endOffset, expectedRange.endOffset,
@@ -300,8 +272,6 @@ function testSurroundContents(i, j) {
positionTests[i][j].done();
}
-testRanges.unshift('"detached"');
-
var iStart = 0;
var iStop = testRangesShort.length;
var jStart = 0;
diff --git a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html
index 4050caa0bc3..cb54f50952c 100644
--- a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html
+++ b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html
@@ -36,87 +36,13 @@
<source name="source">
</div>
<script>
-test(function() {
- assert_equals(document.getElementsByName("section").length, 1);
- assert_equals(document.getElementsByName("section")[0],
- document.getElementsByTagName("section")[0]);
- assert_equals(document.getElementsByName("article").length, 1);
- assert_equals(document.getElementsByName("article")[0],
- document.getElementsByTagName("article")[0]);
- assert_equals(document.getElementsByName("aside").length, 1);
- assert_equals(document.getElementsByName("aside")[0],
- document.getElementsByTagName("aside")[0]);
- assert_equals(document.getElementsByName("hgroup").length, 1);
- assert_equals(document.getElementsByName("hgroup")[0],
- document.getElementsByTagName("hgroup")[0]);
- assert_equals(document.getElementsByName("header").length, 1);
- assert_equals(document.getElementsByName("header")[0],
- document.getElementsByTagName("header")[0]);
- assert_equals(document.getElementsByName("footer").length, 1);
- assert_equals(document.getElementsByName("footer")[0],
- document.getElementsByTagName("footer")[0]);
- assert_equals(document.getElementsByName("nav").length, 1);
- assert_equals(document.getElementsByName("nav")[0],
- document.getElementsByTagName("nav")[0]);
- assert_equals(document.getElementsByName("dialog").length, 1);
- assert_equals(document.getElementsByName("dialog")[0],
- document.getElementsByTagName("dialog")[0]);
- assert_equals(document.getElementsByName("figure").length, 1);
- assert_equals(document.getElementsByName("figure")[0],
- document.getElementsByTagName("figure")[0]);
- assert_equals(document.getElementsByName("audio").length, 1);
- assert_equals(document.getElementsByName("audio")[0],
- document.getElementsByTagName("audio")[0]);
- assert_equals(document.getElementsByName("video").length, 1);
- assert_equals(document.getElementsByName("video")[0],
- document.getElementsByTagName("video")[0]);
- assert_equals(document.getElementsByName("embed").length, 1);
- assert_equals(document.getElementsByName("embed")[0],
- document.getElementsByTagName("embed")[0]);
- assert_equals(document.getElementsByName("mark").length, 1);
- assert_equals(document.getElementsByName("mark")[0],
- document.getElementsByTagName("mark")[0]);
- assert_equals(document.getElementsByName("meter").length, 1);
- assert_equals(document.getElementsByName("meter")[0],
- document.getElementsByTagName("meter")[0]);
- assert_equals(document.getElementsByName("progress").length, 1);
- assert_equals(document.getElementsByName("progress")[0],
- document.getElementsByTagName("progress")[0]);
- assert_equals(document.getElementsByName("time").length, 1);
- assert_equals(document.getElementsByName("time")[0],
- document.getElementsByTagName("time")[0]);
- assert_equals(document.getElementsByName("canvas").length, 1);
- assert_equals(document.getElementsByName("canvas")[0],
- document.getElementsByTagName("canvas")[0]);
- assert_equals(document.getElementsByName("command").length, 1);
- assert_equals(document.getElementsByName("command")[0],
- document.getElementsByTagName("command")[0]);
- assert_equals(document.getElementsByName("menu").length, 1);
- assert_equals(document.getElementsByName("menu")[0],
- document.getElementsByTagName("menu")[0]);
- assert_equals(document.getElementsByName("details").length, 1);
- assert_equals(document.getElementsByName("details")[0],
- document.getElementsByTagName("details")[0]);
- assert_equals(document.getElementsByName("datalist").length, 1);
- assert_equals(document.getElementsByName("datalist")[0],
- document.getElementsByTagName("datalist")[0]);
- assert_equals(document.getElementsByName("keygen").length, 1);
- assert_equals(document.getElementsByName("keygen")[0],
- document.getElementsByTagName("keygen")[0]);
- assert_equals(document.getElementsByName("output").length, 1);
- assert_equals(document.getElementsByName("output")[0],
- document.getElementsByTagName("output")[0]);
- assert_equals(document.getElementsByName("ruby").length, 1);
- assert_equals(document.getElementsByName("ruby")[0],
- document.getElementsByTagName("ruby")[0]);
- assert_equals(document.getElementsByName("rt").length, 1);
- assert_equals(document.getElementsByName("rt")[0],
- document.getElementsByTagName("rt")[0]);
- assert_equals(document.getElementsByName("rp").length, 1);
- assert_equals(document.getElementsByName("rp")[0],
- document.getElementsByTagName("rp")[0]);
- assert_equals(document.getElementsByName("source").length, 1);
- assert_equals(document.getElementsByName("source")[0],
- document.getElementsByTagName("source")[0]);
-});
+var testDiv = document.getElementById("test");
+for (var i = 0; i < testDiv.children.length; i++) {
+ var name = testDiv.children[i].getAttribute("name");
+ test(function() {
+ assert_equals(document.getElementsByName(name).length, 1);
+ assert_equals(document.getElementsByName(name)[0],
+ document.getElementsByTagName(name)[0]);
+ }, 'getElementsByName("' + name + '")');
+}
</script>
diff --git a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html
index 487d5867b18..b2b43ab8bd3 100644
--- a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html
+++ b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-03.html
@@ -7,38 +7,26 @@
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
+function test_title(set, expected) {
+ test(function() {
+ document.title = set;
+ assert_equals(document.title, expected);
+ }, "document.title after setting to " + format_value(set));
+}
+
test(function() {
// Single space characters must be normalized. (WHATWG r4353)
assert_equals(document.title, "document.title and space normalization");
-
- document.title = "one space";
- assert_equals(document.title, "one space");
-
- document.title = "two spaces";
- assert_equals(document.title, "two spaces");
-
- document.title = "one\ttab";
- assert_equals(document.title, "one tab");
-
- document.title = "two\t\ttabs";
- assert_equals(document.title, "two tabs");
-
- document.title = "one\nnewline";
- assert_equals(document.title, "one newline");
-
- document.title = "two\n\nnewlines";
- assert_equals(document.title, "two newlines");
-
- document.title = "one\fform feed";
- assert_equals(document.title, "one form feed");
-
- document.title = "two\f\fform feeds";
- assert_equals(document.title, "two form feeds");
-
- document.title = "one\rcarriage return";
- assert_equals(document.title, "one carriage return");
-
- document.title = "two\r\rcarriage returns";
- assert_equals(document.title, "two carriage returns");
-});
+}, "document.title initial value");
+
+test_title("one space", "one space");
+test_title("two spaces", "two spaces");
+test_title("one\ttab", "one tab");
+test_title("two\t\ttabs", "two tabs");
+test_title("one\nnewline", "one newline");
+test_title("two\n\nnewlines", "two newlines");
+test_title("one\fform feed", "one form feed");
+test_title("two\f\fform feeds", "two form feeds");
+test_title("one\rcarriage return", "one carriage return");
+test_title("two\r\rcarriage returns", "two carriage returns");
</script>
diff --git a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html
index 731d78cc14f..9cb7c01bf3c 100644
--- a/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html
+++ b/tests/wpt/web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09.html
@@ -7,7 +7,7 @@
var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
function newSVGDocument() {
- return document.implementation.createDocument(SVG_NAMESPACE, "svg");
+ return document.implementation.createDocument(SVG_NAMESPACE, "svg", null);
}
test(function() {
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html
new file mode 100644
index 00000000000..fb61db3261c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported-ref.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: supported types</title>
+<style>
+.decimal {
+ list-style-type: decimal;
+}
+.lower-alpha {
+ list-style-type: lower-alpha;
+}
+.upper-alpha {
+ list-style-type: upper-alpha;
+}
+.lower-roman {
+ list-style-type: lower-roman;
+}
+.upper-roman {
+ list-style-type: upper-roman;
+}
+</style>
+<ol class=decimal><li>1<li>2</ol>
+<ol class=lower-alpha><li>a<li>b</ol>
+<ol class=upper-alpha><li>A<li>B</ol>
+<ol class=lower-roman><li>i<li>ii</ol>
+<ol class=upper-roman><li>I<li>II</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.html
new file mode 100644
index 00000000000..86ed3be3830
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: supported types</title>
+<link rel=match href=ol-type-supported-ref.html>
+<ol type=1><li>1<li>2</ol>
+<ol type=a><li>a<li>b</ol>
+<ol type=A><li>A<li>B</ol>
+<ol type=i><li>i<li>ii</ol>
+<ol type=I><li>I<li>II</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml
new file mode 100644
index 00000000000..d7b949dab14
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-supported.xhtml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ol@type: supported types</title>
+<link rel="match" href="ol-type-supported-ref.html"/>
+</head>
+<body>
+<ol type="1"><li>1</li><li>2</li></ol>
+<ol type="a"><li>a</li><li>b</li></ol>
+<ol type="A"><li>A</li><li>B</li></ol>
+<ol type="i"><li>i</li><li>ii</li></ol>
+<ol type="I"><li>I</li><li>II</li></ol>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html
new file mode 100644
index 00000000000..f3c52e43bdb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: circle</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=circle><li>1<li>2</ol>
+<ol type=CIRCLE><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html
new file mode 100644
index 00000000000..a0f41f3b1c1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: disc</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=disc><li>1<li>2</ol>
+<ol type=DISC><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html
new file mode 100644
index 00000000000..2fd656100fb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: lower-alpha</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=lower-alpha><li>1<li>2</ol>
+<ol type=LOWER-ALPHA><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html
new file mode 100644
index 00000000000..49f5b2888e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: lower-roman</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=lower-roman><li>1<li>2</ol>
+<ol type=LOWER-ROMAN><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html
new file mode 100644
index 00000000000..bf800e1b11e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: none</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=none><li>1<li>2</ol>
+<ol type=NONE><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html
new file mode 100644
index 00000000000..530f8ef6c7b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-ref.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported types</title>
+<ol><li>1<li>2</ol>
+<ol><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html
new file mode 100644
index 00000000000..10a573687b5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: round</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=round><li>1<li>2</ol>
+<ol type=ROUND><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html
new file mode 100644
index 00000000000..b3e8937fb31
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: square</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=square><li>1<li>2</ol>
+<ol type=SQUARE><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html
new file mode 100644
index 00000000000..6a1ff97dbf7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: upper-latin</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=upper-alpha><li>1<li>2</ol>
+<ol type=UPPER-ALPHA><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html
new file mode 100644
index 00000000000..04cf451c677
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>ol@type: unsupported type: upper-roman</title>
+<link rel=match href=ol-type-unsupported-ref.html>
+<ol type=upper-roman><li>1<li>2</ol>
+<ol type=UPPER-ROMAN><li>1<li>2</ol>
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js
index 1d6ffa37495..cd9d96404f5 100644
--- a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js
+++ b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js
@@ -279,7 +279,7 @@ var validator = {
ctl.removeAttribute(item);
});
for (var attr in obj) {
- if (obj[attr] || obj[attr] === "")
+ if (attr === "checked" || obj[attr] || obj[attr] === "")
ctl[attr] = obj[attr];
}
},
diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection.html b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection.html
index d89ca04c466..709d26e86a8 100644
--- a/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection.html
+++ b/tests/wpt/web-platform-tests/html/semantics/forms/textfieldselection/selection.html
@@ -1,6 +1,7 @@
<!DOCTYPE HTML>
<title>test if select() API returns correct attributes</title>
<meta charset="UTF-8">
+<meta name="timeout" content="long">
<link rel="author" title="Koji Tashiro" href="mailto:koji.tashiro@gmail.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/multipage/association-of-controls-and-forms.html#textFieldSelection">
<script src="/resources/testharness.js"></script>
diff --git a/tests/wpt/web-platform-tests/lint b/tests/wpt/web-platform-tests/lint
index 97baabcc6e7..d2e5e18cfe0 100755
--- a/tests/wpt/web-platform-tests/lint
+++ b/tests/wpt/web-platform-tests/lint
@@ -1,6 +1,11 @@
#!/usr/bin/env python
import sys
-from tools.lint import lint
+try:
+ from tools.lint import lint
+except ImportError:
+ print("tools.lint not found. Did you forget to run "
+ '"git submodule update --init --recursive"?')
+ sys.exit(2)
sys.exit(0 if lint.main() == 0 else 1)
diff --git a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/.gitkeep b/tests/wpt/web-platform-tests/microdata/microdata-dom-api/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/.gitkeep
+++ /dev/null
diff --git a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/001.html b/tests/wpt/web-platform-tests/microdata/microdata-dom-api/001.html
deleted file mode 100644
index 822b0441444..00000000000
--- a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/001.html
+++ /dev/null
@@ -1,3665 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset="UTF-8">
- <title>Microdata tests</title>
- <script type="text/javascript" src="/resources/testharness.js"></script>
- <script type="text/javascript" src="/resources/testharnessreport.js"></script>
- <link rel="help" href="http://dev.w3.org/html5/md/#microdata-dom-api">
- <link rel="help" href="http://dev.w3.org/html5/md/#encoding-microdata">
- </head>
- <body>
- <noscript><p>Enable JavaScript and reload</p></noscript>
- <div id="log">Running test...</div>
- <div itemscope itemtype="http://example.com/bar data:text/plain, http://example.com/foo" id="one"></div>
- <div itemscope itemtype="http://example.com/bar" id="two"></div>
- <div itemscope itemtype="http://example.com/foo http://example.com/bar" id="three">
- <div itemscope itemtype="http://example.com/bar data:text/plain," id="four"></div>
- </div>
- <div itemscope id="five"></div>
- <script type="text/javascript">
-/* All tests are stand-alone.
-To reduce this testsuite to show only a single desired test,
-simply remove all test(...) blocks before and after it. */
-
-var urls = {"base":"http://" + location.host + "/",
- "www":"http://www." + location.host + "/",
- "www1":"http://www1." + location.host + "/"}
-
-function makeEl(eltype,props,contents) {
- var elem = document.createElement(eltype);
- for( var i in props ) {
- //just in case the framework extends object...
- if( props.hasOwnProperty(i) ) {
- elem.setAttribute(i,props[i]);
- }
- }
- if( contents ) {
- elem.innerHTML = contents;
- }
- return elem;
-}
-
-/* getItem tests */
-test(function () {
- assert_true( !!document.getItems );
-}, 'document.getItems must exist');
-test(function () {
- assert_true( document.getItems() instanceof NodeList, 'instanceof test' );
- NodeList.prototype.customProperty = true;
- assert_true( document.getItems().customProperty, 'inheritance test' );
-}, 'document.getItems must return a NodeList');
-test(function () {
- assert_equals( document.getItems().length, 5 );
-}, 'document.getItems must locate the correct number of items');
-test(function () {
- var nlist = document.getItems();
- var foo = makeEl('div',{itemscope:'itemscope'});
- document.body.appendChild(foo);
- var templength = nlist.length;
- document.body.removeChild(foo);
- assert_equals( templength, 6 );
- assert_equals( nlist.length, 5 );
-}, 'document.getItems must return a live NodeList');
-test(function () {
- var nlist = document.getItems();
- document.getElementById('one').removeAttribute('itemscope');
- var templength = nlist.length;
- document.getElementById('one').setAttribute('itemscope','itemscope');
- assert_equals( templength, 4 );
- assert_equals( nlist.length, 5 );
-}, 'live NodeList must notice when itemscope changes');
-test(function () {
- document.getElementById('one').removeAttribute('itemscope');
- var templength = document.getItems().length;
- document.getElementById('one').setAttribute('itemscope','itemscope');
- assert_equals( templength, 4 );
- assert_equals( document.getItems().length, 5 );
-}, 'next request must notice when itemscope changes');
-test(function () {
- assert_equals( document.getItems('http://example.com/').length, 0, 'http://example.com/' );
- assert_equals( document.getItems('example').length, 0, 'example' );
- assert_equals( document.getItems('http://example.com/foo').length, 2, 'http://example.com/foo' );
- assert_equals( document.getItems('http://example.com/bar').length, 4, 'http://example.com/bar' );
- assert_equals( document.getItems('data:text/plain,').length, 2, 'data:text/plain,' );
-}, 'document.getItems must locate the right number of items for each itemtype');
-test(function () {
- assert_equals( document.getItems('http://example.com/Foo').length, 0, 'http://example.com/Foo' );
- assert_equals( document.getItems('HTTP://example.com/foo').length, 0, 'HTTP://example.com/foo' );
-}, 'document.getItems must be case sensitive');
-test(function () {
- var nlist = document.getItems('http://example.com/foo');
- var foo = makeEl('div',{itemscope:'itemscope',itemtype:'http://example.com/foo'});
- document.body.appendChild(foo);
- var templength = nlist.length;
- document.body.removeChild(foo);
- assert_equals( templength, 3 );
- assert_equals( nlist.length, 2 );
-}, 'document.getItems must return a live NodeList when using URLs');
-test(function () {
- var nlist = document.getItems('http://example.com/foo');
- document.getElementById('one').removeAttribute('itemtype');
- var templength = nlist.length;
- document.getElementById('one').setAttribute('itemtype','http://example.com/bar data:text/plain, http://example.com/foo');
- assert_equals( templength, 1 );
- assert_equals( nlist.length, 2 );
-}, 'live NodeList must notice when itemtype changes');
-test(function () {
- document.getElementById('one').removeAttribute('itemtype');
- var templength = document.getItems('http://example.com/foo').length;
- document.getElementById('one').setAttribute('itemtype','http://example.com/bar data:text/plain, http://example.com/foo');
- assert_equals( templength, 1 );
- assert_equals( document.getItems('http://example.com/foo').length, 2 );
-}, 'next request must notice when itemtype changes');
-test(function () {
- assert_equals( document.getItems('http://example.com/foo data:text/plain,').length, 1, 'basic spaces' );
- assert_equals( document.getItems(' http://example.com/foo data:text/plain, ').length, 1, 'extraneous spaces' );
-}, 'document.getItems must locate items when parameters are separated by spaces');
-test(function () {
- assert_equals( document.getItems('http://example.com/foo data:text/plain, http://example.com/foo').length, 1 );
-}, 'document.getItems must ignore duplicated tokens');
-test(function () {
- var testitems = document.getItems('http://example.com/bar');
- assert_equals( testitems[0].id, 'one' );
- assert_equals( testitems[1].id, 'two' );
- assert_equals( testitems[2].id, 'three' );
- assert_equals( testitems[3].id, 'four' );
-}, 'document.getItems NodeList must be in source tree order');
-test(function () {
- assert_true( document.getItems('http://example.com/abc') != document.getItems('http://example.com/def'), 'different tokens' );
- assert_true( document.getItems() != document.getItems(' '), 'no tokens' );
-}, 'document.getItems must not return the same NodeList for different parameters');
-test(function () {
- assert_equals( document.getItems('').length, 5, 'empty string' );
- assert_equals( document.getItems(' ').length, 5, 'string with spaces' );
-}, 'document.getItems must treat no tokens as no parameter');
-//removed due to disputed Web compatibility of casting null with DOM methods
-/*
-test(function () {
- assert_equals( document.getItems(null).length, 0, 'null' );
- assert_equals( document.getItems(window.undefined).length, 0, 'undefined' );
-}, 'document.getItems must cast null and undefined to strings');
-*/
-test(function () {
- var foo = makeEl('div',{itemtype:'http://example.com/foo'});
- document.body.appendChild(foo);
- var templength = document.getItems('http://example.com/foo').length;
- document.body.removeChild(foo);
- assert_equals( templength, 2 );
-}, 'document.getItems must not find items with itemtype but not itemscope');
-test(function () {
- var foo = makeEl('div',{itemscope:'itemscope',itemtype:'baz'}),
- bar = makeEl('div',{itemscope:'itemscope',itemtype:location.href.replace(/\/[^\/]*$/,'/baz')});
- document.body.appendChild(foo);
- document.body.appendChild(bar);
- var unrezlength = document.getItems('baz').length;
- var rezlength = document.getItems(location.href.replace(/\/[^\/]*$/,'/baz')).length;
- document.body.removeChild(foo);
- document.body.removeChild(bar);
- assert_equals( unrezlength, 1, 'unresolved URL' );
- assert_equals( rezlength, 1, 'resolved URL' );
-}, 'document.getItems and itemtype must not resolve URLs');
-test(function () {
- document.getElementById('one').setAttribute('itemprop','test');
- document.getElementById('four').setAttribute('itemprop','test');
- var templength = document.getItems().length;
- document.getElementById('one').removeAttribute('itemprop');
- document.getElementById('four').removeAttribute('itemprop');
- assert_equals( templength, 3 );
-}, 'document.getItems must not see items that have the itemprop attribute set');
-
-/* itemScope property tests */
-test(function () {
- assert_true(makeEl('div',{itemscope:'itemscope'}).itemScope);
- assert_false(makeEl('div',{}).itemScope);
-}, 'the itemscope attribute must be reflected by the .itemScope property');
-test(function () {
- assert_equals( typeof makeEl('div',{itemscope:'itemscope'}).itemScope, 'boolean', 'attribute exists' );
- assert_equals( typeof makeEl('div',{}).itemScope, 'boolean', 'attribute does not exist' );
-}, 'the itemScope property must be boolean');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemScope = true;
- assert_true(testEl.itemScope,'writing true');
- testEl.itemScope = false;
- assert_false(testEl.itemScope,'writing false');
-}, 'the itemScope property must be read/write');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemScope = true;
- assert_true(testEl.hasAttribute('itemscope'),'writing true');
- testEl.itemScope = false;
- assert_false(testEl.hasAttribute('itemscope'),'writing false');
-}, 'writing to the itemScope property must toggle existence of the itemscope content attribute');
-test(function () {
- var testEl = makeEl('div',{});
- document.body.appendChild(testEl);
- var numAppend = document.getItems().length;
- testEl.itemScope = true;
- var numTrue = document.getItems().length;
- testEl.itemScope = false;
- var numFalse = document.getItems().length;
- document.body.removeChild(testEl);
- assert_equals(numAppend,5,'after appending the new item');
- assert_equals(numTrue,6,'after setting the property to true');
- assert_equals(numFalse,5,'after setting the property to false');
-}, 'writing to the itemScope property must affect whether the element is returned by getItems');
-test(function () {
- var testEl = makeEl('div',{}), nlist = document.getItems();
- document.body.appendChild(testEl);
- var numAppend = nlist.length;
- testEl.itemScope = true;
- var numTrue = nlist.length;
- testEl.itemScope = false;
- var numFalse = nlist.length;
- document.body.removeChild(testEl);
- assert_equals(numAppend,5,'after appending the new item');
- assert_equals(numTrue,6,'after setting the property to true');
- assert_equals(numFalse,5,'after setting the property to false');
-}, 'writing to the itemScope property must affect membership of live NodeLists');
-
-/* itemType property tests (properties collection tests are done later) */
-test(function () {
- assert_equals(makeEl('div',{}).itemType.toString(),'','no attribute');
- assert_equals(makeEl('div',{itemtype:' foo bar '}).itemType.toString(),' foo bar ','with simple tokens');
- var testEl = makeEl('div',{itemtype:'foo'});
- testEl.removeAttribute('itemtype');
- assert_equals(testEl.itemType.toString(),'','removed attribute');
-}, 'the itemType attribute must be reflected by the .itemRef property');
-test(function () {
- assert_equals( typeof makeEl('div',{}).itemType, 'object' );
-}, 'the itemType property must be an object');
-test(function () {
- assert_true( makeEl('div',{}).itemType instanceof DOMTokenList, 'instanceof test' );
- DOMTokenList.prototype.customProperty = true;
- assert_true( makeEl('div',{}).itemType.customProperty, 'inheritance test' );
-}, 'the itemType property must implement DOMTokenList');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.itemType, testEl.itemType );
-}, 'the itemType property must always reference the same object');
-test(function () {
- assert_equals( makeEl('div',{itemtype:'test test'}).itemType.length, 2, 'duplicates in initial string should be preserved' );
- assert_equals( makeEl('div',{itemtype:'test test'}).itemType.item(0), 'test' );
- assert_true( makeEl('div',{itemtype:'test test'}).itemType.contains('test') );
-}, 'itemType must be correct for an element that has itemtype tokens');
-test(function () {
- assert_equals( makeEl('div',{itemtype:' '}).itemType.length, 0 );
-}, 'itemType.length must be 0 for an element that has no tokens');
-test(function () {
- assert_false( makeEl('div',{itemtype:' '}).itemType.contains('foo') );
-}, 'itemType must not contain an undefined class');
-test(function () {
- assert_equals( makeEl('div',{itemtype:' '}).itemType.item(0), null );
-}, 'itemType.item() must return null for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemtype:' '}).itemType.item(-1), null );
-}, 'itemType.item() must return null for negative index');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemtype:' '}).itemType[0], window.undefined );
-}, 'itemType[index] must be undefined for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemtype:' '}).itemType[-1], window.undefined );
-}, 'itemType[index] must be undefined for negative index');
-test(function () {
- assert_equals( makeEl('div',{itemType:' '}).itemType.toString(), ' ' );
-}, 'empty itemType should stringify to contain the attribute\'s whitespace');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemtype:' '}).itemType.contains(''); } );
-}, 'itemType.contains(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemtype:' '}).itemType.add(''); } );
-}, 'itemType.add(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemtype:' '}).itemType.remove(''); } );
-}, 'itemType.remove(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemtype:' '}).itemType.toggle(''); } );
-}, 'itemType.toggle(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemtype:' '}).itemType.contains('a b'); } );
-}, 'itemType.contains(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemtype:' '}).itemType.add('a b'); } );
-}, 'itemType.add(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemtype:' '}).itemType.remove('a b'); } );
-}, 'itemType.remove(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemtype:' '}).itemType.toggle('a b'); } );
-}, 'itemType.toggle(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- var testEl = makeEl('div',{itemtype:'foo'});
- assert_true( testEl.itemType.contains('foo'), 'before change' );
- testEl.setAttribute('itemtype','bar');
- assert_true( testEl.itemType.contains('bar'), 'after change' );
- assert_false( testEl.itemType.contains('foo'), 'after change' );
-}, 'itemType.contains must update when the underlying attribute is changed');
-test(function () {
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('FOO') );
-}, 'itemType.contains must be case sensitive');
-test(function () {
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo.') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo)') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo\'') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo$') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo~') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo?') );
- assert_false( makeEl('div',{itemtype:'foo'}).itemType.contains('foo\\') );
-}, 'itemType.contains must not match when punctuation characters are added');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo'});
- elem.itemType.add('FOO');
- assert_true( elem.itemType.contains('foo') );
-}, 'itemType.add must not remove existing tokens');
-test(function () {
- assert_true( makeEl('div',{itemtype:'foo FOO'}).itemType.contains('FOO') );
-}, 'itemType.contains case sensitivity must match a case-specific string');
-test(function () {
- assert_equals( makeEl('div',{itemtype:'foo FOO'}).itemType.length, 2 );
-}, 'itemType.length must correctly reflect the number of tokens');
-test(function () {
- assert_equals( makeEl('div',{itemtype:'foo FOO'}).itemType.item(0), 'foo' );
-}, 'itemType.item(0) must return the first token');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo'});
- elem.itemType.add('FOO');
- assert_equals( elem.itemType.item(1), 'FOO' );
-}, 'itemType.item must return case-sensitive strings and preserve token order');
-test(function () {
- assert_equals( makeEl('div',{itemtype:'foo FOO'}).itemType[0], 'foo' );
-}, 'itemType[0] must return the first token');
-test(function () {
- assert_equals( makeEl('div',{itemtype:'foo FOO'}).itemType[1], 'FOO' );
-}, 'itemType[index] must return case-sensitive strings and preserve token order');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemtype:'foo FOO'}).itemType[2], window.undefined );
-}, 'itemType[index] must still be undefined for out-of-range index when earlier indexes exist');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemType.add('foo');
- elem.itemType.add('FOO');
- assert_equals( elem.getAttribute('itemtype'), 'foo FOO' );
-}, 'itemtype attribute must update correctly when items have been added through itemType');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemType.add('foo');
- elem.itemType.add('FOO');
- assert_equals( elem.itemType + '', 'foo FOO' );
-}, 'itemType must stringify correctly when items have been added');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.add('foo');
- assert_equals( elem.itemType.length, 2 );
- assert_equals( elem.itemType + '', 'foo FOO' );
-}, 'itemType.add must not make any changes if an existing token is added');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.remove('bar');
- assert_equals( elem.itemType.length, 2 );
- assert_equals( elem.itemType + '', 'foo FOO' );
-}, 'itemType.remove must not make any changes if a non-existing token is removed');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.remove('foo');
- assert_equals( elem.itemType.length, 1 );
- assert_equals( elem.itemType.toString(), 'FOO' );
- assert_false( elem.itemType.contains('foo') );
- assert_true( elem.itemType.contains('FOO') );
-}, 'itemType.remove must remove existing tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:'test test'});
- elem.itemType.remove('test');
- assert_equals( elem.itemType.length, 0 );
- assert_false( elem.itemType.contains('test') );
-}, 'itemType.remove must remove duplicated tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:'token1 token2 token3'});
- elem.itemType.remove('token2');
- assert_equals( elem.itemType.toString(), 'token1 token3' );
-}, 'itemType.remove must collapse whitespace around removed tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:' token1 token2 '});
- elem.itemType.remove('token2');
- assert_equals( elem.itemType.toString(), 'token1' );
-}, 'itemType.remove must remove all useless whitespace');
-test(function () {
- var elem = makeEl('div',{itemtype:' token1 token2 token3 '});
- elem.itemType.remove('token2');
- assert_equals( elem.itemType.toString(), 'token1 token3' );
-}, 'itemType.remove must collapse multiple whitespace around removed tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:' token1 token2 token1 '});
- elem.itemType.remove('token2');
- assert_equals( elem.itemType.toString(), 'token1' );
-}, 'itemType.remove must remove duplicates when removing tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:' token1 token2 token3 '});
- elem.itemType.remove('token1', 'token3');
- assert_equals( elem.itemType.toString(), 'token2' );
-}, 'itemType.remove must collapse whitespace when removing multiple tokens');
-test(function () {
- var elem = makeEl('div',{itemtype:' token1 token2 '});
- elem.itemType.add('token1');
- assert_equals( elem.itemType.toString(), 'token1 token2' );
-}, 'itemType.add must remove unused whitespace when the token already exists');
-test(function () {
- var elem = makeEl('div',{itemtype:'FOO'});
- assert_true(elem.itemType.toggle('foo'));
- assert_equals( elem.itemType.length, 2 );
- assert_true( elem.itemType.contains('foo') );
- assert_true( elem.itemType.contains('FOO') );
-}, 'itemType.toggle must toggle tokens case-sensitively when adding');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- assert_false(elem.itemType.toggle('foo'));
- assert_false(elem.itemType.toggle('FOO'));
- assert_false( elem.itemType.contains('foo') );
- assert_false( elem.itemType.contains('FOO') );
-}, 'itemType.toggle must be able to remove tokens case-sensitively');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.toggle('foo');
- elem.itemType.toggle('FOO');
- assert_equals( elem.getAttribute('itemtype'), '' );
-}, 'itemtype attribute must be empty when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.toggle('foo');
- elem.itemType.toggle('FOO');
- assert_equals( elem.itemType.toString(), '' );
-}, 'itemType must stringify to an empty string when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.toggle('foo');
- elem.itemType.toggle('FOO');
- assert_equals( elem.itemType.item(0), null );
-}, 'itemType.item(0) must return null when all classes have been removed');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- var elem = makeEl('div',{itemtype:'foo FOO'});
- elem.itemType.toggle('foo');
- elem.itemType.toggle('FOO');
- assert_equals( elem.itemType[0], window.undefined );
-}, 'itemType[0] must be undefined when all classes have been removed');
-//if the last character of DOMTokenSting underlying character is not a space character, append U+0020", where "space character" is from " \t\r\n\f"
-test(function () {
- var elem = makeEl('div',{itemtype:'a '});
- elem.itemType.add('b');
- assert_equals(elem.itemType.toString(),'a b');
-}, 'itemType.add should treat " " as a space');
-test(function () {
- var elem = makeEl('div',{itemtype:'a\t'});
- elem.itemType.add('b');
- assert_equals(elem.itemType.toString(),'a b');
-}, 'itemType.add should normalize \\t as a space');
-test(function () {
- var elem = makeEl('div',{itemtype:'a\r'});
- elem.itemType.add('b');
- assert_equals(elem.itemType.toString(),'a b');
-}, 'itemType.add should normalize \\r as a space');
-test(function () {
- var elem = makeEl('div',{itemtype:'a\n'});
- elem.itemType.add('b');
- assert_equals(elem.itemType.toString(),'a b');
-}, 'itemType.add should normalize \\n as a space');
-test(function () {
- var elem = makeEl('div',{itemtype:'a\f'});
- elem.itemType.add('b');
- assert_equals(elem.itemType.toString(),'a b');
-}, 'itemType.add should normalize \\f as a space');
-test(function () {
- var elem = makeEl('div',{itemtype:'foo'});
- elem.itemType.remove('foo');
- elem.removeAttribute('itemtype');
- assert_true( elem.itemType.toggle('foo') );
-}, 'itemType.toggle must work after removing the itemtype attribute');
-test(function () {
- //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter
- //ES5 makes [[Put]] fail but not throw
- var failed = false;
- var elem = makeEl('div',{itemtype:'token1'});
- try {
- elem.itemType.length = 0;
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemType.length,1);
- assert_false(failed,'an error was thrown');
-}, 'itemType.length must be read-only');
-test(function () {
- var failed = false, elem = makeEl('div',{itemtype:'test'}), realList = elem.itemType;
- try {
- elem.itemType = 'dummy';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemType,realList);
- assert_equals(elem.itemType.toString(),'dummy','attempting to write should modify the underlying string');
- assert_false(failed,'an error was thrown');
-}, 'itemType must be read-only');
-
-/* itemProp property tests (properties collection tests are done later) */
-test(function () {
- assert_equals(makeEl('div',{}).itemProp.toString(),'','no attribute');
- assert_equals(makeEl('div',{itemprop:' ' + urls.www1 + 'foo#bar test '}).itemProp.toString(),' ' + urls.www1 + 'foo#bar test ','with URL and simple tokens');
- var testEl = makeEl('div',{itemprop:urls.www1 + 'foo#bar'});
- testEl.removeAttribute('itemprop');
- assert_equals(testEl.itemProp.toString(),'','removed attribute');
-}, 'the itemprop attribute must be reflected by the .itemProp property');
-test(function () {
- assert_equals( typeof makeEl('div',{}).itemProp, 'object' );
-}, 'the itemProp property must be an object');
-test(function () {
- assert_true( makeEl('div',{}).itemProp instanceof DOMTokenList, 'instanceof test' );
- DOMTokenList.prototype.customProperty = true;
- assert_true( makeEl('div',{}).itemProp.customProperty, 'inheritance test' );
-}, 'the itemProp property must implement DOMTokenList');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.itemProp, testEl.itemProp );
-}, 'the itemProp property must always reference the same object');
-test(function () {
- assert_equals( makeEl('div',{itemprop:'test test'}).itemProp.length, 2, 'duplicates in initial string should be preserved' );
- assert_equals( makeEl('div',{itemprop:'test test'}).itemProp.item(0), 'test' );
- assert_true( makeEl('div',{itemprop:'test test'}).itemProp.contains('test') );
-}, 'itemProp must be correct for an element that has itemprop tokens');
-test(function () {
- assert_equals( makeEl('div',{itemprop:' '}).itemProp.length, 0 );
-}, 'itemProp.length must be 0 for an element that has no tokens');
-test(function () {
- assert_false( makeEl('div',{itemprop:' '}).itemProp.contains('foo') );
-}, 'itemProp must not contain an undefined class');
-test(function () {
- assert_equals( makeEl('div',{itemprop:' '}).itemProp.item(0), null );
-}, 'itemProp.item() must return null for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemprop:' '}).itemProp.item(-1), null );
-}, 'itemProp.item() must return null for negative index');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemprop:' '}).itemProp[0], window.undefined );
-}, 'itemProp[index] must be undefined for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemprop:' '}).itemProp[-1], window.undefined );
-}, 'itemProp[index] must be undefined for negative index');
-test(function () {
- assert_equals( makeEl('div',{itemprop:' '}).itemProp.toString(), ' ' );
-}, 'empty itemProp should stringify to contain the attribute\'s whitespace');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.contains(''); } );
-}, 'itemProp.contains(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.add(''); } );
-}, 'itemProp.add(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.remove(''); } );
-}, 'itemProp.remove(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.toggle(''); } );
-}, 'itemProp.toggle(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.contains('a b'); } );
-}, '.contains(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.add('a b'); } );
-}, 'itemProp.add(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.remove('a b'); } );
-}, 'itemProp.remove(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemprop:' '}).itemProp.toggle('a b'); } );
-}, 'itemProp.toggle(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- var testEl = makeEl('div',{itemprop:'foo'});
- assert_true( testEl.itemProp.contains('foo'), 'before change' );
- testEl.setAttribute('itemprop','bar');
- assert_true( testEl.itemProp.contains('bar'), 'after change' );
- assert_false( testEl.itemProp.contains('foo'), 'after change' );
-}, 'itemProp.contains must update when the underlying attribute is changed');
-test(function () {
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('FOO') );
-}, 'itemProp.contains must be case sensitive');
-test(function () {
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo.') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo)') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo\'') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo$') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo~') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo?') );
- assert_false( makeEl('div',{itemprop:'foo'}).itemProp.contains('foo\\') );
-}, 'itemProp.contains must not match when punctuation characters are added');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo'});
- elem.itemProp.add('FOO');
- assert_true( elem.itemProp.contains('foo') );
-}, 'itemProp.add must not remove existing tokens');
-test(function () {
- assert_true( makeEl('div',{itemprop:'foo FOO'}).itemProp.contains('FOO') );
-}, 'itemProp.contains case sensitivity must match a case-specific string');
-test(function () {
- assert_equals( makeEl('div',{itemprop:'foo FOO'}).itemProp.length, 2 );
-}, 'itemProp.length must correctly reflect the number of tokens');
-test(function () {
- assert_equals( makeEl('div',{itemprop:'foo FOO'}).itemProp.item(0), 'foo' );
-}, 'itemProp.item(0) must return the first token');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo'});
- elem.itemProp.add('FOO');
- assert_equals( elem.itemProp.item(1), 'FOO' );
-}, 'itemProp.item must return case-sensitive strings and preserve token order');
-test(function () {
- assert_equals( makeEl('div',{itemprop:'foo FOO'}).itemProp[0], 'foo' );
-}, 'itemProp[0] must return the first token');
-test(function () {
- assert_equals( makeEl('div',{itemprop:'foo FOO'}).itemProp[1], 'FOO' );
-}, 'itemProp[index] must return case-sensitive strings and preserve token order');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemprop:'foo FOO'}).itemProp[2], window.undefined );
-}, 'itemProp[index] must still be undefined for out-of-range index when earlier indexes exist');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemProp.add('foo');
- elem.itemProp.add('FOO');
- assert_equals( elem.getAttribute('itemprop'), 'foo FOO' );
-}, 'itemprop attribute must update correctly when items have been added through itemProp');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemProp.add('foo');
- elem.itemProp.add('FOO');
- assert_equals( elem.itemProp + '', 'foo FOO' );
-}, 'itemProp must stringify correctly when items have been added');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.add('foo');
- assert_equals( elem.itemProp.length, 2 );
- assert_equals( elem.itemProp + '', 'foo FOO' );
-}, 'itemProp.add must not make any changes if an existing token is added');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.remove('bar');
- assert_equals( elem.itemProp.length, 2 );
- assert_equals( elem.itemProp + '', 'foo FOO' );
-}, 'itemProp.remove must not make any changes if a non-existing token is removed');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.remove('foo');
- assert_equals( elem.itemProp.length, 1 );
- assert_equals( elem.itemProp.toString(), 'FOO' );
- assert_false( elem.itemProp.contains('foo') );
- assert_true( elem.itemProp.contains('FOO') );
-}, 'itemProp.remove must remove existing tokens');
-test(function () {
- var elem = makeEl('div',{itemprop:'test test'});
- elem.itemProp.remove('test');
- assert_equals( elem.itemProp.length, 0 );
- assert_false( elem.itemProp.contains('test') );
-}, 'itemProp.remove must remove duplicated tokens');
-test(function () {
- var elem = makeEl('div',{itemprop:'token1 token2 token3'});
- elem.itemProp.remove('token2');
- assert_equals( elem.itemProp.toString(), 'token1 token3' );
-}, 'itemProp.remove must collapse whitespace around removed tokens');
-test(function () {
- var elem = makeEl('div',{itemprop:' token1 token2 token3 '});
- elem.itemProp.remove('token2');
- assert_equals( elem.itemProp.toString(), 'token1 token3' );
-}, 'itemProp.remove must remove all useless whitespace');
-test(function () {
- var elem = makeEl('div',{itemprop:' token1 token2 token3 '});
- elem.itemProp.remove('token1', 'token3');
- assert_equals( elem.itemProp.toString(), 'token2' );
-}, 'itemProp.remove must remove useless whitespace when removing multiple tokens');
-test(function () {
- var elem = makeEl('div',{itemprop:' token1 token1 '});
- elem.itemProp.add('token1');
- assert_equals( elem.itemProp.toString(), 'token1' );
-}, 'itemProp.add must remove useless whitespace and duplicates when the token already exists');
-test(function () {
- var elem = makeEl('div',{itemprop:'FOO'});
- assert_true(elem.itemProp.toggle('foo'));
- assert_equals( elem.itemProp.length, 2 );
- assert_true( elem.itemProp.contains('foo') );
- assert_true( elem.itemProp.contains('FOO') );
-}, 'itemProp.toggle must toggle tokens case-sensitively when adding');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- assert_false(elem.itemProp.toggle('foo'));
- assert_false(elem.itemProp.toggle('FOO'));
- assert_false( elem.itemProp.contains('foo') );
- assert_false( elem.itemProp.contains('FOO') );
-}, 'itemProp.toggle must be able to remove tokens case-sensitively');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.toggle('foo');
- elem.itemProp.toggle('FOO');
- assert_equals( elem.getAttribute('itemprop'), '' );
-}, 'itemprop attribute must be empty when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.toggle('foo');
- elem.itemProp.toggle('FOO');
- assert_equals( elem.itemProp.toString(), '' );
-}, 'itemProp must stringify to an empty string when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.toggle('foo');
- elem.itemProp.toggle('FOO');
- assert_equals( elem.itemProp.item(0), null );
-}, 'itemProp.item(0) must return null when all classes have been removed');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- var elem = makeEl('div',{itemprop:'foo FOO'});
- elem.itemProp.toggle('foo');
- elem.itemProp.toggle('FOO');
- assert_equals( elem.itemProp[0], window.undefined );
-}, 'itemProp[0] must be undefined when all classes have been removed');
-//if the last character of DOMTokenSting underlying character is not a space character, append U+0020", where "space character" is from " \t\r\n\f"
-test(function () {
- var elem = makeEl('div',{itemprop:'a '});
- elem.itemProp.add('b');
- assert_equals(elem.itemProp.toString(),'a b');
-}, 'itemProp.add should treat " " as a space');
-test(function () {
- var elem = makeEl('div',{itemprop:'a\t'});
- elem.itemProp.add('b');
- assert_equals(elem.itemProp.toString(),'a b');
-}, 'itemProp.add should normalize \\t as a space');
-test(function () {
- var elem = makeEl('div',{itemprop:'a\r'});
- elem.itemProp.add('b');
- assert_equals(elem.itemProp.toString(),'a b');
-}, 'itemProp.add should normalize \\r as a space');
-test(function () {
- var elem = makeEl('div',{itemprop:'a\n'});
- elem.itemProp.add('b');
- assert_equals(elem.itemProp.toString(),'a b');
-}, 'itemProp.add should normalize \\n as a space');
-test(function () {
- var elem = makeEl('div',{itemprop:'a\f'});
- elem.itemProp.add('b');
- assert_equals(elem.itemProp.toString(),'a b');
-}, 'itemProp.add should normalize \\f as a space');
-test(function () {
- var elem = makeEl('div',{itemprop:'foo'});
- elem.itemProp.remove('foo');
- elem.removeAttribute('itemprop');
- assert_true( elem.itemProp.toggle('foo') );
-}, 'itemProp.toggle must work after removing the itemprop attribute');
-test(function () {
- //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter
- //ES5 makes [[Put]] fail but not throw
- var failed = false;
- var elem = makeEl('div',{itemprop:'token1'});
- try {
- elem.itemProp.length = 0;
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemProp.length,1);
- assert_false(failed,'an error was thrown');
-}, 'itemProp.length must be read-only');
-test(function () {
- var failed = false, elem = makeEl('div',{itemprop:'test'}), realList = elem.itemProp;
- try {
- elem.itemProp = 'dummy';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemProp,realList);
- assert_equals(elem.itemProp.toString(),'dummy','attempting to write should modify the underlying string');
- assert_false(failed,'an error was thrown');
-}, 'itemProp must be read-only');
-
-/* itemId property tests */
-test(function () {
- assert_equals( makeEl('div',{itemid:urls.www1 + 'foo'}).itemId, urls.www1 + 'foo' );
- assert_equals( makeEl('div',{itemid:urls.www1 + 'FOO'}).itemId, urls.www1 + 'FOO', 'case-sensitive' );
- assert_equals( makeEl('div',{itemid:' ' + urls.www1 + 'foo '}).itemId, urls.www1 + 'foo', 'whitespace' );
- assert_equals( makeEl('div',{itemid:'data:text/plain,'}).itemId, 'data:text/plain,' );
- assert_equals( makeEl('div',{itemid:'madeup:onthespot'}).itemId, 'madeup:onthespot' );
- assert_equals( makeEl('div',{}).itemId, '' );
-}, 'the itemid attribute must be reflected by the .itemId property');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemId = urls.www1 + 'foo';
- assert_equals(testEl.itemId,urls.www1 + 'foo','writing a URL');
- testEl.itemId = '';
- assert_equals(testEl.itemId,location.href,'writing an empty string');
-}, 'the itemId property must be read/write');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemId = urls.www1 + 'foo';
- assert_true(testEl.hasAttribute('itemid'),'writing a URL');
- assert_equals(testEl.getAttribute('itemid'),urls.www1 + 'foo','writing a URL');
- testEl = makeEl('div',{})
- testEl.itemId = '';
- assert_true(testEl.hasAttribute('itemid'),'writing an empty string');
- assert_equals(testEl.getAttribute('itemid'),'','writing an empty string');
-}, 'writing to the itemId property must create the itemid content attribute');
-test(function () {
- assert_equals( makeEl('div',{itemid:'foo'}).itemId, location.href.replace(/\/[^\/]*$/,'\/foo'),'foo' );
- assert_equals( makeEl('div',{itemid:'foo bar'}).itemId, location.href.replace(/\/[^\/]*$/,'\/foo%20bar'),'foo bar' );
- assert_equals( makeEl('div',{itemid:'foo\u0129 bar'}).itemId, location.href.replace(/\/[^\/]*$/,'\/foo%C4%A9%20bar'),'foo\u0129 bar' );
-}, 'the itemId property must see the resolved itemid URL');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemId = 'foo';
- assert_equals( testEl.itemId, location.href.replace(/\/[^\/]*$/,'\/foo') );
-}, 'the itemId property must see the resolved itemId property URL on setting');
-test(function () {
- var testEl = makeEl('div',{});
- testEl.itemId = 'foo';
- assert_equals( testEl.getAttribute('itemid'), 'foo' );
-}, 'the itemid attribute must see the resolved itemId URL');
-
-/* itemRef property tests (properties collection tests are done later) */
-test(function () {
- assert_equals(makeEl('div',{}).itemRef.toString(),'','no attribute');
- assert_equals(makeEl('div',{itemref:' foo bar '}).itemRef.toString(),' foo bar ','with simple tokens');
- var testEl = makeEl('div',{itemref:'foo'});
- testEl.removeAttribute('itemref');
- assert_equals(testEl.itemRef.toString(),'','removed attribute');
-}, 'the itemref attribute must be reflected by the .itemRef property');
-test(function () {
- assert_equals( typeof makeEl('div',{}).itemRef, 'object' );
-}, 'the itemRef property must be an object');
-test(function () {
- assert_true( makeEl('div',{}).itemRef instanceof DOMTokenList, 'instanceof test' );
- DOMTokenList.prototype.customProperty = true;
- assert_true( makeEl('div',{}).itemRef.customProperty, 'inheritance test' );
-}, 'the itemRef property must implement DOMTokenList');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.itemRef, testEl.itemRef );
-}, 'the itemRef property must always reference the same object');
-test(function () {
- assert_equals( makeEl('div',{itemref:'test test'}).itemRef.length, 2, 'duplicates in initial string should be preserved' );
- assert_equals( makeEl('div',{itemref:'test test'}).itemRef.item(0), 'test' );
- assert_true( makeEl('div',{itemref:'test test'}).itemRef.contains('test') );
-}, 'itemRef must be correct for an element that has itemref tokens');
-test(function () {
- assert_equals( makeEl('div',{itemref:' '}).itemRef.length, 0 );
-}, 'itemRef.length must be 0 for an element that has no tokens');
-test(function () {
- assert_false( makeEl('div',{itemref:' '}).itemRef.contains('foo') );
-}, 'itemRef must not contain an undefined class');
-test(function () {
- assert_equals( makeEl('div',{itemref:' '}).itemRef.item(0), null );
-}, 'itemRef.item() must return null for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemref:' '}).itemRef.item(-1), null );
-}, 'itemRef.item() must return null for negative index');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemref:' '}).itemRef[0], window.undefined );
-}, 'itemRef[index] must be undefined for out-of-range index');
-test(function () {
- assert_equals( makeEl('div',{itemref:' '}).itemRef[-1], window.undefined );
-}, 'itemRef[index] must be undefined for negative index');
-test(function () {
- assert_equals( makeEl('div',{itemref:' '}).itemRef.toString(), ' ' );
-}, 'empty itemRef should stringify to contain the attribute\'s whitespace');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemref:' '}).itemRef.contains(''); } );
-}, 'itemRef.contains(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemref:' '}).itemRef.add(''); } );
-}, 'itemRef.add(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemref:' '}).itemRef.remove(''); } );
-}, 'itemRef.remove(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'SYNTAX_ERR', function () { makeEl('div',{itemref:' '}).itemRef.toggle(''); } );
-}, 'itemRef.toggle(empty_string) must throw a SYNTAX_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemref:' '}).itemRef.contains('a b'); } );
-}, 'itemRef.contains(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemref:' '}).itemRef.add('a b'); } );
-}, 'itemRef.add(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemref:' '}).itemRef.remove('a b'); } );
-}, 'itemRef.remove(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- assert_throws( 'INVALID_CHARACTER_ERR', function () { makeEl('div',{itemref:' '}).itemRef.toggle('a b'); } );
-}, 'itemRef.toggle(string_with_spaces) must throw an INVALID_CHARACTER_ERR');
-test(function () {
- var testEl = makeEl('div',{itemref:'foo'});
- assert_true( testEl.itemRef.contains('foo'), 'before change' );
- testEl.setAttribute('itemref','bar');
- assert_true( testEl.itemRef.contains('bar'), 'after change' );
- assert_false( testEl.itemRef.contains('foo'), 'after change' );
-}, 'itemRef.contains must update when the underlying attribute is changed');
-test(function () {
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('FOO') );
-}, 'itemRef.contains must be case sensitive');
-test(function () {
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo.') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo)') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo\'') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo$') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo~') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo?') );
- assert_false( makeEl('div',{itemref:'foo'}).itemRef.contains('foo\\') );
-}, 'itemRef.contains must not match when punctuation characters are added');
-test(function () {
- var elem = makeEl('div',{itemref:'foo'});
- elem.itemRef.add('FOO');
- assert_true( elem.itemRef.contains('foo') );
-}, 'itemRef.add must not remove existing tokens');
-test(function () {
- assert_true( makeEl('div',{itemref:'foo FOO'}).itemRef.contains('FOO') );
-}, 'itemRef.contains case sensitivity must match a case-specific string');
-test(function () {
- assert_equals( makeEl('div',{itemref:'foo FOO'}).itemRef.length, 2 );
-}, 'itemRef.length must correctly reflect the number of tokens');
-test(function () {
- assert_equals( makeEl('div',{itemref:'foo FOO'}).itemRef.item(0), 'foo' );
-}, 'itemRef.item(0) must return the first token');
-test(function () {
- var elem = makeEl('div',{itemref:'foo'});
- elem.itemRef.add('FOO');
- assert_equals( elem.itemRef.item(1), 'FOO' );
-}, 'itemRef.item must return case-sensitive strings and preserve token order');
-test(function () {
- assert_equals( makeEl('div',{itemref:'foo FOO'}).itemRef[0], 'foo' );
-}, 'itemRef[0] must return the first token');
-test(function () {
- assert_equals( makeEl('div',{itemref:'foo FOO'}).itemRef[1], 'FOO' );
-}, 'itemRef[index] must return case-sensitive strings and preserve token order');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- assert_equals( makeEl('div',{itemref:'foo FOO'}).itemRef[2], window.undefined );
-}, 'itemRef[index] must still be undefined for out-of-range index when earlier indexes exist');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemRef.add('foo');
- elem.itemRef.add('FOO');
- assert_equals( elem.getAttribute('itemref'), 'foo FOO' );
-}, 'itemref attribute must update correctly when items have been added through itemRef');
-test(function () {
- var elem = makeEl('div',{});
- elem.itemRef.add('foo');
- elem.itemRef.add('FOO');
- assert_equals( elem.itemRef + '', 'foo FOO' );
-}, 'itemRef must stringify correctly when items have been added');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.add('foo');
- assert_equals( elem.itemRef.length, 2 );
- assert_equals( elem.itemRef + '', 'foo FOO' );
-}, 'itemRef.add must not make any changes if an existing token is added');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.remove('bar');
- assert_equals( elem.itemRef.length, 2 );
- assert_equals( elem.itemRef + '', 'foo FOO' );
-}, 'itemRef.remove must not make any changes if a non-existing token is removed');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.remove('foo');
- assert_equals( elem.itemRef.length, 1 );
- assert_equals( elem.itemRef.toString(), 'FOO' );
- assert_false( elem.itemRef.contains('foo') );
- assert_true( elem.itemRef.contains('FOO') );
-}, 'itemRef.remove must remove existing tokens');
-test(function () {
- var elem = makeEl('div',{itemref:'test test'});
- elem.itemRef.remove('test');
- assert_equals( elem.itemRef.length, 0 );
- assert_false( elem.itemRef.contains('test') );
-}, 'itemRef.remove must remove duplicated tokens');
-test(function () {
- var elem = makeEl('div',{itemref:'token1 token2 token3'});
- elem.itemRef.remove('token2');
- assert_equals( elem.itemRef.toString(), 'token1 token3' );
-}, 'itemRef.remove must collapse whitespace around removed tokens');
-test(function () {
- var elem = makeEl('div',{itemref:' token1 token2 '});
- elem.itemRef.remove('token2');
- assert_equals( elem.itemRef.toString(), 'token1' );
-}, 'itemRef.remove must remove useless whitespace when removing tokens');
-test(function () {
- var elem = makeEl('div',{itemref:' token1 token2 token3 '});
- elem.itemRef.remove('token2');
- assert_equals( elem.itemRef.toString(), 'token1 token3' );
-}, 'itemRef.remove must remove useless whitespace when removing tokens (2)');
-test(function () {
- var elem = makeEl('div',{itemref:' token1 token2 token3 '});
- elem.itemRef.remove('token1', 'token3');
- assert_equals( elem.itemRef.toString(), 'token2' );
-}, 'itemRef.remove must collapse whitespace when removing multiple tokens');
-test(function () {
- var elem = makeEl('div',{itemref:' token1 token1 '});
- elem.itemRef.add('token1');
- assert_equals( elem.itemRef.toString(), 'token1' );
-}, 'itemRef.add must remove whitespace and duplicate when the token already exists');
-test(function () {
- var elem = makeEl('div',{itemref:'FOO'});
- assert_true(elem.itemRef.toggle('foo'));
- assert_equals( elem.itemRef.length, 2 );
- assert_true( elem.itemRef.contains('foo') );
- assert_true( elem.itemRef.contains('FOO') );
-}, 'itemRef.toggle must toggle tokens case-sensitively when adding');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- assert_false(elem.itemRef.toggle('foo'));
- assert_false(elem.itemRef.toggle('FOO'));
- assert_false( elem.itemRef.contains('foo') );
- assert_false( elem.itemRef.contains('FOO') );
-}, 'itemRef.toggle must be able to remove tokens case-sensitively');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.toggle('foo');
- elem.itemRef.toggle('FOO');
- assert_equals( elem.getAttribute('itemref'), '' );
-}, 'itemref attribute must be empty when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.toggle('foo');
- elem.itemRef.toggle('FOO');
- assert_equals( elem.itemRef.toString(), '' );
-}, 'itemRef must stringify to an empty string when all classes have been removed');
-test(function () {
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.toggle('foo');
- elem.itemRef.toggle('FOO');
- assert_equals( elem.itemRef.item(0), null );
-}, 'itemRef.item(0) must return null when all classes have been removed');
-test(function () {
- /* the normative part of the spec states that:
- "unless the length is zero, in which case there are no supported property indices"
- ...
- "The term[...] supported property indices [is] used as defined in the WebIDL specification."
- WebIDL creates actual OwnProperties and then [] just acts as a normal property lookup */
- var elem = makeEl('div',{itemref:'foo FOO'});
- elem.itemRef.toggle('foo');
- elem.itemRef.toggle('FOO');
- assert_equals( elem.itemRef[0], window.undefined );
-}, 'itemRef[0] must be undefined when all classes have been removed');
-//if the last character of DOMTokenSting underlying character is not a space character, append U+0020", where "space character" is from " \t\r\n\f"
-test(function () {
- var elem = makeEl('div',{itemref:'a '});
- elem.itemRef.add('b');
- assert_equals(elem.itemRef.toString(),'a b');
-}, 'itemRef.add should treat " " as a space');
-test(function () {
- var elem = makeEl('div',{itemref:'a\t'});
- elem.itemRef.add('b');
- assert_equals(elem.itemRef.toString(),'a b');
-}, 'itemRef.add should normalize \\t as a space');
-test(function () {
- var elem = makeEl('div',{itemref:'a\r'});
- elem.itemRef.add('b');
- assert_equals(elem.itemRef.toString(),'a b');
-}, 'itemRef.add should normalize \\r as a space');
-test(function () {
- var elem = makeEl('div',{itemref:'a\n'});
- elem.itemRef.add('b');
- assert_equals(elem.itemRef.toString(),'a b');
-}, 'itemRef.add should normalize \\n as a space');
-test(function () {
- var elem = makeEl('div',{itemref:'a\f'});
- elem.itemRef.add('b');
- assert_equals(elem.itemRef.toString(),'a b');
-}, 'itemRef.add should normalize \\f as a space');
-test(function () {
- var elem = makeEl('div',{itemref:'foo'});
- elem.itemRef.remove('foo');
- elem.removeAttribute('itemref');
- assert_true( elem.itemRef.toggle('foo') );
-}, 'itemRef.toggle must work after removing the itemref attribute');
-test(function () {
- //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter
- //ES5 makes [[Put]] fail but not throw
- var failed = false;
- var elem = makeEl('div',{itemref:'token1'});
- try {
- elem.itemRef.length = 0;
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemRef.length,1);
- assert_false(failed,'an error was thrown');
-}, 'itemRef.length must be read-only');
-test(function () {
- var failed = false, elem = makeEl('div',{itemref:'test'}), realList = elem.itemRef;
- try {
- elem.itemRef = 'dummy';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.itemRef,realList);
- assert_equals(elem.itemRef.toString(),'dummy','attempting to write should modify the underlying string');
- assert_false(failed,'an error was thrown');
-}, 'itemRef must be read-only');
-
-/* itemValue property tests */
-test(function () {
- assert_equals( makeEl('meta',{content:'test'}).itemValue, null, 'meta' );
- assert_equals( makeEl('audio',{src:'test'}).itemValue, null, 'audio' );
- assert_equals( makeEl('embed',{src:'test'}).itemValue, null, 'embed' );
- assert_equals( makeEl('iframe',{src:'test'}).itemValue, null, 'iframe' );
- assert_equals( makeEl('img',{src:'test'}).itemValue, null, 'img' );
- assert_equals( makeEl('source',{src:'test'}).itemValue, null, 'source' );
- assert_equals( makeEl('track',{src:'test'}).itemValue, null, 'track' );
- assert_equals( makeEl('video',{src:'test'}).itemValue, null, 'video' );
- assert_equals( makeEl('a',{href:'test'}).itemValue, null, 'a' );
- assert_equals( makeEl('area',{href:'test'}).itemValue, null, 'area' );
- assert_equals( makeEl('link',{href:'test'}).itemValue, null, 'link' );
- assert_equals( makeEl('object',{data:'test'}).itemValue, null, 'object' );
- assert_equals( makeEl('time',{}).itemValue, null, 'time without datetime' );
- assert_equals( makeEl('time',{datetime:'test'}).itemValue, null, 'time with datetime' );
- assert_equals( makeEl('div',{},'test').itemValue, null, 'otherwise' );
- assert_equals( makeEl('madeuponthespot',{},'test').itemValue, null, 'unknown element' );
-}, 'itemValue must be null if the element does not have an itemprop attribute');
-test(function () {
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('meta',{content:'test'}); testEl.itemValue = 'test2'; }, 'meta' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('audio',{content:'test'}); testEl.itemValue = 'test2'; }, 'audio' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('embed',{content:'test'}); testEl.itemValue = 'test2'; }, 'embed' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('iframe',{content:'test'}); testEl.itemValue = 'test2'; }, 'iframe' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('img',{content:'test'}); testEl.itemValue = 'test2'; }, 'img' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('source',{content:'test'}); testEl.itemValue = 'test2'; }, 'source' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('track',{content:'test'}); testEl.itemValue = 'test2'; }, 'track' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('video',{content:'test'}); testEl.itemValue = 'test2'; }, 'video' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('a',{href:'test'}); testEl.itemValue = 'test2'; }, 'a' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('area',{href:'test'}); testEl.itemValue = 'test2'; }, 'area' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('link',{href:'test'}); testEl.itemValue = 'test2'; }, 'link' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('object',{data:'test'}); testEl.itemValue = 'test2'; }, 'object' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('time',{}); testEl.itemValue = 'test2'; }, 'time without datetime' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('time',{datetime:'test'}); testEl.itemValue = 'test2'; }, 'time with datetime' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('div',{},'test'); testEl.itemValue = 'test2'; }, 'otherwise' );
- assert_throws( 'INVALID_ACCESS_ERR', function () { var testEl = makeEl('madeuponthespot',{},'test'); testEl.itemValue = 'test2'; }, 'unknown element' );
-}, 'writing to itemValue must throw an INVALID_ACCESS_ERR error if the element does not have an itemprop attribute');
-test(function () {
- var testEl;
- testEl = makeEl('meta',{itemscope:'itemscope',itemprop:'foo',content:'test'});
- assert_equals( testEl.itemValue, testEl, 'meta' );
- testEl = makeEl('audio',{itemscope:'itemscope',itemprop:'foo',src:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'audio' );
- testEl = makeEl('embed',{itemscope:'itemscope',itemprop:'foo',src:'test'});
- assert_equals( testEl.itemValue, testEl, 'embed' );
- testEl = makeEl('iframe',{itemscope:'itemscope',itemprop:'foo',src:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'iframe' );
- testEl = makeEl('img',{itemscope:'itemscope',itemprop:'foo',src:'test'});
- assert_equals( testEl.itemValue, testEl, 'img' );
- testEl = makeEl('source',{itemscope:'itemscope',itemprop:'foo',src:'test'});
- assert_equals( testEl.itemValue, testEl, 'source' );
- testEl = makeEl('track',{itemscope:'itemscope',itemprop:'foo',src:'test'});
- assert_equals( testEl.itemValue, testEl, 'track' );
- testEl = makeEl('video',{itemscope:'itemscope',itemprop:'foo',src:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'video' );
- testEl = makeEl('a',{itemscope:'itemscope',itemprop:'foo',href:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'a' );
- testEl = makeEl('area',{itemscope:'itemscope',itemprop:'foo',href:'test'});
- assert_equals( testEl.itemValue, testEl, 'area' );
- testEl = makeEl('link',{itemscope:'itemscope',itemprop:'foo',href:'test'});
- assert_equals( testEl.itemValue, testEl, 'link' );
- testEl = makeEl('object',{itemscope:'itemscope',itemprop:'foo',data:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'object' );
- testEl = makeEl('time',{itemscope:'itemscope',itemprop:'foo'},'fail');
- assert_equals( testEl.itemValue, testEl, 'time without datetime' );
- testEl = makeEl('time',{itemscope:'itemscope',itemprop:'foo',datetime:'test'},'fail');
- assert_equals( testEl.itemValue, testEl, 'time with datetime' );
- testEl = makeEl('div',{itemscope:'itemscope',itemprop:'foo'},'test');
- assert_equals( testEl.itemValue, testEl, 'otherwise' );
- testEl = makeEl('madeuponthespot',{itemscope:'itemscope',itemprop:'foo'},'test');
- assert_equals( testEl.itemValue, testEl, 'unknown element' );
- testEl = makeEl('madeuponthespot',{itemscope:'itemscope',itemprop:'foo',content:'test',src:'test',href:'test',data:'test',datetime:'test',value:'test'},'test');
- assert_equals( testEl.itemValue, testEl, 'unknown element with known attributes' );
- testEl = makeEl('input',{itemscope:'itemscope',itemprop:'foo',value:'test'},'test');
- assert_equals( testEl.itemValue, testEl, 'input' );
-}, 'itemValue must return the element if the element has an itemscope attribute');
-test(function () {
- var testEl = makeEl('meta',{itemprop:'foo',content:'test'});
- assert_equals( testEl.itemValue, 'test', 'reading' );
- testEl.content = 'retest';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = 'bar';
- assert_equals( testEl.content, 'bar', 'writing (checking content)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
-}, 'itemValue must reflect the content attribute on meta elements');
-test(function () {
- var testEl = makeEl('audio',{itemprop:'foo',src:urls.base},'contained text');
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, 'contained text', 'writing (checking textContent)' );
- assert_equals( makeEl('audio',{itemprop:'foo'},'contained text').itemValue, '', 'reading with missing attribute' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on audio elements');
-test(function () {
- var testEl = makeEl('embed',{itemprop:'foo',src:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on embed elements');
-test(function () {
- var testEl = makeEl('iframe',{itemprop:'foo',src:urls.base},'contained text');
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, 'contained text', 'writing (checking textContent)' );
- assert_equals( makeEl('iframe',{itemprop:'foo'},'contained text').itemValue, '', 'reading with missing attribute' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on iframe elements');
-test(function () {
- var testEl = makeEl('img',{itemprop:'foo',src:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on img elements');
-test(function () {
- var testEl = makeEl('source',{itemprop:'foo',src:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on source elements');
-test(function () {
- var testEl = makeEl('track',{itemprop:'foo',src:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on track elements');
-test(function () {
- var testEl = makeEl('video',{itemprop:'foo',src:urls.base},'contained text');
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.src = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.src, urls.www1, 'writing (checking src)' );
- assert_equals( testEl.textContent, 'contained text', 'writing (checking textContent)' );
- assert_equals( makeEl('video',{itemprop:'foo'},'contained text').itemValue, '', 'reading with missing attribute' );
- testEl.src = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on video elements');
-test(function () {
- var testEl = makeEl('a',{itemprop:'foo',href:urls.base},'contained text');
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.href = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.href, urls.www1, 'writing (checking href)' );
- assert_equals( testEl.textContent, 'contained text', 'writing (checking textContent)' );
- assert_equals( makeEl('a',{itemprop:'foo'},'contained text').itemValue, '', 'reading with missing attribute' );
- testEl.href = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on anchor elements');
-test(function () {
- var testEl = makeEl('area',{itemprop:'foo',href:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.href = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.href, urls.www1, 'writing (checking href)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.href = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on area elements');
-test(function () {
- var testEl = makeEl('link',{itemprop:'foo',href:urls.base});
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.href = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.href, urls.www1, 'writing (checking href)' );
- assert_equals( testEl.textContent, '', 'writing (checking textContent)' );
- testEl.href = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on link elements');
-test(function () {
- var testEl = makeEl('object',{itemprop:'foo',data:urls.base},'contained text');
- assert_equals( testEl.itemValue, urls.base, 'reading' );
- testEl.data = urls.www;
- assert_equals( testEl.itemValue, urls.www, 'reading after change' );
- testEl.itemValue = urls.www1;
- assert_equals( testEl.data, urls.www1, 'writing (checking data)' );
- assert_equals( testEl.textContent, 'contained text', 'writing (checking textContent)' );
- assert_equals( makeEl('object',{itemprop:'foo'},'contained text').itemValue, '', 'reading with missing attribute' );
- testEl.data = 'bar';
- assert_equals( testEl.itemValue, location.href.replace(/\/[^\/]*$/,'/bar'), 'resolving URLs' );
-}, 'itemValue must reflect the src attribute on object elements');
-test(function () {
- var testEl = makeEl('time',{itemprop:'foo'},'te <span itemprop="bar" itemscope>st</span> ing');
- assert_equals( testEl.itemValue, 'te st ing', 'reading' );
- testEl.innerHTML = 'retest';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = '2001-02-03T04:05:06Z';
- assert_equals( testEl.dateTime, '2001-02-03T04:05:06Z', 'writing (checking dateTime)' );
- assert_equals( testEl.textContent, 'retest', 'writing (checking textContent)' );
- assert_equals( testEl.itemValue, '2001-02-03T04:05:06Z', 'writing (checking itemValue)' );
-}, 'itemValue must reflect the dateTime attribute of time elements with no datetime attribute');
-test(function () {
- var testEl = makeEl('time',{itemprop:'foo',datetime:'test'},'te <span itemprop="bar" itemscope>st</span> ing');
- assert_equals( testEl.itemValue, 'test', 'reading' );
- testEl.dateTime = 'retest';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = '2001-02-03T04:05:06Z';
- assert_equals( testEl.dateTime, '2001-02-03T04:05:06Z', 'writing (checking dateTime)' );
- assert_equals( testEl.textContent, 'te st ing', 'writing (checking textContent)' );
-}, 'itemValue must reflect the datetime attribute of time elements with a datetime attribute');
-test(function () {
- var testEl = makeEl('div',{itemprop:'foo'},'te <span itemprop="bar" itemscope>st</span> ing');
- assert_equals( testEl.itemValue, 'te st ing', 'reading' );
- testEl.innerHTML = 're<strong>te</strong>st';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = 'test';
- assert_equals( testEl.textContent, 'test', 'writing' );
-}, 'itemValue must reflect the textContent of other elements');
-test(function () {
- var testEl = makeEl('madeuponthespot',{itemprop:'foo'},'te <span itemprop="bar" itemscope>st</span> ing');
- assert_equals( testEl.itemValue, 'te st ing', 'reading' );
- testEl.innerHTML = 're<strong>te</strong>st';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = 'test';
- assert_equals( testEl.textContent, 'test', 'writing' );
-}, 'itemValue must reflect the textContent of unknown elements');
-test(function () {
- var testEl = makeEl('madeuponthespot',{itemprop:'foo',content:'test',src:'test',href:'test',data:'test',datetime:'test',value:'test'},'te <span itemprop="bar" itemscope>st</span> ing');
- assert_equals( testEl.itemValue, 'te st ing', 'reading' );
- testEl.innerHTML = 're<strong>te</strong>st';
- assert_equals( testEl.itemValue, 'retest', 'reading after change' );
- testEl.itemValue = 'test';
- assert_equals( testEl.textContent, 'test', 'writing' );
-}, 'itemValue must reflect the textContent of unknown elements with known attributes');
-test(function () {
- var testEl = makeEl('input',{itemprop:'foo',value:'test'});
- assert_equals( testEl.itemValue, '', 'reading' );
- testEl.value = 'retest';
- assert_equals( testEl.itemValue, '', 'reading after change' );
-}, 'itemValue must not reflect the value of input elements');
-test(function () {
- var testEl, eltypes = [
- makeEl('meta',{itemprop:'foo',content:'test'}),
- makeEl('audio',{itemprop:'foo',src:'test'},'fail'),
- makeEl('embed',{itemprop:'foo',src:'test'}),
- makeEl('iframe',{itemprop:'foo',src:'test'},'fail'),
- makeEl('img',{itemprop:'foo',src:'test'}),
- makeEl('source',{itemprop:'foo',src:'test'}),
- makeEl('track',{itemprop:'foo',src:'test'}),
- makeEl('video',{itemprop:'foo',src:'test'},'fail'),
- makeEl('a',{itemprop:'foo',href:'test'},'fail'),
- makeEl('area',{itemprop:'foo',href:'test'}),
- makeEl('link',{itemprop:'foo',href:'test'}),
- makeEl('object',{itemprop:'foo',data:'test'},'fail'),
- makeEl('time',{itemprop:'foo'},'fail'),
- makeEl('time',{itemprop:'foo',datetime:'test'},'fail'),
- makeEl('div',{itemprop:'foo'},'test'),
- makeEl('madeuponthespot',{itemprop:'foo'},'test'),
- makeEl('madeuponthespot',{itemprop:'foo',content:'test',src:'test',href:'test',data:'test',datetime:'test',value:'test'},'test'),
- makeEl('input',{itemprop:'foo',value:'test'},'test')
- ], beforeValues, i;
- for( i = 0; i < eltypes.length; i++ ) {
- testEl = eltypes[i];
- beforeValues = testEl.itemValue;
- testEl.itemScope = true;
- assert_equals( testEl.itemValue, testEl, 'itemscope enabled on '+testEl.tagName+' index '+i );
- testEl.itemScope = false;
- assert_equals( testEl.itemValue, beforeValues, 'itemscope disabled on '+testEl.tagName+' index '+i );
- testEl.itemScope = true;
- testEl.removeAttribute('itemscope');
- assert_equals( testEl.itemValue, beforeValues, 'itemscope attribute removed on '+testEl.tagName+' index '+i );
- }
-}, 'dynamic changes of itemscope should change the value exposed through itemValue');
-
-test(function () {
- var testEl, eltypes = [
- makeEl('meta',{itemprop:'foo',content:'test'}),
- makeEl('audio',{itemprop:'foo',src:'test'},'fail'),
- makeEl('embed',{itemprop:'foo',src:'test'}),
- makeEl('iframe',{itemprop:'foo',src:'test'},'fail'),
- makeEl('img',{itemprop:'foo',src:'test'}),
- makeEl('source',{itemprop:'foo',src:'test'}),
- makeEl('track',{itemprop:'foo',src:'test'}),
- makeEl('video',{itemprop:'foo',src:'test'},'fail'),
- makeEl('a',{itemprop:'foo',href:'test'},'fail'),
- makeEl('area',{itemprop:'foo',href:'test'}),
- makeEl('link',{itemprop:'foo',href:'test'}),
- makeEl('object',{itemprop:'foo',data:'test'},'fail'),
- makeEl('time',{itemprop:'foo'},'fail'),
- makeEl('time',{itemprop:'foo',datetime:'test'},'fail'),
- makeEl('div',{itemprop:'foo'},'test'),
- makeEl('madeuponthespot',{itemprop:'foo'},'test'),
- makeEl('madeuponthespot',{itemprop:'foo',content:'test',src:'test',href:'test',data:'test',datetime:'test',value:'test'},'test'),
- makeEl('input',{itemprop:'foo',value:'test'},'test')
- ], beforeValues, i;
- for( i = 0; i < eltypes.length; i++ ) {
- testEl = eltypes[i];
- beforeValues = testEl.itemValue;
- testEl.itemProp.remove('foo');
- assert_equals( testEl.itemValue, beforeValues, 'itemprop tokens removed on '+testEl.tagName+' index '+i );
- testEl.removeAttribute('itemprop');
- assert_equals( testEl.itemValue, null, 'itemprop attribute removed on '+testEl.tagName+' index '+i );
- testEl.itemProp.toggle('foo');
- assert_equals( testEl.itemValue, beforeValues, 'itemprop tokens added on '+testEl.tagName+' index '+i );
- }
-}, 'dynamic changes of itemprop should change the value exposed through itemValue');
-
-/* properties */
-test(function () {
- assert_equals( typeof makeEl('div',{}).properties, 'object' );
-}, 'the properties property must be an object');
-test(function () {
- var testEl = makeEl('div',{});
- assert_true( testEl.properties instanceof HTMLPropertiesCollection, 'instanceof HTMLPropertiesCollection' );
- assert_true( testEl.properties instanceof HTMLCollection, 'instanceof HTMLCollection' );
- HTMLPropertiesCollection.prototype.customProperty = true;
- HTMLCollection.prototype.anotherCustomProperty = true;
- assert_true( testEl.properties.customProperty, 'inheritance from HTMLPropertiesCollection' );
- assert_true( testEl.properties.anotherCustomProperty, 'inheritance from HTMLCollection' );
- HTMLPropertiesCollection.prototype.anotherCustomProperty = false;
- assert_false( testEl.properties.anotherCustomProperty, 'shadowing by HTMLPropertiesCollection' );
-}, 'the properties property must implement HTMLPropertiesCollection and HTMLCollection');
-test(function () {
- var failed = false, elem = makeEl('div',{itemscope:'itemscope'}), realList = elem.properties;
- try {
- elem.properties = '';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.properties,realList);
- assert_false(failed,'an error was thrown');
-}, 'the properties property must be read-only');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.properties, testEl.properties );
-}, 'the properties property must always reference the same object');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- assert_equals( testEl.properties.length, 0, 'length' );
- assert_true( !testEl.properties.item(0), 'item(0)' );
- assert_true( !testEl.properties[0], '[0]' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'namedItem' );
- assert_true( !testEl.properties['foo'], '[namedItem]' );
- assert_equals( testEl.properties.namedItem('foo').getValues().length, 0, 'namedItem' );
- assert_equals( testEl.properties.names.length, 0, 'names' );
-}, 'the properties collection must be empty if the element does not have an itemscope property');
-test(function() {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- assert_throws( new TypeError(), function() { testEl.properties('foo'); } );
- assert_throws( new TypeError(), function() { testEl.properties(0); } );
-}, 'the properties collection must not support legacycaller');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- testEl.itemScope = true;
- assert_equals( testEl.properties.length, 1, 'length' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'item(0)' );
- assert_equals( testEl.properties[0], testEl.firstChild, '[0]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'namedItem' );
- assert_equals( testEl.properties['foo'].length, 1, '[namedItem]' );
- assert_equals( testEl.properties.namedItem('foo').getValues().length, 1, 'namedItem' );
- assert_equals( testEl.properties.names.length, 1, 'names' );
-}, 'the properties collection must become populated if the element is given an itemscope property');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo">bar</div>');
- testEl.itemScope = false;
- assert_equals( testEl.properties.length, 0, 'length' );
- assert_true( !testEl.properties.item(0), 'item(0)' );
- assert_true( !testEl.properties[0], '[0]' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'namedItem' );
- assert_true( !testEl.properties['foo'], '[namedItem]' );
- assert_equals( testEl.properties.namedItem('foo').getValues().length, 0, 'namedItem' );
- assert_equals( testEl.properties.names.length, 0, 'names' );
-}, 'the properties collection must become empty if the element\'s itemscope property is removed');
-//properties.item and properties.length (part 1)
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.length, 5 );
-}, 'properties.length must be the total number of properties');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.item(0), testEl.childNodes[0], 'item(0)' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1], 'item(1)' );
- assert_equals( testEl.properties.item(2), testEl.childNodes[1].childNodes[0], 'item(2)' );
- assert_equals( testEl.properties.item(3), testEl.childNodes[2], 'item(3)' );
-}, 'properties.item must give each property in tree order');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- testEl.properties.something = "another";
- var names = Object.getOwnPropertyNames(testEl.properties);
- assert_array_equals( names, ["0", "1", "2", "3", "foo", "bar", "baz", "qux", "something"] );
-}, 'properties.item must have the right property names on it when enumerated');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.item(4), null, 'positive index' );
- assert_equals( testEl.properties.item(-1), null, 'negative index' );
-}, 'properties.item must give null for out of range index');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties[0], testEl.childNodes[0], '[0]' );
- assert_equals( testEl.properties[1], testEl.childNodes[1], '[1]' );
- assert_equals( testEl.properties[2], testEl.childNodes[1].childNodes[0], '[2]' );
- assert_equals( testEl.properties[3], testEl.childNodes[2], '[3]' );
-}, 'properties[index] must give each property in tree order');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties[4], window.undefined, 'positive index' );
- assert_equals( testEl.properties[-1], window.undefined, 'negative index' );
-}, 'properties[index] must give undefined for out of range index');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemscope itemprop="foo"><div itemprop="bar"></div></div><div><div itemprop="baz"></div></div>');
- assert_equals( testEl.properties.length, 2, 'length' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0)' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0]' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1].firstChild, 'properties.item(1)' );
- assert_equals( testEl.properties[1], testEl.childNodes[1].firstChild, 'properties[1]' );
-}, 'properties.item and length must ignore properties of nested items');
-test(function () {
- //note, itemref ordering is reversed compared with the next test to catch failed sorting algorithms
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id2 id1"><div itemprop="bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- document.body.appendChild(parEl);
- var propLength = testEl.properties.length;
- var item0 = testEl.properties.item(0);
- var square0 = testEl.properties[0];
- var item1 = testEl.properties.item(1);
- var square1 = testEl.properties[1];
- var item2 = testEl.properties.item(2);
- var square2 = testEl.properties[2];
- var item3 = testEl.properties.item(3);
- var square3 = testEl.properties[3];
- document.body.removeChild(parEl);
- assert_equals( propLength, 4, 'length' );
- assert_equals( item0, parEl.firstChild, 'properties.item(0)' );
- assert_equals( square0, parEl.firstChild, 'properties[0]' );
- assert_equals( item1, testEl.firstChild, 'properties.item(1)' );
- assert_equals( square1, testEl.firstChild, 'properties[1]' );
- assert_equals( item2, parEl.childNodes[2], 'properties.item(2)' );
- assert_equals( square2, parEl.childNodes[2], 'properties[2]' );
- assert_equals( item3, parEl.childNodes[2].firstChild, 'properties.item(3)' );
- assert_equals( square3, parEl.childNodes[2].firstChild, 'properties[3]' );
-}, 'properties.item and length must see items added with itemref when attached to the document\'s DOM');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id1 id2"><div itemprop="bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 4, 'length' );
- assert_equals( testEl.properties.item(0), parEl.firstChild, 'properties.item(0)' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0]' );
- assert_equals( testEl.properties.item(1), testEl.firstChild, 'properties.item(1)' );
- assert_equals( testEl.properties[1], testEl.firstChild, 'properties[1]' );
- assert_equals( testEl.properties.item(2), parEl.childNodes[2], 'properties.item(2)' );
- assert_equals( testEl.properties[2], parEl.childNodes[2], 'properties[2]' );
- assert_equals( testEl.properties.item(3), parEl.childNodes[2].firstChild, 'properties.item(3)' );
- assert_equals( testEl.properties[3], parEl.childNodes[2].firstChild, 'properties[3]' );
-}, 'properties.item and length must see items added with itemref');
-test(function () {
- var parEl = makeEl('div',{},'<div itemscope itemref="id1"></div><div itemprop="foo" id="id1"><div itemprop="bar"></div></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[0];
- assert_equals( testEl.properties.length, 2, 'length' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1)' );
- document.body.appendChild(parEl)
- var length = testEl.properties.length;
- var item0 = testEl.properties.item(0);
- var item1 = testEl.properties.item(0);
- document.body.removeChild(parEl)
- assert_equals( testEl.properties.length, 2, 'length (attached to document)' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0) (attached to document)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1) (attached to document)' );
-}, 'itemref must reference the first element with a given ID');
-test(function () {
- var parEl = makeEl('div',{},'<div itemscope itemref="id1 id1"></div><div itemprop="foo" id="id1"><div itemprop="bar"></div></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[0];
- assert_equals( testEl.properties.length, 2, 'length' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1)' );
- document.body.appendChild(parEl)
- var length = testEl.properties.length;
- var item0 = testEl.properties.item(0);
- var item1 = testEl.properties.item(0);
- document.body.removeChild(parEl)
- assert_equals( testEl.properties.length, 2, 'length (attached to document)' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0) (attached to document)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1) (attached to document)' );
-}, 'itemref must ignore duplicated IDs');
-test(function () {
- var parEl = makeEl('div',{},'<div itemscope itemref="id0 id1"></div><div itemprop="foo" id="id1"><div itemprop="bar"></div></div>');
- var testEl = parEl.childNodes[0];
- assert_equals( testEl.properties.length, 2, 'length' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1)' );
- document.body.appendChild(parEl)
- var length = testEl.properties.length;
- var item0 = testEl.properties.item(0);
- var item1 = testEl.properties.item(0);
- document.body.removeChild(parEl)
- assert_equals( testEl.properties.length, 2, 'length (attached to document)' );
- assert_equals( testEl.properties.item(0), parEl.childNodes[1], 'properties.item(0) (attached to document)' );
- assert_equals( testEl.properties.item(1), parEl.childNodes[1].firstChild, 'properties.item(1) (attached to document)' );
-}, 'itemref must ignore non-existent IDs');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1'});
- var dummyEl = makeEl('div',{id:'id1',itemprop:'foo'});
- assert_equals( testEl.properties.length, 0 );
-}, 'itemref in a dislocated tree must not reference elements from another dislocated tree');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1'});
- var dummyEl = makeEl('div',{id:'id1',itemprop:'foo'});
- document.body.appendChild(dummyEl);
- var tmp = testEl.properties.length;
- document.body.removeChild(dummyEl);
- assert_equals( tmp, 0 );
-}, 'itemref in a dislocated tree must not reference elements from the main document');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1'});
- var dummyEl = makeEl('div',{id:'id1',itemprop:'foo'});
- document.body.appendChild(testEl);
- var tmp = testEl.properties.length;
- document.body.removeChild(testEl);
- assert_equals( tmp, 0 );
-}, 'itemref in the main document must not reference elements from a dislocated tree');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_equals( testEl.properties.length, 1, 'length (before test)' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0) (before test)' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] (before test)' );
- testEl.appendChild(makeEl('div',{itemprop:'bar'}));
- assert_equals( testEl.properties.length, 2, 'length after adding a child' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1], 'properties.item(1) after adding a child' );
- assert_equals( testEl.properties[1], testEl.childNodes[1], 'properties[1] after adding a child' );
- testEl.lastChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( testEl.properties.length, 3, 'length after adding a child with duplicated name' );
- assert_equals( testEl.properties.item(2), testEl.childNodes[1].firstChild, 'properties.item(2) after adding a child with duplicated name' );
- assert_equals( testEl.properties[2], testEl.childNodes[1].firstChild, 'properties[2] after adding a child with duplicated name' );
- testEl.lastChild.removeChild(testEl.lastChild.firstChild);
- assert_equals( testEl.properties.length, 2, 'length after removing a child' );
- assert_true( !testEl.properties.item(2), 'properties.item(1) after removing a child' );
- assert_true( !testEl.properties[2], 'properties[1] after removing a child' );
-}, 'properties.item and length must update when adding property elements');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"></div>');
- assert_equals( testEl.properties.length, 2, 'length (before test)' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0) (before test)' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] (before test)' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1], 'properties.item(1) (before test)' );
- assert_equals( testEl.properties[1], testEl.childNodes[1], 'properties[1] (before test)' );
- testEl.appendChild(testEl.firstChild);
- assert_equals( testEl.properties.length, 2, 'length (after test)' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0) (after test)' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] (after test)' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1], 'properties.item(1) (after test)' );
- assert_equals( testEl.properties[1], testEl.childNodes[1], 'properties[1] (after test)' );
-}, 'properties.item must update when re-ordering property elements, but length must not');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div></div>');
- assert_equals( testEl.properties.length, 1, 'length (before test)' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] (before test)' );
- testEl.lastChild.itemProp.toggle('bar');
- assert_equals( testEl.properties.length, 2, 'length (after test 1)' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0) after adding a token' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] after adding a token' );
- assert_equals( testEl.properties.item(1), testEl.childNodes[1], 'properties.item(1) after adding a token' );
- assert_equals( testEl.properties[1], testEl.childNodes[1], 'properties[1] after adding a token' );
- testEl.lastChild.removeAttribute('itemprop');
- assert_equals( testEl.properties.length, 1, 'length after removing an attribute' );
- assert_equals( testEl.properties.item(0), testEl.firstChild, 'properties.item(0) after removing an attribute' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] after removing an attribute' );
- assert_true( !testEl.properties.item(1), 'properties.item(1) after removing an attribute' );
- assert_true( !testEl.properties[1], 'properties[1] after removing an attribute' );
-}, 'properties.item and length must update when changing itemProp of children');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 0, 'length (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( testEl.properties.length, 2, 'length after id is created' );
- assert_equals( testEl.properties.item(0), parEl.firstChild, 'properties.item(0) after id is created' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] after id is created' );
- assert_equals( testEl.properties.item(1), parEl.firstChild.firstChild, 'properties.item(1) after id is created' );
- assert_equals( testEl.properties[1], parEl.firstChild.firstChild, 'properties[1] after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( testEl.properties.length, 0, 'length after removing an attribute' );
- assert_true( !testEl.properties.item(0), 'properties.item(0) after removing an attribute' );
- assert_true( !testEl.properties[0], 'properties[0] after removing an attribute' );
- document.body.appendChild(parEl);
- var beflength = testEl.properties.length;
- parEl.firstChild.id = 'id1';
- var length1 = testEl.properties.length,
- item0 = testEl.properties.item(0),
- prop0 = testEl.properties[0],
- item1 = testEl.properties.item(1),
- prop1 = testEl.properties[1];
- parEl.firstChild.removeAttribute('id');
- var length2 = testEl.properties.length,
- bitem = !testEl.properties.item(0),
- bprop = !testEl.properties[0];
- document.body.removeChild(parEl);
- assert_equals( beflength, 0, 'length (before test) when appended to document' );
- assert_equals( length1, 2, 'length after id is created when appended to document' );
- assert_equals( item0, parEl.firstChild, 'properties.item(0) after id is created when appended to document' );
- assert_equals( prop0, parEl.firstChild, 'properties[0] after id is created when appended to document' );
- assert_equals( item1, parEl.firstChild.firstChild, 'properties.item(1) after id is created when appended to document' );
- assert_equals( prop1, parEl.firstChild.firstChild, 'properties[1] after id is created when appended to document' );
- assert_equals( length2, 0, 'length after removing an attribute when appended to document' );
- assert_true( bitem, 'properties.item(0) after removing an attribute when appended to document' );
- assert_true( bprop, 'properties[0] after removing an attribute when appended to document' );
-}, 'properties.item and length must update when changing id of referenced sibling');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 1, 'length (before test)' );
- assert_equals( testEl.properties.item(0), parEl.lastChild, 'properties.item(0) (before test)' );
- assert_equals( testEl.properties[0], parEl.lastChild, 'properties[0] (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( testEl.properties.length, 2, 'length after id is created' );
- assert_equals( testEl.properties.item(0), parEl.firstChild, 'properties.item(0) after id is created' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] after id is created' );
- assert_equals( testEl.properties.item(1), parEl.firstChild.firstChild, 'properties.item(1) after id is created' );
- assert_equals( testEl.properties[1], parEl.firstChild.firstChild, 'properties[1] after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( testEl.properties.length, 1, 'length after removing an attribute' );
- assert_equals( testEl.properties.item(0), parEl.lastChild, 'properties.item(0) after removing an attribute' );
- assert_equals( testEl.properties[0], parEl.lastChild, 'properties[0] after removing an attribute' );
- document.body.appendChild(parEl);
- var beflength = testEl.properties.length,
- befitem = testEl.properties.item(0),
- befprop = testEl.properties[0];
- parEl.firstChild.id = 'id1';
- var length1 = testEl.properties.length,
- item0 = testEl.properties.item(0),
- prop0 = testEl.properties[0],
- item1 = testEl.properties.item(1),
- prop1 = testEl.properties[1];
- parEl.firstChild.removeAttribute('id');
- var length2 = testEl.properties.length,
- afitem = testEl.properties.item(0),
- afprop = testEl.properties[0];
- document.body.removeChild(parEl);
- assert_equals( beflength, 1, 'length (before test) when appended to document' );
- assert_equals( befitem, parEl.lastChild, 'properties.item(0) (before test)' );
- assert_equals( befprop, parEl.lastChild, 'properties[0] (before test)' );
- assert_equals( length1, 2, 'length after id is created when appended to document' );
- assert_equals( item0, parEl.firstChild, 'properties.item(0) after id is created when appended to document' );
- assert_equals( prop0, parEl.firstChild, 'properties[0] after id is created when appended to document' );
- assert_equals( item1, parEl.firstChild.firstChild, 'properties.item(1) after id is created when appended to document' );
- assert_equals( prop1, parEl.firstChild.firstChild, 'properties[1] after id is created when appended to document' );
- assert_equals( length2, 1, 'length after removing an attribute when appended to document' );
- assert_equals( afitem, parEl.lastChild, 'properties.item(0) after removing an attribute when appended to document' );
- assert_equals( afprop, parEl.lastChild, 'properties[0] after removing an attribute when appended to document' );
-}, 'properties.item and length must update when changing duplicated id of referenced sibling');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 0, 'length (before test)' );
- testEl.itemRef.toggle('id1');
- assert_equals( testEl.properties.length, 1, 'length after itemref is changed' );
- assert_equals( testEl.properties.item(0), parEl.firstChild, 'properties.item(0) after itemref is changed' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] after itemref is changed' );
- testEl.removeAttribute('itemref');
- assert_equals( testEl.properties.length, 0, 'length after itemref is removed' );
- assert_true( !testEl.properties.item(0), 'properties.item(0) itemref is removed' );
- assert_true( !testEl.properties[0], 'properties[0] itemref is removed' );
- document.body.appendChild(parEl);
- var beflength = testEl.properties.length;
- testEl.itemRef.toggle('id1');
- var length1 = testEl.properties.length,
- item0 = testEl.properties.item(0),
- prop0 = testEl.properties[0];
- testEl.removeAttribute('itemref');
- var length2 = testEl.properties.length,
- bitem = !testEl.properties.item(0),
- bprop = !testEl.properties[0];
- document.body.removeChild(parEl);
- assert_equals( beflength, 0, 'length (before test) when appended to document' );
- assert_equals( length1, 1, 'length after itemref is changed when appended to document' );
- assert_equals( item0, parEl.firstChild, 'properties.item(0) after itemref is changed when appended to document' );
- assert_equals( prop0, parEl.firstChild, 'properties[0] after itemref is changed when appended to document' );
- assert_equals( length2, 0, 'length after itemref is removed when appended to document' );
- assert_true( bitem, 'properties.item(0) after itemref is removed when appended to document' );
- assert_true( bprop, 'properties[0] after itemref is removed when appended to document' );
-}, 'properties.item and length must update when changing itemref to point to an element');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"><div></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 0, 'length (before test)' );
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( testEl.properties.length, 1, 'length after a referenced element is added' );
- assert_equals( testEl.properties.item(0), parEl.firstChild.lastChild, 'properties.item(0) after a referenced element is added' );
- assert_equals( testEl.properties[0], parEl.firstChild.lastChild, 'properties[0] after a referenced element is added' );
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- assert_equals( testEl.properties.length, 2, 'length after a referenced itemprop is changed' );
- assert_equals( testEl.properties.item(0), parEl.firstChild.firstChild, 'properties.item(0) after a referenced itemprop is changed' );
- assert_equals( testEl.properties[0], parEl.firstChild.firstChild, 'properties[0] after a referenced itemprop is changed' );
- assert_equals( testEl.properties.item(1), parEl.firstChild.lastChild, 'properties.item(1) after a referenced itemprop is changed' );
- assert_equals( testEl.properties[1], parEl.firstChild.lastChild, 'properties[1] after a referenced itemprop is changed' );
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- assert_equals( testEl.properties.length, 1, 'length after a referenced element is removed' );
- assert_equals( testEl.properties.item(0), parEl.firstChild.firstChild, 'properties.item(0) after a referenced element is removed' );
- assert_equals( testEl.properties[0], parEl.firstChild.firstChild, 'properties[0] after a referenced element is removed' );
- assert_true( !testEl.properties.item(1), 'properties.item(1) after a referenced element is removed' );
- assert_true( !testEl.properties[1], 'properties[1] after a referenced element is removed' );
- parEl.innerHTML = '<div id="id1"><div></div></div><div itemscope itemref="id1"></div>';
- testEl = parEl.childNodes[1];
- document.body.appendChild(parEl);
- var beflength = testEl.properties.length;
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- var length1 = testEl.properties.length,
- item0a = testEl.properties.item(0),
- prop0a = testEl.properties[0],
- targ0a = parEl.firstChild.lastChild;
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- var length2 = testEl.properties.length,
- item0b = testEl.properties.item(0),
- prop0b = testEl.properties[0];
- item1b = testEl.properties.item(1),
- prop1b = testEl.properties[1],
- targ0b = parEl.firstChild.firstChild,
- targ1b = parEl.firstChild.lastChild;
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- var length3 = testEl.properties.length,
- item0c = testEl.properties.item(0),
- prop0c = testEl.properties[0];
- item1c = testEl.properties.item(1),
- prop1c = testEl.properties[1],
- targ0c = parEl.firstChild.firstChild;
- document.body.removeChild(parEl);
- assert_equals( beflength, 0, 'length (before test) when appended to document' );
- assert_equals( length1, 1, 'length after a referenced element is added when appended to document' );
- assert_equals( item0a, targ0a, 'properties.item(0) after a referenced element is added when appended to document' );
- assert_equals( prop0a, targ0a, 'properties[0] after a referenced element is added when appended to document' );
- assert_equals( length2, 2, 'length after a referenced itemprop is changed when appended to document' );
- assert_equals( item0b, targ0b, 'properties.item(0) after a referenced itemprop is changed when appended to document' );
- assert_equals( prop0b, targ0b, 'properties[0] after a referenced itemprop is changed when appended to document' );
- assert_equals( item1b, targ1b, 'properties.item(1) after a referenced itemprop is changed when appended to document' );
- assert_equals( prop1b, targ1b, 'properties[1] after a referenced itemprop is changed when appended to document' );
- assert_equals( length3, 1, 'length after a referenced element is removed when appended to document' );
- assert_equals( item0c, targ0c, 'properties.item(0) after a referenced element is removed when appended to document' );
- assert_equals( prop0c, targ0c, 'properties[0] after a referenced element is removed when appended to document' );
- assert_true( !item1c, 'properties.item(1) after a referenced element is removed when appended to document' );
- assert_true( !prop1c, 'properties[1] after a referenced element is removed when appended to document' );
-}, 'properties.item and length must update when changing children of elements referenced through itemref');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope itemref="id1"><div itemprop="foo"></div></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 2, 'length (before test)' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] (before test)' );
- assert_equals( testEl.properties[1], testEl.firstChild, 'properties[1] (before test)' );
- document.body.appendChild(testEl);
- var step1length = testEl.properties.length;
- var step1prop0 = testEl.properties[0];
- var step1prop1 = testEl.properties[1];
- parEl.appendChild(testEl);
- assert_equals( step1length, 1, 'length after changing parent' );
- assert_equals( step1prop0, testEl.firstChild, 'properties[0] after changing parent' );
- assert_true( !step1prop1, 'properties[1] after changing parent' );
- assert_equals( testEl.properties.length, 2, 'length after re-parenting' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] after re-parenting' );
- assert_equals( testEl.properties[1], testEl.firstChild, 'properties[1] after re-parenting' );
- document.body.appendChild(parEl);
- var step2length = testEl.properties.length;
- var step2prop0 = testEl.properties[0];
- var step2prop1 = testEl.properties[1];
- document.createElement('div').appendChild(testEl);
- var step3length = testEl.properties.length;
- var step3prop0 = testEl.properties[0];
- var step3prop1 = testEl.properties[1];
- parEl.appendChild(testEl);
- var step4length = testEl.properties.length;
- var step4prop0 = testEl.properties[0];
- var step4prop1 = testEl.properties[1];
- document.body.removeChild(parEl);
- assert_equals( step2length, 2, 'length (before test) when appended to document' );
- assert_equals( step2prop0, parEl.firstChild, 'properties[0] (before test) when appended to document' );
- assert_equals( step2prop1, testEl.firstChild, 'properties[1] (before test) when appended to document' );
- assert_equals( step3length, 1, 'length after changing parent when appended to document' );
- assert_equals( step3prop0, testEl.firstChild, 'properties[0] after changing parent when appended to document' );
- assert_true( !step3prop1, 'properties[1] after changing parent when appended to document' );
- assert_equals( step4length, 2, 'length after re-parenting when appended to document' );
- assert_equals( step4prop0, parEl.firstChild, 'properties[0] after re-parenting when appended to document' );
- assert_equals( step4prop1, testEl.firstChild, 'properties[1] after re-parenting when appended to document' );
-}, 'properties.item and length must update when appending elements with itemref to different parents');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div><div itemprop="foo"></div></div>');
- assert_equals( testEl.properties.length, 1, 'length (before test)' );
- assert_equals( testEl.properties.item(0), testEl.firstChild.firstChild, 'properties.item(0) (before test)' );
- assert_equals( testEl.properties[0], testEl.firstChild.firstChild, 'properties[0] (before test)' );
- testEl.firstChild.itemScope = true;
- assert_equals( testEl.properties.length, 0, 'length after setting itemscope' );
- assert_true( !testEl.properties.item(0), 'properties.item(0) after setting itemscope' );
- assert_true( !testEl.properties[0], 'properties[0] after setting itemscope' );
- testEl.firstChild.removeAttribute('itemscope');
- assert_equals( testEl.properties.length, 1, 'length after removing itemscope attribute' );
- assert_equals( testEl.properties.item(0), testEl.firstChild.firstChild, 'properties.item(0) after removing itemscope attribute' );
- assert_equals( testEl.properties[0], testEl.firstChild.firstChild, 'properties[0] after removing itemscope attribute' );
-}, 'properties.item and length must update when changing itemscope of children');
-//properties.namedItem
-test(function () {
- assert_equals( typeof makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>').properties.namedItem('foo'), 'object' );
-}, 'the namedItem must return an object');
-test(function () {
- assert_equals( typeof makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>').properties['foo'], 'object' );
-}, '.properties[] must also act as .properties.namedItem() when there are matching properties');
-test(function () {
- assert_equals( typeof makeEl('div',{itemscope:'itemscope'},'').properties.namedItem('foo'), 'object' );
-}, 'the namedItem must return an object even if there are no matching properties');
-test(function () {
- assert_equals( typeof makeEl('div',{itemscope:'itemscope'},'').properties['foo'], 'undefined' );
-}, '.properties[] must return undefined when no property exists with the given name');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- var PNL = testEl.properties.namedItem('foo');
- assert_equals( PNL, testEl.properties.namedItem('foo'), 'before modification' );
- testEl.innerHTML = '';
- assert_equals( PNL, testEl.properties.namedItem('foo'), 'after modification' );
-}, 'namedItem must return the same object for the same property name');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_false( testEl.properties.namedItem('foo') == testEl.properties.namedItem('bar') );
-}, 'namedItem must return a different object for a different property name');
-test(function () {
- assert_false( makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>').properties.namedItem('foo') == makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>').properties.namedItem('foo') );
-}, 'namedItem must return a different object for different elements with the same property name');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_equals( testEl.properties.namedItem('foo'), testEl.properties['foo'] );
-}, 'namedItem() and properties[] must return the same object for the same property name');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_true( testEl.properties.namedItem('foo') instanceof PropertyNodeList, 'instanceof PropertyNodeList' );
- assert_true( testEl.properties.namedItem('foo') instanceof NodeList, 'instanceof NodeList' );
- PropertyNodeList.prototype.customProperty = true;
- NodeList.prototype.anotherCustomProperty = true;
- assert_true( testEl.properties.namedItem('foo').customProperty, 'inheritance from PropertyNodeList' );
- assert_true( testEl.properties.namedItem('foo').anotherCustomProperty, 'inheritance from NodeList' );
- PropertyNodeList.prototype.anotherCustomProperty = false;
- assert_false( testEl.properties.anotherCustomProperty, 'shadowing by PropertyNodeList' );
-}, 'the properties property must implement PropertyNodeList and NodeList');
-test(function () {
- var failed = false, elem = makeEl('div',{itemscope:'itemscope'});
- try {
- elem.properties.namedItem = 'pass';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.properties.namedItem,'pass');
- assert_false(failed,'an error was thrown');
-}, 'the namedItem property must be read/write');
-test(function () {
- //also tests for sort ordering, which is fairly simple in this case
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="baz qux"></div></div><div itemprop="foo"></div>');
- assert_equals( testEl.properties.namedItem('foo').length, 2, 'length of foo' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'length of bar' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'length of baz' );
- assert_equals( testEl.properties.namedItem('qux').length, 1, 'length of qux' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'first foo' );
- assert_equals( testEl.properties.namedItem('foo')[1], testEl.lastChild, 'last foo' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.childNodes[1], 'bar' );
- assert_equals( testEl.properties.namedItem('baz')[0], testEl.childNodes[1].firstChild, 'baz' );
- assert_equals( testEl.properties.namedItem('qux')[0], testEl.childNodes[1].firstChild, 'qux' );
-}, 'PropertyNodeList must contain the correct properties');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="FOO"></div><div itemprop="foo FOO foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.namedItem('foo').length, 2, 'length of foo' );
- assert_equals( testEl.properties.namedItem('FOO').length, 2, 'length of FOO' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'first foo' );
- assert_equals( testEl.properties.namedItem('foo')[1], testEl.childNodes[1].lastChild, 'last foo' );
- assert_equals( testEl.properties.namedItem('FOO')[0], testEl.childNodes[1].firstChild, 'first FOO' );
- assert_equals( testEl.properties.namedItem('FOO')[1], testEl.childNodes[1].lastChild, 'last FOO' );
-}, 'PropertyNodeList must be case sensitive');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo bar"></div>');
- assert_equals( testEl.properties.namedItem('foo bar').length, 0, 'space' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo\tbar"></div>');
- assert_equals( testEl.properties.namedItem('foo\tbar').length, 0, 'tab' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo\rbar"></div>');
- assert_equals( testEl.properties.namedItem('foo\rbar').length, 0, 'carriage return' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo\nbar"></div>');
- assert_equals( testEl.properties.namedItem('foo\nbar').length, 0, 'newline' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo\fbar"></div>');
- assert_equals( testEl.properties.namedItem('foo\fbar').length, 0, 'formfeed' );
-}, 'namedItem must not match property names containing whitespace');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="|§!&quot;#¤%&/()=?`\\@£${[]}´€^¨~\'*,;.:-_&lt;&gt;帿ŨÆ"></div>');
- assert_equals( testEl.properties.namedItem('|§!"#¤%&/()=?`\\@£${[]}´€^¨~\'*,;.:-_<>帿ŨÆ').length, 1 );
-}, 'namedItem must match property names containing other special characters');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'});
- var PNL = testEl.properties.namedItem('foo');
- testEl.innerHTML = '<div itemprop="foo"></div>';
- assert_equals( PNL.length, 1 );
- assert_equals( PNL[0], testEl.firstChild );
-}, 'PropertyNodeList must be live');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemscope><div itemprop="foo"></div><div itemprop="bar"></div></div>');
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'length of foo' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'item 0' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'length of bar' );
-}, 'PropertyNodeList must ignore properties of nested items');
-test(function () {
-
- //note, itemref ordering is reversed compared with the next test to catch failed sorting algorithms - not that that should make much difference here
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id2 id1"><div itemprop="foo bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- document.body.appendChild(parEl);
- var fooLength = testEl.properties.namedItem('foo').length;
- var barLength = testEl.properties.namedItem('bar').length;
- var bazLength = testEl.properties.namedItem('baz').length;
- var quxLength = testEl.properties.namedItem('qux').length;
- var foo0 = testEl.properties.namedItem('foo')[0];
- var foo1 = testEl.properties.namedItem('foo')[1];
- var bar0 = testEl.properties.namedItem('bar')[0];
- var baz0 = testEl.properties.namedItem('baz')[0];
- var qux0 = testEl.properties.namedItem('qux')[0];
- document.body.removeChild(parEl);
- assert_equals( fooLength, 2, 'foo length' );
- assert_equals( barLength, 1, 'bar length' );
- assert_equals( bazLength, 1, 'baz length' );
- assert_equals( quxLength, 1, 'qux length' );
- assert_equals( foo0, parEl.firstChild, 'foo 0' );
- assert_equals( foo1, testEl.firstChild, 'foo 1' );
- assert_equals( bar0, testEl.firstChild, 'bar 0' );
- assert_equals( baz0, parEl.lastChild, 'baz 0' );
- assert_equals( qux0, parEl.lastChild.firstChild, 'qux 0' );
-}, 'PropertyNodeList must see items added with itemref when attached to the document\'s DOM');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id1 id2"><div itemprop="foo bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.namedItem('foo').length, 2, 'foo length' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar length' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'baz length' );
- assert_equals( testEl.properties.namedItem('qux').length, 1, 'qux length' );
- assert_equals( testEl.properties.namedItem('foo')[0], parEl.firstChild, 'foo 0' );
- assert_equals( testEl.properties.namedItem('foo')[1], testEl.firstChild, 'foo 1' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild, 'bar 0' );
- assert_equals( testEl.properties.namedItem('baz')[0], parEl.lastChild, 'baz 0' );
- assert_equals( testEl.properties.namedItem('qux')[0], parEl.lastChild.firstChild, 'qux 0' );
-}, 'PropertyNodeList must see items added with itemref');
-test(function () {
- //this one also tests the live object just in case - further ones will not always do this as its live status will already have been well established
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- var PNL = testEl.properties.namedItem('foo');
- testEl.removeAttribute('itemscope');
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'removing attribute' );
- assert_equals( PNL.length, 0, 'removing attribute (live)' );
- assert_true( !testEl.properties['foo'], 'removing attribute []' );
- testEl.itemScope = true;
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'setting itemScope' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'property 0 after setting itemScope' );
- assert_equals( PNL.length, 1, 'setting itemScope (live)' );
- assert_equals( PNL[0], testEl.firstChild, 'property 0 after setting itemScope (live)' );
- assert_false( !testEl.properties['foo'], 'setting itemScope []' );
-}, 'PropertyNodeList must update when adding itemscope on the root');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'foo length (before test)' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'foo 0 (before test)' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'bar length (before test)' );
- testEl.appendChild(makeEl('div',{itemprop:'bar'}));
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'foo length after adding a child' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'foo 0 after adding a child' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar length after adding a child' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'bar 0 after adding a child' );
- testEl.lastChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( testEl.properties.namedItem('foo').length, 2, 'foo length after adding a child with duplicated name' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'foo 0 after adding a child with duplicated name' );
- assert_equals( testEl.properties.namedItem('foo')[1], testEl.lastChild.firstChild, 'foo 1 after adding a child with duplicated name' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar length after adding a child with duplicated name' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'bar 0 after adding a child with duplicated name' );
- testEl.lastChild.removeChild(testEl.lastChild.firstChild);
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'foo length after removing a child' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar length after removing a child' );
-}, 'PropertyNodeList must update when adding property elements');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="foo"></div>');
- var PNL = testEl.properties.namedItem('foo');
- assert_equals( PNL[0], testEl.firstChild, 'item 0 (before test)' );
- assert_equals( PNL[1], testEl.lastChild, 'item 1 (before test)' );
- testEl.appendChild(testEl.firstChild);
- assert_equals( PNL[0], testEl.firstChild, 'item 0 (after test)' );
- assert_equals( PNL[1], testEl.lastChild, 'item 1 (after test)' );
-}, 'PropertyNodeList must update when re-ordering property elements');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div></div>');
- var PNLfoo = testEl.properties.namedItem('foo'), PNLbar = testEl.properties.namedItem('bar');
- assert_equals( PNLfoo.length, 1, 'foo length (before test)' );
- assert_equals( PNLbar.length, 0, 'bar length (before test)' );
- assert_equals( PNLfoo[0], testEl.firstChild, 'foo[0] (before test)' );
- testEl.lastChild.itemProp.toggle('bar');
- assert_equals( PNLfoo.length, 1, 'foo length after adding a token' );
- assert_equals( PNLbar.length, 1, 'bar length after adding a token' );
- assert_equals( PNLfoo[0], testEl.firstChild, 'foo[0] after adding a token' );
- assert_equals( PNLbar[0], testEl.lastChild, 'bar[0] after adding a token' );
- testEl.lastChild.itemProp.add('foo');
- assert_equals( PNLfoo.length, 2, 'foo length after adding a duplicated token' );
- assert_equals( PNLbar.length, 1, 'bar length after adding a duplicated token' );
- assert_equals( PNLfoo[0], testEl.firstChild, 'foo[0] after adding a duplicated token' );
- assert_equals( PNLfoo[1], testEl.lastChild, 'foo[1] after adding a duplicated token' );
- assert_equals( PNLbar[0], testEl.lastChild, 'bar[0] after adding a duplicated token' );
- testEl.lastChild.removeAttribute('itemprop');
- assert_equals( PNLfoo.length, 1, 'foo length after removing an attribute' );
- assert_equals( PNLbar.length, 0, 'bar length after removing an attribute' );
- assert_equals( PNLfoo[0], testEl.firstChild, 'foo[0] after removing an attribute' );
-}, 'PropertyNodeList must update when changing itemProp of children');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- var PNLfoo = testEl.properties.namedItem('foo'), PNLbar = testEl.properties.namedItem('bar');
- assert_equals( PNLfoo.length, 0, 'foo length (before test)' );
- assert_equals( PNLbar.length, 0, 'bar length (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( PNLfoo.length, 1, 'foo length after id is created' );
- assert_equals( PNLbar.length, 1, 'bar length after id is created' );
- assert_equals( PNLfoo[0], parEl.firstChild, 'foo[0] after id is created' );
- assert_equals( PNLbar[0], parEl.firstChild.firstChild, 'bar[0] after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( PNLfoo.length, 0, 'foo length after removing an attribute' );
- assert_equals( PNLbar.length, 0, 'bar length after removing an attribute' );
- document.body.appendChild(parEl);
- var fooLength0 = PNLfoo.length;
- var barLength0 = PNLbar.length;
- parEl.firstChild.id = 'id1';
- var fooLength1 = PNLfoo.length;
- var barLength1 = PNLbar.length;
- var foo0 = PNLfoo[0];
- var bar0 = PNLbar[0];
- parEl.firstChild.removeAttribute('id');
- var fooLength2 = PNLfoo.length;
- var barLength2 = PNLbar.length;
- document.body.removeChild(parEl);
- assert_equals( fooLength0, 0, 'foo length (before test) when appended to document' );
- assert_equals( barLength0, 0, 'bar length (before test) when appended to document' );
- assert_equals( fooLength1, 1, 'foo length after id is created when appended to document' );
- assert_equals( barLength1, 1, 'bar length after id is created when appended to document' );
- assert_equals( foo0, parEl.firstChild, 'foo[0] after id is created when appended to document' );
- assert_equals( bar0, parEl.firstChild.firstChild, 'bar[0] after id is created when appended to document' );
- assert_equals( fooLength2, 0, 'foo length after removing an attribute when appended to document' );
- assert_equals( barLength2, 0, 'bar length after removing an attribute when appended to document' );
-}, 'PropertyNodeList must update when changing id of referenced sibling');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[1];
- var PNLfoo = testEl.properties.namedItem('foo'), PNLbar = testEl.properties.namedItem('bar'), PNLbaz = testEl.properties.namedItem('baz');
- assert_equals( PNLfoo.length, 0, 'foo length (before test)' );
- assert_equals( PNLbar.length, 0, 'bar length (before test)' );
- assert_equals( PNLbaz.length, 1, 'baz length (before test)' );
- assert_equals( PNLbaz[0], parEl.lastChild, 'baz[0] (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( PNLfoo.length, 1, 'foo length after id is created' );
- assert_equals( PNLbar.length, 1, 'bar length after id is created' );
- assert_equals( PNLbaz.length, 0, 'baz length after id is created' );
- assert_equals( PNLfoo[0], parEl.firstChild, 'foo[0] after id is created' );
- assert_equals( PNLbar[0], parEl.firstChild.firstChild, 'bar[0] after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( PNLfoo.length, 0, 'foo length after removing an attribute' );
- assert_equals( PNLbar.length, 0, 'bar length after removing an attribute' );
- assert_equals( PNLbaz.length, 1, 'baz length after removing an attribute' );
- assert_equals( PNLbaz[0], parEl.lastChild, 'baz[0] after removing an attribute' );
- document.body.appendChild(parEl);
- var fooLength0 = PNLfoo.length;
- var barLength0 = PNLbar.length;
- var bazLength0 = PNLbaz.length;
- var baz0 = PNLbaz[0];
- parEl.firstChild.id = 'id1';
- var fooLength1 = PNLfoo.length;
- var barLength1 = PNLbar.length;
- var bazLength1 = PNLbaz.length;
- var foo0 = PNLfoo[0];
- var bar0 = PNLbar[0];
- parEl.firstChild.removeAttribute('id');
- var fooLength2 = PNLfoo.length;
- var barLength2 = PNLbar.length;
- var bazLength2 = PNLbaz.length;
- var baz1 = PNLbaz[0];
- document.body.removeChild(parEl);
- assert_equals( fooLength0, 0, 'foo length (before test) when appended to document' );
- assert_equals( barLength0, 0, 'bar length (before test) when appended to document' );
- assert_equals( bazLength0, 1, 'baz length (before test)' );
- assert_equals( baz0, parEl.lastChild, 'baz[0] (before test)' );
- assert_equals( fooLength1, 1, 'foo length after id is created when appended to document' );
- assert_equals( barLength1, 1, 'bar length after id is created when appended to document' );
- assert_equals( bazLength1, 0, 'baz length after id is created' );
- assert_equals( foo0, parEl.firstChild, 'foo[0] after id is created when appended to document' );
- assert_equals( bar0, parEl.firstChild.firstChild, 'bar[0] after id is created when appended to document' );
- assert_equals( fooLength2, 0, 'foo length after removing an attribute when appended to document' );
- assert_equals( barLength2, 0, 'bar length after removing an attribute when appended to document' );
- assert_equals( bazLength2, 1, 'baz length after removing an attribute' );
- assert_equals( baz0, parEl.lastChild, 'baz[0] after removing an attribute' );
-}, 'PropertyNodeList must update when changing duplicated id of referenced sibling');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope></div>');
- var testEl = parEl.childNodes[1];
- var PNL = testEl.properties.namedItem('foo');
- assert_equals( PNL.length, 0, 'length (before test)' );
- testEl.itemRef.toggle('id1');
- assert_equals( PNL.length, 1, 'length after itemref is changed' );
- assert_equals( PNL[0], parEl.firstChild, 'item 0 after itemref is changed' );
- testEl.removeAttribute('itemref');
- assert_equals( PNL.length, 0, 'length after itemref is removed' );
- assert_true( !PNL[0], 'item 0 after itemref is removed' );
- document.body.appendChild(parEl);
- var length0 = PNL.length;
- testEl.itemRef.toggle('id1');
- var length1 = PNL.length;
- var foo0 = PNL[0];
- testEl.removeAttribute('itemref');
- var length2 = PNL.length;
- var foo1 = PNL[0];
- document.body.removeChild(parEl);
- assert_equals( length0, 0, 'length (before test) when appended to document' );
- assert_equals( length1, 1, 'length after itemref is changed when appended to document' );
- assert_equals( foo0, parEl.firstChild, 'item 0 after itemref is changed when appended to document' );
- assert_equals( length2, 0, 'length after itemref is removed when appended to document' );
- assert_true( !foo1, 'item 0 after itemref is removed when appended to document' );
-}, 'PropertyNodeList must update when changing itemref to point to an element');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"><div></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- var PNLfoo = testEl.properties.namedItem('foo'), PNLbar = testEl.properties.namedItem('bar');
- assert_equals( PNLfoo.length, 0, 'foo length (before test)' );
- assert_equals( PNLbar.length, 0, 'bar length (before test)' );
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( PNLfoo.length, 1, 'foo length after a referenced element is added' );
- assert_equals( PNLbar.length, 0, 'bar length after a referenced element is added' );
- assert_equals( PNLfoo.item(0), parEl.firstChild.lastChild, 'foo 0 after a referenced element is added' ); //uses item just for the fun of it
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- assert_equals( PNLfoo.length, 1, 'foo length after a referenced itemprop is changed' );
- assert_equals( PNLbar.length, 1, 'bar length after a referenced itemprop is changed' );
- assert_equals( PNLfoo[0], parEl.firstChild.lastChild, 'foo 0 after a referenced element is added' );
- assert_equals( PNLbar[0], parEl.firstChild.firstChild, 'bar 0 after a referenced element is added' );
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- assert_equals( PNLfoo.length, 1, 'foo length after a referenced element is removed' );
- assert_equals( PNLbar.length, 0, 'bar length after a referenced element is removed' );
- assert_equals( PNLfoo[0], parEl.firstChild.firstChild, 'foo 0 after a referenced element is removed' );
- assert_true( !PNLbar[0], 'bar 0 after a referenced element is removed' );
- parEl.innerHTML = '<div id="id1"><div></div></div><div itemscope itemref="id1"></div>';
- testEl = parEl.childNodes[1];
- PNLfoo = testEl.properties.namedItem('foo');
- PNLbar = testEl.properties.namedItem('bar');
- document.body.appendChild(parEl);
- var step1fooLength = PNLfoo.length;
- var step1barLength = PNLbar.length;
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- var step2fooLength = PNLfoo.length;
- var step2barLength = PNLbar.length;
- var step2foo0 = PNLfoo.item(0); //uses item just for the fun of it
- var step2fooExpected = parEl.firstChild.lastChild;
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- var step3fooLength = PNLfoo.length;
- var step3barLength = PNLbar.length;
- var step3foo0 = PNLfoo[0];
- var step3bar0 = PNLbar[0];
- var step3fooExpected = parEl.firstChild.lastChild;
- var step3barExpected = parEl.firstChild.firstChild;
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- var step4fooLength = PNLfoo.length;
- var step4barLength = PNLbar.length;
- var step4foo0 = PNLfoo[0];
- var step4bar0 = PNLbar[0];
- var step4fooExpected = parEl.firstChild.firstChild;
- document.body.removeChild(parEl);
- assert_equals( step1fooLength, 0, 'foo length (before test) when appended to document' );
- assert_equals( step1barLength, 0, 'bar length (before test) when appended to document' );
- assert_equals( step2fooLength, 1, 'foo length after a referenced element is added when appended to document' );
- assert_equals( step2barLength, 0, 'bar length after a referenced element is added when appended to document' );
- assert_equals( step2foo0, step2fooExpected, 'foo 0 after a referenced element is added when appended to document' );
- assert_equals( step3fooLength, 1, 'foo length after a referenced itemprop is changed when appended to document' );
- assert_equals( step3barLength, 1, 'bar length after a referenced itemprop is changed when appended to document' );
- assert_equals( step3foo0, step3fooExpected, 'foo 0 after a referenced element is added when appended to document' );
- assert_equals( step3bar0, step3barExpected, 'bar 0 after a referenced element is added when appended to document' );
- assert_equals( step4fooLength, 1, 'foo length after a referenced element is removed when appended to document' );
- assert_equals( step4barLength, 0, 'bar length after a referenced element is removed when appended to document' );
- assert_equals( step4foo0, step4fooExpected, 'foo 0 after a referenced element is removed when appended to document' );
- assert_true( !step4bar0, 'bar 0 after a referenced element is removed when appended to document' );
-}, 'PropertyNodeList must update when changing children of elements referenced through itemref');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope itemref="id1"><div itemprop="foo"></div></div>');
- var testEl = parEl.childNodes[1];
- var PNL = testEl.properties.namedItem('foo');
- assert_equals( PNL.length, 2, 'length (before test)' );
- assert_equals( PNL[0], parEl.firstChild, 'item 0 (before test)' );
- assert_equals( PNL[1], testEl.firstChild, 'item 1 (before test)' );
- document.body.appendChild(testEl);
- var step1length = PNL.length;
- var step1prop0 = PNL[0];
- var step1prop1 = PNL[1];
- parEl.appendChild(testEl);
- assert_equals( step1length, 1, 'length after changing parent' );
- assert_equals( step1prop0, testEl.firstChild, 'item 0 after changing parent' );
- assert_true( !step1prop1, 'item 1 after changing parent' );
- assert_equals( PNL.length, 2, 'length after re-parenting' );
- assert_equals( PNL[0], parEl.firstChild, 'item 0 after re-parenting' );
- assert_equals( PNL[1], testEl.firstChild, 'item 1 after re-parenting' );
- document.body.appendChild(parEl);
- var step2length = PNL.length;
- var step2prop0 = PNL[0];
- var step2prop1 = PNL[1];
- document.createElement('div').appendChild(testEl);
- var step3length = PNL.length;
- var step3prop0 = PNL[0];
- var step3prop1 = PNL[1];
- parEl.appendChild(testEl);
- var step4length = PNL.length;
- var step4prop0 = PNL[0];
- var step4prop1 = PNL[1];
- document.body.removeChild(parEl);
- assert_equals( step2length, 2, 'length (before test) when appended to document' );
- assert_equals( step2prop0, parEl.firstChild, 'item 0 (before test) when appended to document' );
- assert_equals( step2prop1, testEl.firstChild, 'item 1 (before test) when appended to document' );
- assert_equals( step3length, 1, 'length after changing parent when appended to document' );
- assert_equals( step3prop0, testEl.firstChild, 'item 0 after changing parent when appended to document' );
- assert_true( !step3prop1, 'item 1 after changing parent when appended to document' );
- assert_equals( step4length, 2, 'length after re-parenting when appended to document' );
- assert_equals( step4prop0, parEl.firstChild, 'item 0 after re-parenting when appended to document' );
- assert_equals( step4prop1, testEl.firstChild, 'item 1 after re-parenting when appended to document' );
-}, 'PropertyNodeList must update when appending elements with itemref to different parents');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div><div itemprop="foo"></div></div>');
- var PNL = testEl.properties.namedItem('foo');
- assert_equals( PNL.length, 1, 'length (before test)' );
- assert_equals( PNL[0], testEl.firstChild.firstChild, 'foo 0 (before test)' );
- testEl.firstChild.itemScope = true;
- assert_equals( PNL.length, 0, 'length after setting itemscope' );
- assert_true( !PNL[0], 'foo 0 after setting itemscope' );
- testEl.firstChild.removeAttribute('itemscope');
- assert_equals( PNL.length, 1, 'length after removing itemscope attribute' );
- assert_equals( PNL[0], testEl.firstChild.firstChild, 'foo 0 after removing itemscope attribute' );
-}, 'PropertyNodeList must update when changing itemscope of children');
-//PropertyNodeList.getValues
-test(function () {
- var valuesArray = makeEl('div',{}).properties.namedItem('foo').getValues();
- assert_true( valuesArray instanceof Array, 'instanceof test' );
- Array.prototype.customProp = true;
- assert_true( valuesArray.customProp, 'inheritance test' );
-}, 'getValues must return an array');
-test(function () {
- var testEl = makeEl('div',{});
- var props = testEl.properties.namedItem('foo');
- assert_not_equals( props.getValues(), props.getValues() );
-}, 'getValues must always return a newly constructed array');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"></div>');
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1 id2'});
- parEl.appendChild(testEl);
- testEl.appendChild(makeEl('meta',{itemprop:'foo',content:'test'}));
- testEl.appendChild(makeEl('audio',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('embed',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('iframe',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('img',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('source',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('track',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('video',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('a',{itemprop:'foo',href:urls.base},'contained text'));
- testEl.appendChild(makeEl('area',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('link',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('object',{itemprop:'foo',data:urls.base},'contained text'));
- parEl.appendChild(makeEl('time',{itemprop:'foo',id:'id2'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('time',{itemprop:'foo',datetime:'test'},'te <span itemprop="foo" itemscope>st</span> ing'));
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('madeuponthespot',{itemprop:'foo'},'te <span itemprop="foo" itemscope>st</span> ing'));
- var PNL = testEl.properties.namedItem('foo');
- var valuesArray = PNL.getValues();
- for( var i = 0; i < PNL.length; i++ ) {
- assert_equals( valuesArray[i], PNL[i].itemValue, 'property index ' + i + ', tag ' + PNL[i].tagName );
- }
- assert_equals( valuesArray.length, 20, 'length' );
-}, 'getValues array must contain the same item values as itemValue would return for the given properties');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"></div>');
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1 id2'});
- parEl.appendChild(testEl);
- testEl.appendChild(makeEl('meta',{itemprop:'foo',content:'test'}));
- testEl.appendChild(makeEl('audio',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('embed',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('iframe',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('img',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('source',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('track',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('video',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('a',{itemprop:'foo',href:urls.base},'contained text'));
- testEl.appendChild(makeEl('area',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('link',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('object',{itemprop:'foo',data:urls.base},'contained text'));
- parEl.appendChild(makeEl('time',{itemprop:'foo',id:'id2'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('time',{itemprop:'foo',datetime:'test'},'te <span itemprop="foo" itemscope>st</span> ing'));
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('madeuponthespot',{itemprop:'foo'},'te <span itemprop="foo" itemscope>st</span> ing'));
- var PNL = testEl.properties.namedItem('foo');
- var valuesArray = PNL.getValues();
- var staticArray = [];
- for( var i = 0; i < PNL.length; i++ ) {
- staticArray[i] = PNL[i].itemValue;
- }
- testEl.innerHTML = '';
- parEl.firstChild.firstChild.childNodes[1].itemScope = false;
- assert_equals( valuesArray.length, staticArray.length, 'length after modification' );
- for( var j = 0; j < staticArray.length; j++ ) {
- assert_equals( valuesArray[j], staticArray[j], 'property index ' + j );
- }
- assert_equals( valuesArray[1], parEl.firstChild.firstChild.childNodes[1], 'retaining pointer after modification' );
- staticArray = null;
- parEl.firstChild.firstChild.innerHTML = '';
- assert_equals( valuesArray[1] && valuesArray[1].nodeType, 1, 'retaining pointer after removal' );
-}, 'getValues array must not be live');
-//names
-test(function () {
- assert_equals( typeof makeEl('div',{}).properties.names, 'object' );
-}, 'the names property must be an object');
-test(function () {
- var testEl = makeEl('div',{});
- assert_true( testEl.properties.names instanceof DOMStringList, 'instanceof DOMStringList' );
- DOMStringList.prototype.stringCustomProperty = true;
- assert_true( testEl.properties.names.stringCustomProperty, 'inheritance from DOMStringList' );
-}, 'the names property must implement DOMStringList');
-test(function () {
- var failed = false, elem = makeEl('div',{itemscope:'itemscope'}), realList = elem.properties.names;
- try {
- elem.properties.names = '';
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.properties.names,realList);
- assert_false(failed,'an error was thrown');
-}, 'the names property must be read-only');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.properties.names, testEl.properties.names );
-}, 'the names property must always reference the same object');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.properties.names.item(0), null, 'item(0)' );
- assert_equals( testEl.properties.names.item(-1), null, 'item(-1)' );
-}, 'names.item() must return null for out of range indexes');
-test(function () {
- var testEl = makeEl('div',{});
- assert_equals( testEl.properties.names[0], window.undefined, '[0]' );
- assert_equals( testEl.properties.names[-1], window.undefined, '[-1]' );
-}, 'names[index] must return undefined for out of range indexes');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- assert_equals( testEl.properties.names.length, 0, 'length' );
- assert_true( !testEl.properties.names.item(0), 'item(0)' );
- assert_true( !testEl.properties.names[0], '[0]' );
- assert_false( testEl.properties.names.contains('foo'), 'contains' );
-}, 'the names collection must be empty if the element does not have an itemscope property');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- testEl.itemScope = true;
- assert_equals( testEl.properties.names.length, 1, 'length' );
- assert_equals( testEl.properties.names.item(0), 'foo', 'item(0)' );
- assert_equals( testEl.properties.names[0], 'foo', '[0]' );
- assert_true( testEl.properties.names.contains('foo'), 'contains' );
-}, 'the names collection must become populated if the element is given an itemscope property');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo">bar</div>');
- testEl.itemScope = false;
- assert_equals( testEl.properties.names.length, 0, 'length' );
- assert_true( !testEl.properties.names.item(0), 'item(0)' );
- assert_true( !testEl.properties.names[0], '[0]' );
- assert_false( testEl.properties.names.contains('foo'), 'contains' );
-}, 'the names collection must become empty if the element\'s itemscope property is removed');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- testEl.properties.names.item = 'test';
- testEl.properties.names.contains = 'test';
- assert_equals( testEl.properties.names.item, 'test', 'item' );
- assert_equals( testEl.properties.names.contains, 'test', 'contains' );
-}, 'the names.item and names.contains methods should be overwriteable');
-test(function () {
- var testEl = makeEl('div',{},'<div itemprop="foo">bar</div>');
- testEl.properties.names.localCustomProperty = 'test';
- assert_equals( testEl.properties.names.localCustomProperty, 'test' );
-}, 'the names.customProperty should be writeable');
-test(function () {
- //WebIDL and ECMAScript 5 - a readonly property has a getter but not a setter
- //ES5 makes [[Put]] fail but not throw
- var failed = false;
- var elem = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo">bar</div>');
- try {
- elem.properties.names.length = 0;
- } catch(e) {
- failed = e;
- }
- assert_equals(elem.properties.names.length,1);
- assert_false(failed,'an error was thrown');
-}, 'names.length must be read-only');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.names.length, 4 );
-}, 'names.length must be the total number of property names');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="foo"></div><div itemprop="foo"></div></div><div itemprop="baz \t\r\n\fqux"></div>');
- assert_equals( testEl.properties.names.item(0), 'foo', 'item(0)' );
- assert_equals( testEl.properties.names.item(1), 'bar', 'item(1)' );
- assert_equals( testEl.properties.names.item(2), 'baz', 'item(2)' );
- assert_equals( testEl.properties.names.item(3), 'qux', 'item(3)' );
- assert_equals( testEl.properties.names[0], 'foo', '[0]' );
- assert_equals( testEl.properties.names[1], 'bar', '[1]' );
- assert_equals( testEl.properties.names[2], 'baz', '[2]' );
- assert_equals( testEl.properties.names[3], 'qux', '[3]' );
-}, 'names.item must give each property name in tree order');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar BAR bar"><div itemprop="FOO"></div><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_equals( testEl.properties.names.length, 6, 'length' );
- assert_equals( testEl.properties.names.item(0), 'foo', 'item(0)' );
- assert_equals( testEl.properties.names.item(1), 'bar', 'item(1)' );
- assert_equals( testEl.properties.names.item(2), 'BAR', 'item(2)' );
- assert_equals( testEl.properties.names.item(3), 'FOO', 'item(3)' );
- assert_equals( testEl.properties.names.item(4), 'baz', 'item(4)' );
- assert_equals( testEl.properties.names.item(5), 'qux', 'item(5)' );
- assert_equals( testEl.properties.names[0], 'foo', '[0]' );
- assert_equals( testEl.properties.names[1], 'bar', '[1]' );
- assert_equals( testEl.properties.names[2], 'BAR', '[2]' );
- assert_equals( testEl.properties.names[3], 'FOO', '[3]' );
- assert_equals( testEl.properties.names[4], 'baz', '[4]' );
- assert_equals( testEl.properties.names[5], 'qux', '[5]' );
-}, 'names must be case sensitive');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"><div itemprop="FOO"></div><div itemprop="foo"></div></div><div itemprop="baz qux"></div>');
- assert_true( testEl.properties.names.contains('foo'), 'foo' );
- assert_true( testEl.properties.names.contains('FOO'), 'FOO' );
- assert_true( testEl.properties.names.contains('bar'), 'bar' );
- assert_false( testEl.properties.names.contains('BAR'), 'BAR' );
- assert_true( testEl.properties.names.contains('baz'), 'baz' );
- assert_true( testEl.properties.names.contains('qux'), 'qux' );
- assert_false( testEl.properties.names.contains('madeup'), 'madeup' );
-}, 'names.contains must return boolean if the name exists');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="1"></div>');
- assert_equals( testEl.properties.names.item('1'), null );
-}, 'names.item must cast to number');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="1"></div>');
- assert_true( testEl.properties.names.contains({ valueOf: function () { return 2; }, toString: function () { return 'foo'; } }), 'object' );
- assert_true( testEl.properties.names.contains(1), 'number' );
-}, 'names.contains must cast to string');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"></div>');
- var namesList = testEl.properties.names;
- testEl.innerHTML = '<div itemprop="baz"></div>';
- assert_equals( testEl.properties.names.length, 1, 'length' );
- assert_equals( testEl.properties.names[0], 'baz', '[0]' );
-}, 'the names collection must be live');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="|§!&quot;#¤%&/()=?`\\@£${[]}´€^¨~\'*,;.:-_&lt;&gt;帿ŨÆ"></div>');
- assert_equals( testEl.properties.names[0], '|§!"#¤%&/()=?`\\@£${[]}´€^¨~\'*,;.:-_<>帿ŨÆ' );
-}, 'names must reflect property names containing special characters');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemscope><div itemprop="bar"></div></div>');
- assert_equals( testEl.properties.names.length, 1, 'length' );
- assert_equals( testEl.properties.names[0], 'foo', '[0]' );
- assert_true( testEl.properties.names.contains('foo'), 'contains(foo)' );
- assert_false( testEl.properties.names.contains('bar'), 'contains(bar)' );
-}, 'names must ignore properties of nested items');
-test(function () {
- //note, itemref ordering is reversed compared with the next test to catch failed sorting algorithms
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id2 id1"><div itemprop="bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- document.body.appendChild(parEl);
- var length = testEl.properties.names.length;
- var names0 = testEl.properties.names[0];
- var names1 = testEl.properties.names[1];
- var names2 = testEl.properties.names[2];
- var names3 = testEl.properties.names[3];
- document.body.removeChild(parEl);
- assert_equals( length, 4, 'length' );
- assert_equals( names0, 'foo', 'names[0]' );
- assert_equals( names1, 'bar', 'names[1]' );
- assert_equals( names2, 'baz', 'names[2]' );
- assert_equals( names3, 'qux', 'names[3]' );
-}, 'names must see items added with itemref when attached to the document\'s DOM');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id1"></div><div itemscope itemref="id1 id2"><div itemprop="bar"></div></div><div itemprop="baz" id="id2"><div itemprop="qux"></div></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.names.length, 4, 'length' );
- assert_equals( testEl.properties.names[0], 'foo', 'names[0]' );
- assert_equals( testEl.properties.names[1], 'bar', 'names[1]' );
- assert_equals( testEl.properties.names[2], 'baz', 'names[2]' );
- assert_equals( testEl.properties.names[3], 'qux', 'names[3]' );
-}, 'names must see items added with itemref');
-test(function () {
- //this one also tests the live object just in case - further ones will not always do this as its live status will already have been well established
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- var DSL = testEl.properties.names;
- testEl.removeAttribute('itemscope');
- assert_equals( testEl.properties.names.length, 0, 'removing attribute' );
- assert_equals( DSL.length, 0, 'removing attribute (live)' );
- assert_true( !testEl.properties.names[0], 'removing attribute [0]' );
- assert_true( !DSL[0], 'removing attribute [0] (live)' );
- testEl.itemScope = true;
- assert_equals( testEl.properties.names.length, 1, 'setting itemScope' );
- assert_equals( DSL.length, 1, 'setting itemScope (live)' );
- assert_equals( testEl.properties.names[0], 'foo', 'names[0] after setting itemScope' );
- assert_equals( DSL[0], 'foo', 'names[0] after setting itemScope (live)' );
-}, 'names must update when adding itemscope on the root');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div>');
- assert_equals( testEl.properties.names.length, 1, 'length (before test)' );
- assert_equals( testEl.properties.names[0], 'foo', 'item 0 (before test)' );
- testEl.appendChild(makeEl('div',{itemprop:'bar'}));
- assert_equals( testEl.properties.names.length, 2, 'length after adding a child' );
- assert_equals( testEl.properties.names[0], 'foo', 'item 0 after adding a child' );
- assert_equals( testEl.properties.names[1], 'bar', 'item 1 after adding a child' );
- testEl.lastChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( testEl.properties.names.length, 2, 'foo length after adding a child with duplicated name' );
- assert_equals( testEl.properties.names[0], 'foo', 'item 0 after adding a child with duplicated name' );
- assert_equals( testEl.properties.names[1], 'bar', 'item 1 after adding a child with duplicated name' );
- testEl.removeChild(testEl.lastChild);
- assert_equals( testEl.properties.names.length, 1, 'length after removing a child' );
- assert_equals( testEl.properties.names[0], 'foo', 'item 0 after removing a child' );
-}, 'names must update when adding property elements');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"></div>');
- var DSL = testEl.properties.names;
- assert_equals( DSL[0], 'foo', 'item 0 (before test)' );
- assert_equals( DSL[1], 'bar', 'item 1 (before test)' );
- testEl.appendChild(testEl.firstChild);
- assert_equals( DSL[0], 'bar', 'item 0 (after test)' );
- assert_equals( DSL[1], 'foo', 'item 1 (after test)' );
-}, 'names must update when re-ordering property elements');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div></div>');
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 1, 'length (before test)' );
- assert_equals( DSL[0], 'foo', 'item 0 (before test)' );
- testEl.lastChild.itemProp.toggle('bar');
- assert_equals( DSL.length, 2, 'length after adding a token' );
- assert_equals( DSL[0], 'foo', 'item 0 after adding a token' );
- assert_equals( DSL[1], 'bar', 'item 1 after adding a token' );
- testEl.lastChild.itemProp.add('foo');
- assert_equals( DSL.length, 2, 'length after adding a duplicated token' );
- assert_equals( DSL[0], 'foo', 'item 0 after adding a duplicated token' );
- assert_equals( DSL[1], 'bar', 'item 1 after adding a duplicated token' );
- testEl.lastChild.removeAttribute('itemprop');
- assert_equals( DSL.length, 1, 'length after removing an attribute' );
- assert_equals( DSL[0], 'foo', 'item 0 after removing an attribute' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div itemprop="bar"></div><div itemprop="foo"></div>');
- DSL = testEl.properties.names;
- assert_equals( DSL.length, 2, 'length (before second test)' );
- assert_equals( DSL[0], 'foo', 'item 0 (before second test)' );
- assert_equals( DSL[1], 'bar', 'item 1 (before second test)' );
- testEl.firstChild.removeAttribute('itemprop');
- assert_equals( DSL.length, 2, 'length after removing attribute of first item' );
- assert_equals( DSL[0], 'bar', 'item 0 after removing attribute of first item' );
- assert_equals( DSL[1], 'foo', 'item 1 after removing attribute of first item' );
- testEl.firstChild.itemProp.add('foo');
- assert_equals( DSL.length, 2, 'length after adding duplicated token to first item' );
- assert_equals( DSL[0], 'foo', 'item 0 after adding duplicated token to first item' );
- assert_equals( DSL[1], 'bar', 'item 1 after adding duplicated token to first item' );
- testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo bar"></div>');
- DSL = testEl.properties.names;
- assert_equals( DSL.length, 2, 'length (before third test)' );
- assert_equals( DSL[0], 'foo', 'item 0 (before third test)' );
- assert_equals( DSL[1], 'bar', 'item 1 (before third test)' );
- testEl.firstChild.itemProp.toggle('foo');
- testEl.firstChild.itemProp.toggle('foo');
- assert_equals( DSL.length, 2, 'length after swapping tokens' );
- assert_equals( DSL[0], 'bar', 'item 0 after swapping tokens' );
- assert_equals( DSL[1], 'foo', 'item 1 after swapping tokens' );
-}, 'names must update when changing itemProp of children');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 0, 'length (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( DSL.length, 2, 'length after id is created' );
- assert_equals( DSL[0], 'foo', 'item 0 after id is created' );
- assert_equals( DSL[1], 'bar', 'item 1 after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( DSL.length, 0, 'length after removing an attribute' );
- document.body.appendChild(parEl);
- var step1length = DSL.length;
- parEl.firstChild.id = 'id1';
- var step2length = DSL.length;
- var step2item0 = DSL[0];
- var step2item1 = DSL[1];
- parEl.firstChild.removeAttribute('id');
- var step3length = DSL.length;
- document.body.removeChild(parEl);
- assert_equals( step1length, 0, 'length (before test) when appended to document' );
- assert_equals( step2length, 2, 'length after id is created when appended to document' );
- assert_equals( step2item0, 'foo', 'item 0 after id is created when appended to document' );
- assert_equals( step2item1, 'bar', 'item 1 after id is created when appended to document' );
- assert_equals( step3length, 0, 'length after removing an attribute when appended to document' );
-}, 'names must update when changing id of referenced sibling when appended to document');
-test(function () {
- var parEl = makeEl('div',{},'<div itemprop="foo"><div itemprop="bar"></div></div><div itemscope itemref="id1"></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[1];
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 1, 'length (before test)' );
- assert_equals( DSL[0], 'baz', 'item 0 (before test)' );
- parEl.firstChild.id = 'id1';
- assert_equals( DSL.length, 2, 'length after id is created' );
- assert_equals( DSL[0], 'foo', 'item 0 after id is created' );
- assert_equals( DSL[1], 'bar', 'item 1 after id is created' );
- parEl.firstChild.removeAttribute('id');
- assert_equals( DSL.length, 1, 'length after removing an attribute' );
- assert_equals( DSL[0], 'baz', 'item 0 after removing an attribute' );
- document.body.appendChild(parEl);
- var step1length = DSL.length;
- var step1item0 = DSL[0];
- parEl.firstChild.id = 'id1';
- var step2length = DSL.length;
- var step2item0 = DSL[0];
- var step2item1 = DSL[1];
- parEl.firstChild.removeAttribute('id');
- var step3length = DSL.length;
- var step3item0 = DSL[0];
- document.body.removeChild(parEl);
- assert_equals( step1length, 1, 'length (before test)' );
- assert_equals( step1item0, 'baz', 'item 0 (before test)' );
- assert_equals( step2length, 2, 'length after id is created' );
- assert_equals( step2item0, 'foo', 'item 0 after id is created' );
- assert_equals( step2item1, 'bar', 'item 1 after id is created' );
- assert_equals( step3length, 1, 'length after removing an attribute' );
- assert_equals( step3item0, 'baz', 'item 0 after removing an attribute' );
-}, 'names must update when changing duplicated id of referenced sibling');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope></div>');
- var testEl = parEl.childNodes[1];
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 0, 'length (before test)' );
- testEl.itemRef.toggle('id1');
- assert_equals( DSL.length, 1, 'length after itemref is changed' );
- assert_equals( DSL[0], 'foo', 'item 0 after itemref is changed' );
- testEl.removeAttribute('itemref');
- assert_equals( DSL.length, 0, 'length after itemref is removed' );
- assert_true( !DSL[0], 'item 0 after itemref is removed' );
- document.body.appendChild(parEl);
- var step1length = DSL.length;
- testEl.itemRef.toggle('id1');
- var step2length = DSL.length;
- var step2item = DSL[0];
- testEl.removeAttribute('itemref');
- var step3length = DSL.length;
- var step3item = DSL[0];
- document.body.removeChild(parEl);
- assert_equals( step1length, 0, 'length (before test)' );
- assert_equals( step2length, 1, 'length after itemref is changed' );
- assert_equals( step2item, 'foo', 'item 0 after itemref is changed' );
- assert_equals( step3length, 0, 'length after itemref is removed' );
- assert_true( !step3item, 'item 0 after itemref is removed' );
-}, 'names must update when changing itemref to point to an element');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"><div></div></div><div itemscope itemref="id1"></div>');
- var testEl = parEl.childNodes[1];
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 0, 'length (before test)' );
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( DSL.length, 1, 'length after a referenced element is added' );
- assert_equals( DSL.item(0), 'foo', 'item 0 after a referenced element is added' ); //uses item just for the fun of it
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- assert_equals( DSL.length, 2, 'length after a referenced itemprop is changed' );
- assert_equals( DSL[0], 'bar', 'item 0 after a referenced element is added' );
- assert_equals( DSL[1], 'foo', 'item 1 after a referenced element is added' );
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- assert_equals( DSL.length, 1, 'length after a referenced element is removed' );
- assert_equals( DSL[0], 'foo', 'item 0 after a referenced element is removed' );
- parEl.innerHTML = '<div id="id1"><div></div></div><div itemscope itemref="id1"></div>';
- testEl = parEl.childNodes[1];
- DSL = testEl.properties.names;
- document.body.appendChild(parEl);
- var step1length = DSL.length;
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- var step2length = DSL.length;
- var step2item0 = DSL.item(0); //uses item just for the fun of it
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- var step3length = DSL.length;
- var step3item0 = DSL[0];
- var step3item1 = DSL[1];
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- var step4length = DSL.length;
- var step4item0 = DSL[0];
- document.body.removeChild(parEl);
- assert_equals( step1length, 0, 'length (before test)' );
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'foo'}));
- assert_equals( step2length, 1, 'length after a referenced element is added' );
- assert_equals( step2item0, 'foo', 'item 0 after a referenced element is added' ); //uses item just for the fun of it
- parEl.firstChild.firstChild.itemProp.toggle('bar');
- assert_equals( step3length, 2, 'length after a referenced itemprop is changed' );
- assert_equals( step3item0, 'bar', 'item 0 after a referenced element is added' );
- assert_equals( step3item1, 'foo', 'item 1 after a referenced element is added' );
- parEl.firstChild.removeChild(parEl.firstChild.firstChild);
- assert_equals( step4length, 1, 'length after a referenced element is removed' );
- assert_equals( step4item0, 'foo', 'item 0 after a referenced element is removed' );
-}, 'names must update when changing children of elements referenced through itemref');
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1" itemprop="foo"></div><div itemscope itemref="id1"><div itemprop="bar"></div></div>');
- var testEl = parEl.childNodes[1];
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 2, 'length (before test)' );
- assert_equals( DSL[0], 'foo', 'item 0 (before test)' );
- assert_equals( DSL[1], 'bar', 'item 1 (before test)' );
- document.body.appendChild(testEl);
- var step1length = DSL.length;
- var step1prop0 = DSL[0];
- var step1prop1 = DSL[1];
- parEl.appendChild(testEl);
- assert_equals( step1length, 1, 'length after changing parent' );
- assert_equals( step1prop0, 'bar', 'item 0 after changing parent' );
- assert_true( !step1prop1, 'item 1 after changing parent' );
- assert_equals( DSL.length, 2, 'length after re-parenting' );
- assert_equals( DSL[0], 'foo', 'item 0 after re-parenting' );
- assert_equals( DSL[1], 'bar', 'item 1 after re-parenting' );
- document.body.appendChild(parEl);
- var step2length = DSL.length;
- var step2prop0 = DSL[0];
- var step2prop1 = DSL[1];
- document.createElement('div').appendChild(testEl);
- var step3length = DSL.length;
- var step3prop0 = DSL[0];
- var step3prop1 = DSL[1];
- parEl.appendChild(testEl);
- var step4length = DSL.length;
- var step4prop0 = DSL[0];
- var step4prop1 = DSL[1];
- document.body.removeChild(parEl);
- assert_equals( step2length, 2, 'length (before test) when appended to document' );
- assert_equals( step2prop0, 'foo', 'item 0 (before test) when appended to document' );
- assert_equals( step2prop1, 'bar', 'item 1 (before test) when appended to document' );
- assert_equals( step3length, 1, 'length after changing parent when appended to document' );
- assert_equals( step3prop0, 'bar', 'item 0 after changing parent when appended to document' );
- assert_true( !step3prop1, 'item 1 after changing parent when appended to document' );
- assert_equals( step4length, 2, 'length after re-parenting when appended to document' );
- assert_equals( step4prop0, 'foo', 'item 0 after re-parenting when appended to document' );
- assert_equals( step4prop1, 'bar', 'item 1 after re-parenting when appended to document' );
-}, 'names must update when appending elements with itemref to different parents');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div><div itemprop="foo"></div></div>');
- var DSL = testEl.properties.names;
- assert_equals( DSL.length, 1, 'length (before test)' );
- assert_equals( DSL[0], 'foo', 'item 0 (before test)' );
- testEl.firstChild.itemScope = true;
- assert_equals( DSL.length, 0, 'length after setting itemscope' );
- assert_true( !DSL[0], 'item 0 after setting itemscope' );
- testEl.firstChild.removeAttribute('itemscope');
- assert_equals( DSL.length, 1, 'length after removing itemscope attribute' );
- assert_equals( DSL[0], 'foo', 'item 0 after removing itemscope attribute' );
-}, 'names must update when changing itemscope of children');
-
-/* potential bugs */
-test(function () {
- var parEl = makeEl('div',{},'<div id="id1"></div>');
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1 id2'});
- parEl.appendChild(testEl);
- testEl.appendChild(makeEl('meta',{itemprop:'foo',content:'test'}));
- testEl.appendChild(makeEl('audio',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('embed',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('iframe',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('img',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('source',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('track',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('video',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('a',{itemprop:'foo',href:urls.base},'contained text'));
- testEl.appendChild(makeEl('area',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('link',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('object',{itemprop:'foo',data:urls.base},'contained text'));
- parEl.appendChild(makeEl('time',{itemprop:'bar',id:'id2'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('time',{itemprop:'foo',datetime:'test'},'te <span itemprop="foo" itemscope>st</span> ing'));
- parEl.firstChild.appendChild(makeEl('div',{itemprop:'baz'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('madeuponthespot',{itemprop:'baz'},'te <span itemprop="foo" itemscope>st</span> ing'));
- var properties, PNLfoo, PNLbar, PNLbaz, fooValues, barValues, bazValues, allArrays, snapshot = [];
- document.body.appendChild(parEl);
- try {
- properties = testEl.properties;
- PNLfoo = properties.namedItem('foo');
- PNLbar = properties.namedItem('bar');
- PNLbaz = properties.namedItem('baz');
- fooValues = PNLfoo.getValues();
- barValues = PNLbar.getValues();
- bazValues = PNLbaz.getValues();
- allArrays = [properties,PNLfoo,PNLbar,PNLbaz,fooValues,barValues,bazValues];
- for( var a = 0; a < allArrays.length; a++ ) {
- snapshot[a] = [];
- for( var b = 0; b < allArrays[a].length; b++ ) {
- snapshot[a][b] = allArrays[a][b];
- }
- }
- } catch(e) { /* need to clean up */ }
- document.body.removeChild(parEl);
- var c, d;
- for( c = 0; c < allArrays.length; c++ ) {
- for( d = 0; d < allArrays[c].length; d++ ) {
- assert_equals( snapshot[c][d], allArrays[c][d], 'allArrays['+c+']['+d+']' );
- }
- }
- var newArrays = [testEl.properties,testEl.properties.namedItem('foo'),testEl.properties.namedItem('bar'),testEl.properties.namedItem('baz'),testEl.properties.namedItem('foo').getValues(),testEl.properties.namedItem('bar').getValues(),testEl.properties.namedItem('baz').getValues()];
- for( c = 0; c < newArrays.length; c++ ) {
- for( d = 0; d < newArrays[c].length; d++ ) {
- assert_equals( snapshot[c][d], newArrays[c][d], 'newArrays['+c+']['+d+']' );
- }
- }
-}, 'collections must survive the parent\'s removal from the document');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'});
- testEl.appendChild(makeEl('meta',{itemprop:'foo',content:'test'}));
- testEl.appendChild(makeEl('audio',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('embed',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('iframe',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('img',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('source',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('track',{itemprop:'foo',src:urls.base}));
- testEl.appendChild(makeEl('video',{itemprop:'foo',src:urls.base},'contained text'));
- testEl.appendChild(makeEl('a',{itemprop:'foo',href:urls.base},'contained text'));
- testEl.appendChild(makeEl('area',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('link',{itemprop:'foo',href:urls.base}));
- testEl.appendChild(makeEl('object',{itemprop:'foo',data:urls.base},'contained text'));
- testEl.appendChild(makeEl('time',{itemprop:'bar',id:'id2'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('time',{itemprop:'foo',datetime:'test'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('div',{itemprop:'baz'},'te <span itemprop="foo" itemscope>st</span> ing'));
- testEl.appendChild(makeEl('madeuponthespot',{itemprop:'baz'},'te <span itemprop="foo" itemscope>st</span> ing'));
- var properties, PNLfoo, PNLbar, PNLbaz, fooValues, barValues, bazValues, allArrays, snapshot = [];
- document.body.appendChild(testEl);
- try {
- properties = testEl.properties;
- PNLfoo = properties.namedItem('foo');
- PNLbar = properties.namedItem('bar');
- PNLbaz = properties.namedItem('baz');
- fooValues = PNLfoo.getValues();
- barValues = PNLbar.getValues();
- bazValues = PNLbaz.getValues();
- allArrays = [properties,PNLfoo,PNLbar,PNLbaz,fooValues,barValues,bazValues];
- for( var a = 0; a < allArrays.length; a++ ) {
- snapshot[a] = [];
- for( var b = 0; b < allArrays[a].length; b++ ) {
- snapshot[a][b] = allArrays[a][b];
- }
- }
- } catch(e) { /* need to clean up */ }
- document.body.removeChild(testEl);
- var c, d;
- for( c = 0; c < allArrays.length; c++ ) {
- for( d = 0; d < allArrays[c].length; d++ ) {
- assert_equals( snapshot[c][d], allArrays[c][d], 'allArrays['+c+']['+d+']' );
- }
- }
- var newArrays = [testEl.properties,testEl.properties.namedItem('foo'),testEl.properties.namedItem('bar'),testEl.properties.namedItem('baz'),testEl.properties.namedItem('foo').getValues(),testEl.properties.namedItem('bar').getValues(),testEl.properties.namedItem('baz').getValues()];
- for( c = 0; c < newArrays.length; c++ ) {
- for( d = 0; d < newArrays[c].length; d++ ) {
- assert_equals( snapshot[c][d], newArrays[c][d], 'newArrays['+c+']['+d+']' );
- }
- }
-}, 'collections must survive the item\'s removal from the document');
-
-/* override_builtins */
-test(function () {
- //http://dev.w3.org/2006/webapi/WebIDL/#named-properties
- //[OverrideBuiltins] is not declared for any of the properties, hence no overriding is allowed
- var testEl = makeEl('div',{itemscope:'itemscope'});
- var namedItem = testEl.properties.namedItem;
- var item = testEl.properties.item;
- var names = testEl.properties.names;
- testEl.innerHTML = '<div itemprop="namedItem length item names"></div>';
- assert_equals( testEl.properties['namedItem'], namedItem, 'namedItem' );
- assert_equals( testEl.properties['length'], 1, 'length' );
- assert_equals( testEl.properties['item'], item, 'item' );
- assert_equals( testEl.properties['names'], names, 'names' );
-}, 'itemprop names must not override builtin properties');
-
-/* casting */
-//when calling object[other_object], ECMAScript treats other_object as a named property so it casts it to a string using toString
-//when looking up a named property, ECMAScript and WebIDL <http://dev.w3.org/2006/webapi/WebIDL/#named-properties> will prefer an array index property name
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="2"></div><div itemprop="0"></div>');
- assert_equals( testEl.properties.item('0'), testEl.properties.item(0), '0' );
- assert_equals( testEl.properties.item('2'), testEl.properties.item(2), '2' );
-}, 'properties.item(integerString) should cast to a number');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="2"></div><div itemprop="0"></div>');
- assert_equals( testEl.properties['0'], testEl.properties.item(0), '0' );
- assert_equals( testEl.properties['2'], window.undefined, '2' );
-}, 'properties[integerString] should act as a numeric index');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="0"></div>');
- assert_equals( testEl.properties.namedItem(0), testEl.properties.namedItem('0'), '0' );
- assert_true( testEl.properties.namedItem(0) instanceof PropertyNodeList , 'instanceof' );
-}, 'properties.namedItem(integer) should cast to a string');
-test(function () {
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="2 foo"></div><div itemprop="0"></div>');
- assert_equals( testEl.properties[{ toString: function(){return 'foo';}, valueOf: function(){return 1;} }][0], testEl.firstChild, 'foo' );
- assert_equals( testEl.properties[{ toString: function(){return '0';}, valueOf: function(){return 1;} }], testEl.firstChild, '0' );
- assert_equals( testEl.properties[{ toString: function(){return '2';}, valueOf: function(){return 0;} }], window.undefined, '2' );
-}, 'properties[someObject] should cast toString before using whichever casting applies');
-
-/* loops and evil itemref */
-test(function () {
- //This should have 1 property on each itemscope, pointing only to its direct child
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemscope itemprop="foo"><div itemprop="bar"></div></div>');
- assert_equals( testEl.properties.length, 1, 'outer length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0]' );
- assert_true( !testEl.properties[1], 'outer properties[1]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'outer bar.length' );
- assert_true( !testEl.properties.namedItem('bar')[0], 'outer bar[0]' );
- assert_equals( testEl.properties.names.length, 1, 'outer names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0]' );
- assert_true( !testEl.properties.names[1], 'outer names[1]' );
- assert_equals( testEl.firstChild.properties.length, 1, 'inner length' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0]' );
- assert_true( !testEl.firstChild.properties[1], 'inner properties[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[1], 'inner foo[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'inner names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0]' );
- assert_true( !testEl.firstChild.properties.names[1], 'inner names[1]' );
-}, 'simple nested itemscope');
-test(function () {
- //This should have 1 property on each itemscope, pointing only to its direct child
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1'},'<div itemscope itemprop="foo" id="id1" itemref="id2"><div itemprop="bar" id="id2"></div></div>');
- assert_equals( testEl.properties.length, 1, 'outer length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0]' );
- assert_true( !testEl.properties[1], 'outer properties[1]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'outer bar.length' );
- assert_true( !testEl.properties.namedItem('bar')[0], 'outer bar[0]' );
- assert_equals( testEl.properties.names.length, 1, 'outer names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0]' );
- assert_true( !testEl.properties.names[1], 'outer names[1]' );
- assert_equals( testEl.firstChild.properties.length, 1, 'inner length' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0]' );
- assert_true( !testEl.firstChild.properties[1], 'inner properties[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[1], 'inner foo[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'inner names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0]' );
- assert_true( !testEl.firstChild.properties.names[1], 'inner names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 1, 'outer length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0] when appended to document' );
- assert_true( !testEl.properties[1], 'outer properties[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'outer bar.length when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[0], 'outer bar[0] when appended to document' );
- assert_equals( testEl.properties.names.length, 1, 'outer names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0] when appended to document' );
- assert_true( !testEl.properties.names[1], 'outer names[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.length, 1, 'inner length when appended to document' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0] when appended to document' );
- assert_true( !testEl.firstChild.properties[1], 'inner properties[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[1], 'inner foo[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'inner names.length when appended to document' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.names[1], 'inner names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'simple nested itemscope with itemref');
-test(function () {
- //This should have 3 properties on the item; foo, bar and baz
- var parEl = makeEl('div',{},'<div itemprop="foo" id="id2"></div><div itemscope itemref="id1 id2"><div itemprop="bar"></div></div><div itemprop="baz" id="id1"></div>');
- var testEl = parEl.childNodes[1];
- assert_equals( testEl.properties.length, 3, 'length' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0]' );
- assert_equals( testEl.properties[1], testEl.firstChild, 'properties[1]' );
- assert_equals( testEl.properties[2], parEl.lastChild, 'properties[2]' );
- assert_true( !testEl.properties[3], 'properties[3]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], parEl.firstChild, 'foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar.length' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0]' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'bar[1]' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'baz.length' );
- assert_equals( testEl.properties.namedItem('baz')[0], parEl.lastChild, 'baz[0]' );
- assert_true( !testEl.properties.namedItem('baz')[1], 'baz[1]' );
- assert_equals( testEl.properties.names.length, 3, 'names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'names[0]' );
- assert_equals( testEl.properties.names[1], 'bar', 'names[1]' );
- assert_equals( testEl.properties.names[2], 'baz', 'names[2]' );
- assert_true( !testEl.properties.names[3], 'names[3]' );
- document.body.appendChild(parEl);
- try {
- assert_equals( testEl.properties.length, 3, 'length when appended to document' );
- assert_equals( testEl.properties[0], parEl.firstChild, 'properties[0] when appended to document' );
- assert_equals( testEl.properties[1], testEl.firstChild, 'properties[1] when appended to document' );
- assert_equals( testEl.properties[2], parEl.lastChild, 'properties[2] when appended to document' );
- assert_true( !testEl.properties[3], 'properties[3] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], parEl.firstChild, 'foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar.length when appended to document' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'bar[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'baz.length when appended to document' );
- assert_equals( testEl.properties.namedItem('baz')[0], parEl.lastChild, 'baz[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('baz')[1], 'baz[1] when appended to document' );
- assert_equals( testEl.properties.names.length, 3, 'names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'names[0] when appended to document' );
- assert_equals( testEl.properties.names[1], 'bar', 'names[1] when appended to document' );
- assert_equals( testEl.properties.names[2], 'baz', 'names[2] when appended to document' );
- assert_true( !testEl.properties.names[3], 'names[3] when appended to document' );
- } catch(e) {
- document.body.removeChild(parEl);
- throw (e);
- }
- document.body.removeChild(parEl);
-}, 'simple sibling itemref');
-test(function () {
- //This should have no properties
- var testEl = makeEl('div',{itemscope:'itemscope',id:'id1',itemref:'id1',itemprop:'foo'});
- assert_equals( testEl.properties.length, 0, 'length' );
- assert_true( !testEl.properties[0], 'properties[0]' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'foo.length' );
- assert_true( !testEl.properties.namedItem('foo')[0], 'foo[0]' );
- assert_equals( testEl.properties.names.length, 0, 'names.length' );
- assert_true( !testEl.properties.names[0], 'names[0]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 0, 'length when appended to document' );
- assert_true( !testEl.properties[0], 'properties[0] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'foo.length when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[0], 'foo[0] when appended to document' );
- assert_equals( testEl.properties.names.length, 0, 'names.length when appended to document' );
- assert_true( !testEl.properties.names[0], 'names[0] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'itemref pointing to itself');
-test(function () {
- //This should have 1 property, pointing to the child
- var testEl = makeEl('div',{itemscope:'itemscope',id:'id1',itemref:'id1',itemprop:'foo'},'<div itemprop="bar"></div>');
- assert_equals( testEl.properties.length, 1, 'length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0]' );
- assert_true( !testEl.properties[1], 'properties[1]' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'foo.length' );
- assert_true( !testEl.properties.namedItem('foo')[0], 'foo[0]' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar.length' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0]' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'bar[1]' );
- assert_equals( testEl.properties.names.length, 1, 'names.length' );
- assert_equals( testEl.properties.names[0], 'bar', 'names[0]' );
- assert_true( !testEl.properties.names[1], 'names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 1, 'length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'properties[0] when appended to document' );
- assert_true( !testEl.properties[1], 'properties[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 0, 'foo.length when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[0], 'foo[0] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'bar.length when appended to document' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'bar[1] when appended to document' );
- assert_equals( testEl.properties.names.length, 1, 'names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'bar', 'names[0] when appended to document' );
- assert_true( !testEl.properties.names[1], 'names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'itemref pointing to itself with child');
-test(function () {
- //This should have 1 property on each itemscope, pointing only to its direct child
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemscope itemprop="foo" id="id1" itemref="id1"><div itemprop="bar"></div></div>');
- assert_equals( testEl.properties.length, 1, 'outer length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0]' );
- assert_true( !testEl.properties[1], 'outer properties[1]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'outer bar.length' );
- assert_true( !testEl.properties.namedItem('bar')[0], 'outer bar[0]' );
- assert_equals( testEl.properties.names.length, 1, 'outer names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0]' );
- assert_true( !testEl.properties.names[1], 'outer names[1]' );
- assert_equals( testEl.firstChild.properties.length, 1, 'inner length' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0]' );
- assert_true( !testEl.firstChild.properties[1], 'inner properties[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'inner bar[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'inner names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0]' );
- assert_true( !testEl.firstChild.properties.names[1], 'inner names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 1, 'outer length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0] when appended to document' );
- assert_true( !testEl.properties[1], 'outer properties[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 0, 'outer bar.length when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[0], 'outer bar[0] when appended to document' );
- assert_equals( testEl.properties.names.length, 1, 'outer names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0] when appended to document' );
- assert_true( !testEl.properties.names[1], 'outer names[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.length, 1, 'inner length when appended to document' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0] when appended to document' );
- assert_true( !testEl.firstChild.properties[1], 'inner properties[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'inner bar[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'inner names.length when appended to document' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.names[1], 'inner names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'nested itemref pointing to itself with child');
-test(function () {
- //Each itemscope has one property, pointing to the other one
- var testEl = makeEl('div',{},'<div id="id1" itemprop="foo" itemscope itemref="id2"></div><div id="id2" itemprop="bar" itemscope itemref="id1"></div>');
- assert_equals( testEl.firstChild.properties.length, 1, 'id1 length' );
- assert_equals( testEl.firstChild.properties[0], testEl.lastChild, 'id1 properties[0]' );
- assert_true( !testEl.firstChild.properties[1], 'id1 properties[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'id1 foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'id1 foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'id1 bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.lastChild, 'id1 bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'id1 bar[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'id1 names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'id1 names[0]' );
- assert_true( !testEl.firstChild.properties.names[1], 'id1 names[1]' );
- assert_equals( testEl.lastChild.properties.length, 1, 'id2 length' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'id2 properties[0]' );
- assert_true( !testEl.lastChild.properties[1], 'id2 properties[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 1, 'id2 foo.length' );
- assert_equals( testEl.lastChild.properties.namedItem('foo')[0], testEl.firstChild, 'id2 foo[0]' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[1], 'id2 foo[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'id2 bar.length' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'id2 bar[0]' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'id2 names.length' );
- assert_equals( testEl.lastChild.properties.names[0], 'foo', 'id2 names[0]' );
- assert_true( !testEl.lastChild.properties.names[1], 'id2 names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.firstChild.properties.length, 1, 'id1 length when appended to document' );
- assert_equals( testEl.firstChild.properties[0], testEl.lastChild, 'id1 properties[0] when appended to document' );
- assert_true( !testEl.firstChild.properties[1], 'id1 properties[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'id1 foo.length when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'id1 foo[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'id1 bar.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.lastChild, 'id1 bar[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'id1 bar[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'id1 names.length when appended to document' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'id1 names[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.names[1], 'id1 names[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.length, 1, 'id2 length when appended to document' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'id2 properties[0] when appended to document' );
- assert_true( !testEl.lastChild.properties[1], 'id2 properties[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 1, 'id2 foo.length when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo')[0], testEl.firstChild, 'id2 foo[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[1], 'id2 foo[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'id2 bar.length when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'id2 bar[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'id2 names.length when appended to document' );
- assert_equals( testEl.lastChild.properties.names[0], 'foo', 'id2 names[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.names[1], 'id2 names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'mutually referencing siblings');
-test(function () {
- //Root has 2 properties, foo and bar
- //Each itemscope has one property, pointing to the other one
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div id="id1" itemprop="foo" itemscope itemref="id2"></div><div id="id2" itemprop="bar" itemscope itemref="id1"></div>');
- assert_equals( testEl.properties.length, 2, 'root length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'root properties[0]' );
- assert_equals( testEl.properties[1], testEl.lastChild, 'root properties[1]' );
- assert_true( !testEl.properties[2], 'root properties[2]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'root foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'root foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'root foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'root bar.length' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'root bar[0]' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'root bar[1]' );
- assert_equals( testEl.properties.names.length, 2, 'root names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'root names[0]' );
- assert_equals( testEl.properties.names[1], 'bar', 'root names[1]' );
- assert_true( !testEl.properties.names[2], 'root names[2]' );
- assert_equals( testEl.firstChild.properties.length, 1, 'id1 length' );
- assert_equals( testEl.firstChild.properties[0], testEl.lastChild, 'id1 properties[0]' );
- assert_true( !testEl.firstChild.properties[1], 'id1 properties[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'id1 foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'id1 foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'id1 bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.lastChild, 'id1 bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'id1 bar[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'id1 names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'id1 names[0]' );
- assert_true( !testEl.firstChild.properties.names[1], 'id1 names[1]' );
- assert_equals( testEl.lastChild.properties.length, 1, 'id2 length' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'id2 properties[0]' );
- assert_true( !testEl.lastChild.properties[1], 'id2 properties[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 1, 'id2 foo.length' );
- assert_equals( testEl.lastChild.properties.namedItem('foo')[0], testEl.firstChild, 'id2 foo[0]' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[1], 'id2 foo[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'id2 bar.length' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'id2 bar[0]' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'id2 names.length' );
- assert_equals( testEl.lastChild.properties.names[0], 'foo', 'id2 names[0]' );
- assert_true( !testEl.lastChild.properties.names[1], 'id2 names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 2, 'root length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'root properties[0] when appended to document' );
- assert_equals( testEl.properties[1], testEl.lastChild, 'root properties[1] when appended to document' );
- assert_true( !testEl.properties[2], 'root properties[2] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'root foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'root foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'root foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'root bar.length when appended to document' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'root bar[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'root bar[1] when appended to document' );
- assert_equals( testEl.properties.names.length, 2, 'root names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'root names[0] when appended to document' );
- assert_equals( testEl.properties.names[1], 'bar', 'root names[1] when appended to document' );
- assert_true( !testEl.properties.names[2], 'root names[2] when appended to document' );
- assert_equals( testEl.firstChild.properties.length, 1, 'id1 length when appended to document' );
- assert_equals( testEl.firstChild.properties[0], testEl.lastChild, 'id1 properties[0] when appended to document' );
- assert_true( !testEl.firstChild.properties[1], 'id1 properties[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'id1 foo.length when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'id1 foo[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'id1 bar.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.lastChild, 'id1 bar[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'id1 bar[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.names.length, 1, 'id1 names.length when appended to document' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'id1 names[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.names[1], 'id1 names[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.length, 1, 'id2 length when appended to document' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'id2 properties[0] when appended to document' );
- assert_true( !testEl.lastChild.properties[1], 'id2 properties[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 1, 'id2 foo.length when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo')[0], testEl.firstChild, 'id2 foo[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[1], 'id2 foo[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'id2 bar.length when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'id2 bar[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'id2 names.length when appended to document' );
- assert_equals( testEl.lastChild.properties.names[0], 'foo', 'id2 names[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.names[1], 'id2 names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'mutually referencing siblings with item parent');
-test(function () {
- //Root has two properties, foo and bar
- //Bar has two properties, baz and qux
- //Qux has one property, bar
- var testEl = makeEl('div',{itemscope:'itemscope'},'<div itemprop="foo"></div><div id="id1" itemprop="bar" itemscope><div itemprop="baz"></div><div itemprop="qux" itemscope itemref="id1"></div></div>');
- assert_equals( testEl.properties.length, 2, 'root length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'root properties[0]' );
- assert_equals( testEl.properties[1], testEl.lastChild, 'root properties[1]' );
- assert_true( !testEl.properties[2], 'root properties[2]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'root foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'root foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'root foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'root bar.length' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'root bar[0]' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'root bar[1]' );
- assert_equals( testEl.properties.namedItem('baz').length, 0, 'root baz.length' );
- assert_true( !testEl.properties.namedItem('baz')[0], 'root baz[0]' );
- assert_equals( testEl.properties.namedItem('qux').length, 0, 'root qux.length' );
- assert_true( !testEl.properties.namedItem('qux')[0], 'root qux[0]' );
- assert_equals( testEl.properties.names.length, 2, 'root names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'root names[0]' );
- assert_equals( testEl.properties.names[1], 'bar', 'root names[1]' );
- assert_true( !testEl.properties.names[2], 'root names[2]' );
- assert_equals( testEl.lastChild.properties.length, 2, 'bar length' );
- assert_equals( testEl.lastChild.properties[0], testEl.lastChild.firstChild, 'bar properties[0]' );
- assert_equals( testEl.lastChild.properties[1], testEl.lastChild.lastChild, 'bar properties[1]' );
- assert_true( !testEl.lastChild.properties[2], 'bar properties[2]' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 0, 'bar foo.length' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[0], 'bar foo[0]' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'bar bar.length' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'bar bar[0]' );
- assert_equals( testEl.lastChild.properties.namedItem('baz').length, 1, 'bar baz.length' );
- assert_equals( testEl.lastChild.properties.namedItem('baz')[0], testEl.lastChild.firstChild, 'bar baz[0]' );
- assert_true( !testEl.lastChild.properties.namedItem('baz')[1], 'bar baz[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('qux').length, 1, 'bar qux.length' );
- assert_equals( testEl.lastChild.properties.namedItem('qux')[0], testEl.lastChild.lastChild, 'bar qux[0]' );
- assert_true( !testEl.lastChild.properties.namedItem('qux')[1], 'bar qux[1]' );
- assert_equals( testEl.lastChild.properties.names.length, 2, 'bar names.length' );
- assert_equals( testEl.lastChild.properties.names[0], 'baz', 'bar names[0]' );
- assert_equals( testEl.lastChild.properties.names[1], 'qux', 'bar names[1]' );
- assert_true( !testEl.lastChild.properties.names[2], 'bar names[2]' );
- assert_equals( testEl.lastChild.lastChild.properties.length, 1, 'qux length' );
- assert_equals( testEl.lastChild.lastChild.properties[0], testEl.lastChild, 'qux properties[0]' );
- assert_true( !testEl.lastChild.lastChild.properties[1], 'qux properties[1]' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('foo').length, 0, 'qux foo.length' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('foo')[0], 'qux foo[0]' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('bar').length, 1, 'qux bar.length' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('bar')[0], testEl.lastChild, 'qux bar[0]' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('bar')[1], 'qux bar[1]' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('baz').length, 0, 'qux baz.length' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('baz')[0], 'qux baz[0]' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('qux').length, 0, 'qux qux.length' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('qux')[0], 'qux qux[0]' );
- assert_equals( testEl.lastChild.lastChild.properties.names.length, 1, 'qux names.length' );
- assert_equals( testEl.lastChild.lastChild.properties.names[0], 'bar', 'qux names[0]' );
- assert_true( !testEl.lastChild.lastChild.properties.names[1], 'qux names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 2, 'root length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'root properties[0] when appended to document' );
- assert_equals( testEl.properties[1], testEl.lastChild, 'root properties[1] when appended to document' );
- assert_true( !testEl.properties[2], 'root properties[2] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'root foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'root foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'root foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'root bar.length when appended to document' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.lastChild, 'root bar[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'root bar[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('baz').length, 0, 'root baz.length when appended to document' );
- assert_true( !testEl.properties.namedItem('baz')[0], 'root baz[0] when appended to document' );
- assert_equals( testEl.properties.namedItem('qux').length, 0, 'root qux.length when appended to document' );
- assert_true( !testEl.properties.namedItem('qux')[0], 'root qux[0] when appended to document' );
- assert_equals( testEl.properties.names.length, 2, 'root names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'root names[0] when appended to document' );
- assert_equals( testEl.properties.names[1], 'bar', 'root names[1] when appended to document' );
- assert_true( !testEl.properties.names[2], 'root names[2] when appended to document' );
- assert_equals( testEl.lastChild.properties.length, 2, 'bar length when appended to document' );
- assert_equals( testEl.lastChild.properties[0], testEl.lastChild.firstChild, 'bar properties[0] when appended to document' );
- assert_equals( testEl.lastChild.properties[1], testEl.lastChild.lastChild, 'bar properties[1] when appended to document' );
- assert_true( !testEl.lastChild.properties[2], 'bar properties[2] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 0, 'bar foo.length when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[0], 'bar foo[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 0, 'bar bar.length when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[0], 'bar bar[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('baz').length, 1, 'bar baz.length when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('baz')[0], testEl.lastChild.firstChild, 'bar baz[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('baz')[1], 'bar baz[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('qux').length, 1, 'bar qux.length when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('qux')[0], testEl.lastChild.lastChild, 'bar qux[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('qux')[1], 'bar qux[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.names.length, 2, 'bar names.length when appended to document' );
- assert_equals( testEl.lastChild.properties.names[0], 'baz', 'bar names[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.names[1], 'qux', 'bar names[1] when appended to document' );
- assert_true( !testEl.lastChild.properties.names[2], 'bar names[2] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.length, 1, 'qux length when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties[0], testEl.lastChild, 'qux properties[0] when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties[1], 'qux properties[1] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('foo').length, 0, 'qux foo.length when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('foo')[0], 'qux foo[0] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('bar').length, 1, 'qux bar.length when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('bar')[0], testEl.lastChild, 'qux bar[0] when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('bar')[1], 'qux bar[1] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('baz').length, 0, 'qux baz.length when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('baz')[0], 'qux baz[0] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.namedItem('qux').length, 0, 'qux qux.length when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties.namedItem('qux')[0], 'qux qux[0] when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.names.length, 1, 'qux names.length when appended to document' );
- assert_equals( testEl.lastChild.lastChild.properties.names[0], 'bar', 'qux names[0] when appended to document' );
- assert_true( !testEl.lastChild.lastChild.properties.names[1], 'qux names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'itemref referencing parent item');
-test(function () {
- //foo has one property, bar
- var testEl = makeEl('div',{id:'id1'},'<div itemprop="bar"></div><div itemscope itemref="id1" itemprop="foo"></div>');
- assert_equals( testEl.lastChild.properties.length, 1, 'length' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'properties[0]' );
- assert_true( !testEl.lastChild.properties[1], 'properties[1]' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 0, 'foo.length' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[0], 'foo[0]' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 1, 'bar.length' );
- assert_equals( testEl.lastChild.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0]' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[1], 'bar[1]' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'names.length' );
- assert_equals( testEl.lastChild.properties.names[0], 'bar', 'names[0]' );
- assert_true( !testEl.lastChild.properties.names[1], 'names[1]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.lastChild.properties.length, 1, 'length when appended to document' );
- assert_equals( testEl.lastChild.properties[0], testEl.firstChild, 'properties[0] when appended to document' );
- assert_true( !testEl.lastChild.properties[1], 'properties[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('foo').length, 0, 'foo.length when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('foo')[0], 'foo[0] when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('bar').length, 1, 'bar.length when appended to document' );
- assert_equals( testEl.lastChild.properties.namedItem('bar')[0], testEl.firstChild, 'bar[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.namedItem('bar')[1], 'bar[1] when appended to document' );
- assert_equals( testEl.lastChild.properties.names.length, 1, 'names.length when appended to document' );
- assert_equals( testEl.lastChild.properties.names[0], 'bar', 'names[0] when appended to document' );
- assert_true( !testEl.lastChild.properties.names[1], 'names[1] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'itemref referencing parent without itemscope');
-test(function () {
- var testDiv = makeEl('div', {itemprop:'bar', id:'foo'}, '');
- var testSpan = makeEl('span', {itemscope:'itemscope', itemref: 'foo', id: 'foo'}, '');
- document.body.appendChild(testDiv);
- document.body.appendChild(testSpan);
- assert_equals(testSpan.properties.length, 1, 'has one property');
- assert_equals(testSpan.properties[0], testDiv, 'has first property');
- assert_equals(testSpan.properties.item(0), testDiv, 'has first property');
- assert_equals(testSpan.properties.namedItem('bar').length, 1, 'has 1 foo property');
- assert_equals(testSpan.properties.namedItem('bar').item(0), testDiv, 'div is foo property');
- assert_equals(testSpan.properties.names.length, 1, 'only has one property');
- document.body.removeChild(testDiv);
- document.body.removeChild(testSpan);
-}, 'itemref referencing element with same id');
-test(function () {
- //Root has three properties, foo, bar and baz
- //Foo has two properties, bar and baz
- var testEl = makeEl('div',{itemscope:'itemscope',itemref:'id1'},'<div itemscope itemprop="foo"><div itemprop="bar" id="id1"><div itemprop="baz"></div></div></div>');
- assert_equals( testEl.properties.length, 3, 'outer length' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0]' );
- assert_equals( testEl.properties[1], testEl.firstChild.firstChild, 'outer properties[1]' );
- assert_equals( testEl.properties[2], testEl.firstChild.firstChild.firstChild, 'outer properties[2]' );
- assert_true( !testEl.properties[3], 'outer properties[3]' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0]' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1]' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'outer bar.length' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'outer bar[0]' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'outer bar[1]' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'outer baz.length' );
- assert_equals( testEl.properties.namedItem('baz')[0], testEl.firstChild.firstChild.firstChild, 'outer baz[0]' );
- assert_true( !testEl.properties.namedItem('baz')[1], 'outer baz[1]' );
- assert_equals( testEl.properties.names.length, 3, 'outer names.length' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0]' );
- assert_equals( testEl.properties.names[1], 'bar', 'outer names[1]' );
- assert_equals( testEl.properties.names[2], 'baz', 'outer names[2]' );
- assert_true( !testEl.properties.names[3], 'outer names[3]' );
- assert_equals( testEl.firstChild.properties.length, 2, 'inner length' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0]' );
- assert_equals( testEl.firstChild.properties[1], testEl.firstChild.firstChild.firstChild, 'inner properties[1]' );
- assert_true( !testEl.firstChild.properties[2], 'inner properties[2]' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0]' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'inner bar[1]' );
- assert_equals( testEl.firstChild.properties.namedItem('baz').length, 1, 'inner baz.length' );
- assert_equals( testEl.firstChild.properties.namedItem('baz')[0], testEl.firstChild.firstChild.firstChild, 'inner baz[0]' );
- assert_true( !testEl.firstChild.properties.namedItem('baz')[1], 'inner baz[1]' );
- assert_equals( testEl.firstChild.properties.names.length, 2, 'inner names.length' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0]' );
- assert_equals( testEl.firstChild.properties.names[1], 'baz', 'inner names[1]' );
- assert_true( !testEl.firstChild.properties.names[2], 'inner names[2]' );
- document.body.appendChild(testEl);
- try {
- assert_equals( testEl.properties.length, 3, 'outer length when appended to document' );
- assert_equals( testEl.properties[0], testEl.firstChild, 'outer properties[0] when appended to document' );
- assert_equals( testEl.properties[1], testEl.firstChild.firstChild, 'outer properties[1] when appended to document' );
- assert_equals( testEl.properties[2], testEl.firstChild.firstChild.firstChild, 'outer properties[2] when appended to document' );
- assert_true( !testEl.properties[3], 'outer properties[3] when appended to document' );
- assert_equals( testEl.properties.namedItem('foo').length, 1, 'outer foo.length when appended to document' );
- assert_equals( testEl.properties.namedItem('foo')[0], testEl.firstChild, 'outer foo[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('foo')[1], 'outer foo[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('bar').length, 1, 'outer bar.length when appended to document' );
- assert_equals( testEl.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'outer bar[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('bar')[1], 'outer bar[1] when appended to document' );
- assert_equals( testEl.properties.namedItem('baz').length, 1, 'outer baz.length when appended to document' );
- assert_equals( testEl.properties.namedItem('baz')[0], testEl.firstChild.firstChild.firstChild, 'outer baz[0] when appended to document' );
- assert_true( !testEl.properties.namedItem('baz')[1], 'outer baz[1] when appended to document' );
- assert_equals( testEl.properties.names.length, 3, 'outer names.length when appended to document' );
- assert_equals( testEl.properties.names[0], 'foo', 'outer names[0] when appended to document' );
- assert_equals( testEl.properties.names[1], 'bar', 'outer names[1] when appended to document' );
- assert_equals( testEl.properties.names[2], 'baz', 'outer names[2] when appended to document' );
- assert_true( !testEl.properties.names[3], 'outer names[3] when appended to document' );
- assert_equals( testEl.firstChild.properties.length, 2, 'inner length when appended to document' );
- assert_equals( testEl.firstChild.properties[0], testEl.firstChild.firstChild, 'inner properties[0] when appended to document' );
- assert_equals( testEl.firstChild.properties[1], testEl.firstChild.firstChild.firstChild, 'inner properties[1] when appended to document' );
- assert_true( !testEl.firstChild.properties[2], 'inner properties[2] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('foo').length, 0, 'inner foo.length when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('foo')[0], 'inner foo[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar').length, 1, 'inner bar.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('bar')[0], testEl.firstChild.firstChild, 'inner bar[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('bar')[1], 'inner bar[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('baz').length, 1, 'inner baz.length when appended to document' );
- assert_equals( testEl.firstChild.properties.namedItem('baz')[0], testEl.firstChild.firstChild.firstChild, 'inner baz[0] when appended to document' );
- assert_true( !testEl.firstChild.properties.namedItem('baz')[1], 'inner baz[1] when appended to document' );
- assert_equals( testEl.firstChild.properties.names.length, 2, 'inner names.length when appended to document' );
- assert_equals( testEl.firstChild.properties.names[0], 'bar', 'inner names[0] when appended to document' );
- assert_equals( testEl.firstChild.properties.names[1], 'baz', 'inner names[1] when appended to document' );
- assert_true( !testEl.firstChild.properties.names[2], 'inner names[2] when appended to document' );
- } catch(e) {
- document.body.removeChild(testEl);
- throw (e);
- }
- document.body.removeChild(testEl);
-}, 'itemref pointing to child of nested itemscope');
-
- </script>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/htmlpropertiescollection/.gitkeep b/tests/wpt/web-platform-tests/microdata/microdata-dom-api/htmlpropertiescollection/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/tests/wpt/web-platform-tests/microdata/microdata-dom-api/htmlpropertiescollection/.gitkeep
+++ /dev/null
diff --git a/tests/wpt/web-platform-tests/tools/manifest/manifest.py b/tests/wpt/web-platform-tests/tools/manifest/manifest.py
index 8a0ea4d34f0..6bc4406626d 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/manifest.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/manifest.py
@@ -354,20 +354,24 @@ class LocalChanges(object):
return self
-def load(tests_root, manifest_path):
+def load(tests_root, manifest):
logger = get_logger()
- if os.path.exists(manifest_path):
- logger.debug("Opening manifest at %s" % manifest_path)
- else:
- logger.debug("Creating new manifest at %s" % manifest_path)
- try:
- with open(manifest_path) as f:
- manifest = Manifest.from_json(tests_root, json.load(f))
- except IOError:
- manifest = Manifest(None)
-
- return manifest
+ # "manifest" is a path or file-like object.
+ if isinstance(manifest, basestring):
+ if os.path.exists(manifest):
+ logger.debug("Opening manifest at %s" % manifest)
+ else:
+ logger.debug("Creating new manifest at %s" % manifest)
+ try:
+ with open(manifest) as f:
+ rv = Manifest.from_json(tests_root, json.load(f))
+ except IOError:
+ rv = Manifest(None)
+ return rv
+
+ return Manifest.from_json(tests_root, json.load(manifest))
+
def write(manifest, manifest_path):
with open(manifest_path, "w") as f:
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html
new file mode 100644
index 00000000000..dde8c27b947
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<title>Test setValueAtTime with startTime in the past</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+function do_test(t, context) {
+ var source = context.createBufferSource();
+ source.buffer =
+ function() {
+ var buffer = context.createBuffer(1, 1, context.sampleRate);
+ buffer.getChannelData(0)[0] = 1.0;
+ return buffer;
+ }();
+ source.loop = true;
+ source.start();
+
+ // Use a ramp of slope 1/sample to measure time.
+ // The end value is the extent of exact precision in single precision float.
+ const rampEnd = Math.pow(2, 24);
+ const rampEndSeconds = rampEnd / context.sampleRate;
+ var test = context.createGain();
+ test.gain.setValueAtTime(0.0, 0.0);
+ test.gain.linearRampToValueAtTime(rampEnd, rampEndSeconds);
+
+ // With a different starting point on the same line, the result should be
+ // the same. |currentTime| may include double precision floating point
+ // rounding errors, so round to nearest integer sample to ignore these.
+ var scheduledSample = Math.round(context.currentTime * context.sampleRate);
+ assert_equals(scheduledSample % 128, 0,
+ "currentTime advances in blocks of 128 samples");
+ var reference = context.createGain();
+ reference.gain.setValueAtTime(scheduledSample, context.currentTime);
+ reference.gain.linearRampToValueAtTime(rampEnd, rampEndSeconds);
+
+ source.connect(test);
+ source.connect(reference);
+
+ var merger = context.createChannelMerger();
+ test.connect(merger, 0, 0);
+ reference.connect(merger, 0, 1);
+
+ var processor = context.createScriptProcessor(0, 2, 0);
+ merger.connect(processor);
+ processor.onaudioprocess =
+ t.step_func_done((e) => {
+ source.stop();
+ processor.onaudioprocess = null;
+
+ var testValue = e.inputBuffer.getChannelData(0)[0];
+ var referenceValue = e.inputBuffer.getChannelData(1)[0];
+
+ assert_equals(testValue, referenceValue,
+ "ramp value matches expected");
+ assert_greater_than_equal(testValue, scheduledSample,
+ "time does not retreat");
+ assert_equals(testValue % 128, 0,
+ "ScriptProcessor blocks align on 128-sample blocks");
+ });
+}
+
+async_test(function(t) {
+ var context = new AudioContext;
+ (function waitForTimeAdvance() {
+ if (context.currentTime == 0) {
+ t.step_timeout(waitForTimeAdvance, 0);
+ } else {
+ do_test(t, context);
+ }
+ })();
+});
+</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/datachannel-emptystring.html b/tests/wpt/web-platform-tests/webrtc/datachannel-emptystring.html
index 057b0eaee82..9cd32a3bca1 100644
--- a/tests/wpt/web-platform-tests/webrtc/datachannel-emptystring.html
+++ b/tests/wpt/web-platform-tests/webrtc/datachannel-emptystring.html
@@ -17,11 +17,6 @@ and ensures that an empty string sent by one is received by the second.
<!-- These files are in place when executing on W3C. -->
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="/common/vendor-prefix.js"
- data-prefixed-objects=
- '[{"ancestors":["window"], "name":"RTCPeerConnection"}]'
- >
- </script>
<script type="text/javascript">
var test = async_test('Can send empty strings across a WebRTC data channel.');
diff --git a/tests/wpt/web-platform-tests/webrtc/no-media-call.html b/tests/wpt/web-platform-tests/webrtc/no-media-call.html
index f3eeeb8a99a..5059ba6dbc4 100644
--- a/tests/wpt/web-platform-tests/webrtc/no-media-call.html
+++ b/tests/wpt/web-platform-tests/webrtc/no-media-call.html
@@ -17,12 +17,6 @@ This test uses the legacy callback API with no media, and thus does not require
<!-- These files are in place when executing on W3C. -->
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="/common/vendor-prefix.js"
- data-prefixed-objects=
- '[{"ancestors":["window"], "name":"RTCPeerConnection"},
- {"ancestors":["window"], "name":"RTCSessionDescription"}]'
- >
- </script>
<script type="text/javascript">
var test = async_test('Can set up a basic WebRTC call with no data.');
diff --git a/tests/wpt/web-platform-tests/webrtc/promises-call.html b/tests/wpt/web-platform-tests/webrtc/promises-call.html
index fc7fb03cd7e..d83508a38ae 100644
--- a/tests/wpt/web-platform-tests/webrtc/promises-call.html
+++ b/tests/wpt/web-platform-tests/webrtc/promises-call.html
@@ -17,11 +17,6 @@ This test uses data only, and thus does not require fake media devices.
<!-- These files are in place when executing on W3C. -->
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="/common/vendor-prefix.js"
- data-prefixed-objects=
- '[{"ancestors":["window"], "name":"RTCPeerConnection"}]'
- >
- </script>
<script type="text/javascript">
var test = async_test('Can set up a basic WebRTC call with only data using promises.');
diff --git a/tests/wpt/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html b/tests/wpt/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html
index 286d8b1fd0e..0d4ff606330 100644
--- a/tests/wpt/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html
+++ b/tests/wpt/web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html
@@ -14,32 +14,33 @@
<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src="/common/vendor-prefix.js"
- data-prefixed-objects=
- '[{"ancestors":["window"], "name":"RTCPeerConnection"},
- {"ancestors":["window"], "name":"RTCSessionDescription"},
- {"ancestors":["window"], "name":"RTCIceCandidate"}]'>
-</script>
<script src=/resources/WebIDLParser.js></script>
<script src=/resources/idlharness.js></script>
-<!-- The IDL is copied from the 06 March 2015 editors' draft. -->
+<!-- The IDL is copied from the 22 September 2015 editors' draft. -->
<script type="text/plain">
-[ Constructor (RTCConfiguration configuration)]
+interface EventTarget {
+ // Only a dummy definition is needed here.
+};
+[ Constructor (optional RTCConfiguration configuration)]
interface RTCPeerConnection : EventTarget {
Promise<RTCSessionDescription> createOffer (optional RTCOfferOptions options);
- Promise<RTCSessionDescription> createAnswer ();
+ Promise<RTCSessionDescription> createAnswer (optional RTCAnswerOptions options);
Promise<void> setLocalDescription (RTCSessionDescription description);
readonly attribute RTCSessionDescription? localDescription;
+ readonly attribute RTCSessionDescription? currentLocalDescription;
+ readonly attribute RTCSessionDescription? pendingLocalDescription;
Promise<void> setRemoteDescription (RTCSessionDescription description);
readonly attribute RTCSessionDescription? remoteDescription;
- readonly attribute RTCSignalingState signalingState;
- void updateIce (RTCConfiguration configuration);
+ readonly attribute RTCSessionDescription? currentRemoteDescription;
+ readonly attribute RTCSessionDescription? pendingRemoteDescription;
Promise<void> addIceCandidate (RTCIceCandidate candidate);
+ readonly attribute RTCSignalingState signalingState;
readonly attribute RTCIceGatheringState iceGatheringState;
readonly attribute RTCIceConnectionState iceConnectionState;
readonly attribute boolean? canTrickleIceCandidates;
RTCConfiguration getConfiguration ();
+ void setConfiguration (RTCConfiguration configuration);
void close ();
attribute EventHandler onnegotiationneeded;
attribute EventHandler onicecandidate;
@@ -54,6 +55,11 @@ partial interface RTCPeerConnection {
void createAnswer (RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
void setRemoteDescription (RTCSessionDescription description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
void addIceCandidate (RTCIceCandidate candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
+ void getStats (MediaStreamTrack? selector, RTCStatsCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
+};
+
+partial interface RTCPeerConnection {
+ static Promise<RTCCertificate> generateCertificate (AlgorithmIdentifier keygenAlgorithm);
};
partial interface RTCPeerConnection {
@@ -70,21 +76,18 @@ partial interface RTCPeerConnection {
};
partial interface RTCPeerConnection {
- RTCDTMFSender createDTMFSender (MediaStreamTrack track);
+ readonly attribute RTCDTMFSender? dtmf;
};
partial interface RTCPeerConnection {
- void getStats (MediaStreamTrack? selector, RTCStatsCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
+ Promise<RTCStatsReport> getStats (optional MediaStreamTrack? selector);
};
partial interface RTCPeerConnection {
- void setIdentityProvider (DOMString provider, optional DOMString protocol, optional DOMString username);
- void getIdentityAssertion ();
- readonly attribute RTCIdentityAssertion? peerIdentity;
- attribute EventHandler onidentityresult;
- attribute EventHandler onpeeridentity;
- attribute EventHandler onidpassertionerror;
- attribute EventHandler onidpvalidationerror;
+ void setIdentityProvider (DOMString provider, optional DOMString protocol, optional DOMString usernameHint);
+ Promise<DOMString> getIdentityAssertion ();
+ readonly attribute Promise<RTCIdentityAssertion> peerIdentity;
+ readonly attribute DOMString? idpLoginUrl;
};
</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/simplecall.html b/tests/wpt/web-platform-tests/webrtc/simplecall.html
index 77583f9a509..69858689409 100644
--- a/tests/wpt/web-platform-tests/webrtc/simplecall.html
+++ b/tests/wpt/web-platform-tests/webrtc/simplecall.html
@@ -24,10 +24,7 @@ instance --use-fake-device-for-media-stream for Chrome.
<script src="/resources/testharnessreport.js"></script>
<script src="/common/vendor-prefix.js"
data-prefixed-objects=
- '[{"ancestors":["navigator"], "name":"getUserMedia"},
- {"ancestors":["window"], "name":"RTCPeerConnection"},
- {"ancestors":["window"], "name":"RTCSessionDescription"},
- {"ancestors":["window"], "name":"RTCIceCandidate"}]'
+ '[{"ancestors":["navigator"], "name":"getUserMedia"}]'
data-prefixed-prototypes=
'[{"ancestors":["HTMLMediaElement"],"name":"srcObject"}]'>
</script>