WebKit Bugzilla
Attachment 340803 Details for
Bug 185805
: Update CSSOM WPT tests.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-185805-20180520221918.patch (text/plain), 764.91 KB, created by
Emilio Cobos Álvarez (:emilio)
on 2018-05-20 13:19:25 PDT
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Emilio Cobos Álvarez (:emilio)
Created:
2018-05-20 13:19:25 PDT
Size:
764.91 KB
patch
obsolete
>Subversion Revision: 232002 >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index a261cb3715e8ef9e3ac9e7787282de6b1e04fba3..686bceb9d83aa65c583641409df041f197357b66 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,8 +1,19 @@ >+2018-05-20 Emilio Cobos Ãlvarez <emilio@crisal.io> >+ >+ Update CSSOM WPT tests. >+ https://bugs.webkit.org/show_bug.cgi?id=185805 >+ >+ Reviewed by Frederic Wang. >+ >+ Update CSSOM WPT tests. >+ >+ * TestExpectations: >+ > 2018-05-18 Commit Queue <commit-queue@webkit.org> > > Unreviewed, rolling out r231982. > https://bugs.webkit.org/show_bug.cgi?id=185793 > > Caused layout test failures (Requested by realdawei on > #webkit). > >diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog >index 19edc7cfd521290a770e58cfd6fcfcf0d3d4fdb0..f55758ba937e81b3a86be1ec8d144e181430e645 100644 >--- a/LayoutTests/imported/w3c/ChangeLog >+++ b/LayoutTests/imported/w3c/ChangeLog >@@ -1,8 +1,250 @@ >+2018-05-20 Emilio Cobos Ãlvarez <emilio@crisal.io> >+ >+ Update CSSOM WPT tests. >+ https://bugs.webkit.org/show_bug.cgi?id=185805 >+ >+ They've been moved under the css/ directory. >+ >+ This has been done with: >+ >+ ./Tools/Scripts/import-w3c-tests web-platform-tests/css/cssom >+ rm -rf LayoutTests/imported/w3c/web-platform-tests/cssom >+ ./Tools/Scripts/run-webkit-tests -t Debug LayoutTests/imported/w3c/web-platform-tests/css/cssom/ --reset-results >+ >+ And ensuring that the same run without --reset-results also succeeded. >+ >+ I manually removed entries in import-expectations.json which no longer >+ correspond to an upstream directory. >+ >+ Reviewed by Frederic Wang. >+ >+ * resources/import-expectations.json: >+ * resources/resource-files.json: >+ * web-platform-tests/css/cssom/CSS-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSS-expected.txt. >+ * web-platform-tests/css/cssom/CSS.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSS.html. >+ * web-platform-tests/css/cssom/CSSKeyframeRule-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule-expected.txt. >+ * web-platform-tests/css/cssom/CSSKeyframeRule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html. >+ * web-platform-tests/css/cssom/CSSKeyframesRule-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule-expected.txt. >+ * web-platform-tests/css/cssom/CSSKeyframesRule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule.html. >+ * web-platform-tests/css/cssom/CSSNamespaceRule-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule-expected.txt. >+ * web-platform-tests/css/cssom/CSSNamespaceRule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule.html. >+ * web-platform-tests/css/cssom/CSSRuleList-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList-expected.txt. >+ * web-platform-tests/css/cssom/CSSRuleList.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList.html. >+ * web-platform-tests/css/cssom/CSSStyleRule-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule-expected.txt. >+ * web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-expected.txt: Added. >+ * web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace-expected.txt: Added. >+ * web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace.html: Added. >+ * web-platform-tests/css/cssom/CSSStyleRule-set-selectorText.html: Added. >+ * web-platform-tests/css/cssom/CSSStyleRule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html. >+ * web-platform-tests/css/cssom/CSSStyleSheet-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet-expected.txt. >+ * web-platform-tests/css/cssom/CSSStyleSheet.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html. >+ * web-platform-tests/css/cssom/MediaList-expected.txt: Added. >+ * web-platform-tests/css/cssom/MediaList.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html. >+ * web-platform-tests/css/cssom/MediaList2-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2-expected.txt. >+ * web-platform-tests/css/cssom/MediaList2.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml. >+ * web-platform-tests/css/cssom/OWNERS: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS. >+ * web-platform-tests/css/cssom/StyleSheetList-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList-expected.txt. >+ * web-platform-tests/css/cssom/StyleSheetList.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html. >+ * web-platform-tests/css/cssom/computed-style-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001-expected.txt. >+ * web-platform-tests/css/cssom/computed-style-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html. >+ * web-platform-tests/css/cssom/computed-style-002-expected.txt: Added. >+ * web-platform-tests/css/cssom/computed-style-002.html: Added. >+ * web-platform-tests/css/cssom/computed-style-003-expected.txt: Added. >+ * web-platform-tests/css/cssom/computed-style-003.html: Added. >+ * web-platform-tests/css/cssom/computed-style-004-expected.txt: Added. >+ * web-platform-tests/css/cssom/computed-style-004.html: Added. >+ * web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Added. >+ * web-platform-tests/css/cssom/css-style-attr-decl-block.html: Added. >+ * web-platform-tests/css/cssom/css-style-attribute-modifications-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications-expected.txt. >+ * web-platform-tests/css/cssom/css-style-attribute-modifications.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications.html. >+ * web-platform-tests/css/cssom/css-style-declaration-modifications-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications-expected.txt. >+ * web-platform-tests/css/cssom/css-style-declaration-modifications.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications.html. >+ * web-platform-tests/css/cssom/css-style-reparse-expected.txt: Added. >+ * web-platform-tests/css/cssom/css-style-reparse.html: Added. >+ * web-platform-tests/css/cssom/cssimportrule-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssimportrule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule.html. >+ * web-platform-tests/css/cssom/cssom-cssText-serialize-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize-expected.txt. >+ * web-platform-tests/css/cssom/cssom-cssText-serialize.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize.html. >+ * web-platform-tests/css/cssom/cssom-cssstyledeclaration-set-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt. >+ * web-platform-tests/css/cssom/cssom-cssstyledeclaration-set.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set.html. >+ * web-platform-tests/css/cssom/cssom-fontfacerule-constructors-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt. >+ * web-platform-tests/css/cssom/cssom-fontfacerule-constructors.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors.html. >+ * web-platform-tests/css/cssom/cssom-fontfacerule-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssom-fontfacerule.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule.html. >+ * web-platform-tests/css/cssom/cssom-ruleTypeAndOrder-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder-expected.txt. >+ * web-platform-tests/css/cssom/cssom-ruleTypeAndOrder.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder.html. >+ * web-platform-tests/css/cssom/cssom-setProperty-shorthand-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt. >+ * web-platform-tests/css/cssom/cssom-setProperty-shorthand.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand.html. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-important-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext-important.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-csstext.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext.html. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutability-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutability.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability.html. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004.html: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-setter-order-expected.txt: Added. >+ * web-platform-tests/css/cssom/cssstyledeclaration-setter-order.html: Added. >+ * web-platform-tests/css/cssom/escape-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/escape-expected.txt. >+ * web-platform-tests/css/cssom/escape.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/escape.html. >+ * web-platform-tests/css/cssom/font-shorthand-serialization-expected.txt: Added. >+ * web-platform-tests/css/cssom/font-shorthand-serialization.html: Added. >+ * web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt: Added. >+ * web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html: Added. >+ * web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc-expected.txt: Added. >+ * web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc.html: Added. >+ * web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt. >+ * web-platform-tests/css/cssom/getComputedStyle-pseudo.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html. >+ * web-platform-tests/css/cssom/historical-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/historical-expected.txt. >+ * web-platform-tests/css/cssom/historical.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/historical.html. >+ * web-platform-tests/css/cssom/inline-style-001-expected.txt: Added. >+ * web-platform-tests/css/cssom/inline-style-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001.html. >+ * web-platform-tests/css/cssom/insertRule-charset-no-index-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index-expected.txt. >+ * web-platform-tests/css/cssom/insertRule-charset-no-index.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html. >+ * web-platform-tests/css/cssom/insertRule-import-no-index-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index-expected.txt. >+ * web-platform-tests/css/cssom/insertRule-import-no-index.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html. >+ * web-platform-tests/css/cssom/insertRule-namespace-no-index-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt. >+ * web-platform-tests/css/cssom/insertRule-namespace-no-index.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html. >+ * web-platform-tests/css/cssom/insertRule-no-index-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index-expected.txt. >+ * web-platform-tests/css/cssom/insertRule-no-index.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index.html. >+ * web-platform-tests/css/cssom/insertRule-syntax-error-01-expected.txt: Added. >+ * web-platform-tests/css/cssom/insertRule-syntax-error-01.html: Added. >+ * web-platform-tests/css/cssom/interfaces-expected.txt: Added. >+ * web-platform-tests/css/cssom/interfaces.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces.html. >+ * web-platform-tests/css/cssom/medialist-dynamic-001-expected.html: Added. >+ * web-platform-tests/css/cssom/medialist-dynamic-001.html: Added. >+ * web-platform-tests/css/cssom/medialist-interfaces-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001-expected.txt. >+ * web-platform-tests/css/cssom/medialist-interfaces-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001.html. >+ * web-platform-tests/css/cssom/medialist-interfaces-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002-expected.txt. >+ * web-platform-tests/css/cssom/medialist-interfaces-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002.html. >+ * web-platform-tests/css/cssom/medialist-interfaces-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003-expected.txt. >+ * web-platform-tests/css/cssom/medialist-interfaces-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003.html. >+ * web-platform-tests/css/cssom/medialist-interfaces-004-expected.txt: Added. >+ * web-platform-tests/css/cssom/medialist-interfaces-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html. >+ * web-platform-tests/css/cssom/overflow-serialization-expected.txt: Added. >+ * web-platform-tests/css/cssom/overflow-serialization.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html. >+ * web-platform-tests/css/cssom/preferred-stylesheet-order-expected.txt: Added. >+ * web-platform-tests/css/cssom/preferred-stylesheet-order.html: Added. >+ * web-platform-tests/css/cssom/preferred-stylesheet-reversed-order-expected.txt: Added. >+ * web-platform-tests/css/cssom/preferred-stylesheet-reversed-order.html: Added. >+ * web-platform-tests/css/cssom/selectorSerialize-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize-expected.txt. >+ * web-platform-tests/css/cssom/selectorSerialize.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html. >+ * web-platform-tests/css/cssom/selectorText-modification-restyle-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html. >+ * web-platform-tests/css/cssom/selectorText-modification-restyle-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html. >+ * web-platform-tests/css/cssom/selectorText-modification-restyle-002-expected.txt: Added. >+ * web-platform-tests/css/cssom/selectorText-modification-restyle-002.html: Added. >+ * web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt. >+ * web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html. >+ * web-platform-tests/css/cssom/serialize-namespaced-type-selectors-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt. >+ * web-platform-tests/css/cssom/serialize-namespaced-type-selectors.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html. >+ * web-platform-tests/css/cssom/serialize-values-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values-expected.txt. >+ * web-platform-tests/css/cssom/serialize-values.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html. >+ * web-platform-tests/css/cssom/serialize-variable-reference-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference-expected.txt. >+ * web-platform-tests/css/cssom/serialize-variable-reference.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference.html. >+ * web-platform-tests/css/cssom/setproperty-null-undefined-expected.txt: Added. >+ * web-platform-tests/css/cssom/setproperty-null-undefined.html: Added. >+ * web-platform-tests/css/cssom/shorthand-serialization-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization-expected.txt. >+ * web-platform-tests/css/cssom/shorthand-serialization.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization.html. >+ * web-platform-tests/css/cssom/shorthand-values-expected.txt: Added. >+ * web-platform-tests/css/cssom/shorthand-values.html: Added. >+ * web-platform-tests/css/cssom/style-sheet-interfaces-001-expected.txt: Added. >+ * web-platform-tests/css/cssom/style-sheet-interfaces-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001.html. >+ * web-platform-tests/css/cssom/style-sheet-interfaces-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt. >+ * web-platform-tests/css/cssom/style-sheet-interfaces-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002.html. >+ * web-platform-tests/css/cssom/stylesheet-replacedata-dynamic-expected.html: Added. >+ * web-platform-tests/css/cssom/stylesheet-replacedata-dynamic.html: Added. >+ * web-platform-tests/css/cssom/stylesheet-same-origin.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.css. >+ * web-platform-tests/css/cssom/stylesheet-same-origin.sub-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt. >+ * web-platform-tests/css/cssom/stylesheet-same-origin.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub.html. >+ * web-platform-tests/css/cssom/stylesheet-title-expected.txt: Added. >+ * web-platform-tests/css/cssom/stylesheet-title.html: Added. >+ * web-platform-tests/css/cssom/support/1x1-green.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-green.png. >+ * web-platform-tests/css/cssom/support/1x1-lime.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-lime.png. >+ * web-platform-tests/css/cssom/support/1x1-maroon.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-maroon.png. >+ * web-platform-tests/css/cssom/support/1x1-navy.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-navy.png. >+ * web-platform-tests/css/cssom/support/1x1-red.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-red.png. >+ * web-platform-tests/css/cssom/support/1x1-white.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-white.png. >+ * web-platform-tests/css/cssom/support/60x60-gg-rr.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-gg-rr.png. >+ * web-platform-tests/css/cssom/support/60x60-green.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-green.png. >+ * web-platform-tests/css/cssom/support/60x60-red.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-red.png. >+ * web-platform-tests/css/cssom/support/README: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/README. >+ * web-platform-tests/css/cssom/support/a-green.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/a-green.css. >+ * web-platform-tests/css/cssom/support/b-green.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/b-green.css. >+ * web-platform-tests/css/cssom/support/c-red.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/c-red.css. >+ * web-platform-tests/css/cssom/support/cat.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/cat.png. >+ * web-platform-tests/css/cssom/support/import-charset.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-charset.css. >+ * web-platform-tests/css/cssom/support/import-green.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-green.css. >+ * web-platform-tests/css/cssom/support/import-red.css: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-red.css. >+ * web-platform-tests/css/cssom/support/pattern-grg-rgr-grg.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rgr-grg.png. >+ * web-platform-tests/css/cssom/support/pattern-grg-rrg-rgg.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png. >+ * web-platform-tests/css/cssom/support/pattern-rgr-grg-rgr.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png. >+ * web-platform-tests/css/cssom/support/pattern-tr.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-tr.png. >+ * web-platform-tests/css/cssom/support/ruler-h-50%.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50%.png. >+ * web-platform-tests/css/cssom/support/ruler-h-50px.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50px.png. >+ * web-platform-tests/css/cssom/support/ruler-v-100px.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-100px.png. >+ * web-platform-tests/css/cssom/support/ruler-v-50px.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-50px.png. >+ * web-platform-tests/css/cssom/support/square-purple.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-purple.png. >+ * web-platform-tests/css/cssom/support/square-teal.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-teal.png. >+ * web-platform-tests/css/cssom/support/square-white.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-white.png. >+ * web-platform-tests/css/cssom/support/support/README: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/README. >+ * web-platform-tests/css/cssom/support/support/swatch-green.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-green.png. >+ * web-platform-tests/css/cssom/support/support/swatch-red.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-red.png. >+ * web-platform-tests/css/cssom/support/support/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/w3c-import.log. >+ * web-platform-tests/css/cssom/support/swatch-blue.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-blue.png. >+ * web-platform-tests/css/cssom/support/swatch-green.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-green.png. >+ * web-platform-tests/css/cssom/support/swatch-lime.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-lime.png. >+ * web-platform-tests/css/cssom/support/swatch-orange.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-orange.png. >+ * web-platform-tests/css/cssom/support/swatch-red.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-red.png. >+ * web-platform-tests/css/cssom/support/swatch-teal.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-teal.png. >+ * web-platform-tests/css/cssom/support/swatch-white.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-white.png. >+ * web-platform-tests/css/cssom/support/swatch-yellow.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-yellow.png. >+ * web-platform-tests/css/cssom/support/test-bl.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-bl.png. >+ * web-platform-tests/css/cssom/support/test-br.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-br.png. >+ * web-platform-tests/css/cssom/support/test-inner-half-size.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-inner-half-size.png. >+ * web-platform-tests/css/cssom/support/test-outer.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-outer.png. >+ * web-platform-tests/css/cssom/support/test-tl.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tl.png. >+ * web-platform-tests/css/cssom/support/test-tr.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tr.png. >+ * web-platform-tests/css/cssom/support/w3c-import.log: Added. >+ * web-platform-tests/css/cssom/support/xmlss-pi.xhtml: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/support/xmlss-pi.xhtml. >+ * web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt. >+ * web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html. >+ * web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt. >+ * web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html. >+ * web-platform-tests/css/cssom/ttwf-cssom-document-extension-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt. >+ * web-platform-tests/css/cssom/ttwf-cssom-document-extension.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension.html. >+ * web-platform-tests/css/cssom/variable-names-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names-expected.txt. >+ * web-platform-tests/css/cssom/variable-names.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names.html. >+ * web-platform-tests/css/cssom/w3c-import.log: Added. >+ * web-platform-tests/cssom/GetBoundingRect-expected.txt: Removed. >+ * web-platform-tests/cssom/GetBoundingRect.html: Removed. >+ * web-platform-tests/cssom/MediaList-expected.txt: Removed. >+ * web-platform-tests/cssom/cssimportrule-expected.txt: Removed. >+ * web-platform-tests/cssom/cssom-fontfacerule-expected.txt: Removed. >+ * web-platform-tests/cssom/index-001-expected.txt: Removed. >+ * web-platform-tests/cssom/index-001.html: Removed. >+ * web-platform-tests/cssom/index-002-expected.txt: Removed. >+ * web-platform-tests/cssom/index-002.html: Removed. >+ * web-platform-tests/cssom/inline-style-001-expected.txt: Removed. >+ * web-platform-tests/cssom/interfaces-expected.txt: Removed. >+ * web-platform-tests/cssom/medialist-interfaces-004-expected.txt: Removed. >+ * web-platform-tests/cssom/overflow-serialization-expected.txt: Removed. >+ * web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt: Removed. >+ * web-platform-tests/cssom/support/w3c-import.log: Removed. >+ * web-platform-tests/cssom/w3c-import.log: Removed. >+ > 2018-05-18 Rob Buis <rbuis@igalia.com> > > Cannot unset transition with important > https://bugs.webkit.org/show_bug.cgi?id=177684 > > Reviewed by Chris Dumez. > > Import manually the updated test and result. >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 84cc00f7c0f3b253172e34170b7725cae5ececc4..87c8c10cde4af9d149e7aefcbac087f617daf1a9 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -302,17 +302,17 @@ webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self- > webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-008.html [ ImageOnlyFailure ] > webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-009.html [ ImageOnlyFailure ] > webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-010.html [ ImageOnlyFailure ] > webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-011.html [ ImageOnlyFailure ] > webkit.org/b/145566 imported/w3c/web-platform-tests/css/css-grid/alignment/self-baseline/grid-self-baseline-changes-grid-area-size-012.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/IndexedDB/nested-cloning-large-multiple.html [ Skip ] > imported/w3c/web-platform-tests/IndexedDB/nested-cloning-large.html [ Skip ] > imported/w3c/web-platform-tests/IndexedDB/nested-cloning-small.html [ Skip ] >-imported/w3c/web-platform-tests/cssom/interfaces.html [ Pass Timeout ] >+imported/w3c/web-platform-tests/css/cssom/interfaces.html [ Pass Timeout ] > imported/w3c/web-platform-tests/cssom-view/interfaces.html [ Pass Timeout ] > webkit.org/b/182292 imported/w3c/web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001.html [ ImageOnlyFailure ] > webkit.org/b/182292 imported/w3c/web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-ui/text-overflow-010.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-ui/text-overflow-012.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-ui/text-overflow-015.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-ui/text-overflow-017.html [ ImageOnlyFailure ] > imported/w3c/web-platform-tests/css/css-ui/text-overflow-021.html [ ImageOnlyFailure ] >diff --git a/LayoutTests/imported/w3c/resources/import-expectations.json b/LayoutTests/imported/w3c/resources/import-expectations.json >index 56fe4f68beadcd08e9f69fea60081e01b37deddc..ed3d34baf28f5e6f14f6969dc0cba9de1cf7820c 100644 >--- a/LayoutTests/imported/w3c/resources/import-expectations.json >+++ b/LayoutTests/imported/w3c/resources/import-expectations.json >@@ -65,25 +65,24 @@ > "web-platform-tests/css/css-grid": "import", > "web-platform-tests/css/css-grid/grid-definition/": "import", > "web-platform-tests/css/css-multicol": "import", > "web-platform-tests/css/css-pseudo": "import", > "web-platform-tests/css/css-scoping": "import", > "web-platform-tests/css/css-shapes": "import", > "web-platform-tests/css/css-shapes/test-plan/index.html": "skip", > "web-platform-tests/css/css-ui": "import", >+ "web-platform-tests/css/cssom": "import", > "web-platform-tests/css/geometry/": "import", > "web-platform-tests/css/mediaqueries": "import", > "web-platform-tests/css/reference": "import", > "web-platform-tests/css/resources": "import", > "web-platform-tests/css/selectors": "import", > "web-platform-tests/css/support": "import", >- "web-platform-tests/cssom": "import", > "web-platform-tests/cssom-view": "import", >- "web-platform-tests/cssom/MediaList.xhtml": "skip", > "web-platform-tests/custom-elements": "import", > "web-platform-tests/custom-elements/v0": "skip", > "web-platform-tests/dom": "import", > "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html": "skip", > "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg": "skip", > "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xhtml": "skip", > "web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xml": "skip", > "web-platform-tests/dom/nodes/Document-createProcessingInstruction.xhtml": "skip", >@@ -336,9 +335,9 @@ > "web-platform-tests/websockets": "skip", > "web-platform-tests/webstorage": "skip", > "web-platform-tests/webusb": "skip", > "web-platform-tests/webvr": "skip", > "web-platform-tests/webvtt": "skip", > "web-platform-tests/workers": "import", > "web-platform-tests/worklets": "skip", > "web-platform-tests/x-frame-options": "skip" >-} >\ No newline at end of file >+} >diff --git a/LayoutTests/imported/w3c/resources/resource-files.json b/LayoutTests/imported/w3c/resources/resource-files.json >index dd92936474b367b20793e1ce82e7ad04746eae98..2325efe8820b8486a26dbbff9f58c4867ddbd55b 100644 >--- a/LayoutTests/imported/w3c/resources/resource-files.json >+++ b/LayoutTests/imported/w3c/resources/resource-files.json >@@ -273,16 +273,17 @@ > "web-platform-tests/css/css-ui/support/nav-right-013-frame.html", > "web-platform-tests/css/css-ui/support/nav-up-009-frame.html", > "web-platform-tests/css/css-ui/support/nav-up-010-frame.html", > "web-platform-tests/css/css-ui/support/nav-up-011-frame.html", > "web-platform-tests/css/css-ui/support/nav-up-012-frame.html", > "web-platform-tests/css/css-ui/support/nav-up-013-frame.html", > "web-platform-tests/css/css-ui/text-overflow-018.html", > "web-platform-tests/css/css-ui/text-overflow-019.html", >+ "web-platform-tests/css/cssom/support/xmlss-pi.xhtml", > "web-platform-tests/css/mediaqueries/support/media_queries_iframe.html", > "web-platform-tests/css/mediaqueries/support/min-width-tables-001-iframe.html", > "web-platform-tests/cssom-view/iframe.html", > "web-platform-tests/cssom/support/xmlss-pi.xhtml", > "web-platform-tests/dom/events/EventListener-incumbent-global-subframe-1.sub.html", > "web-platform-tests/dom/events/EventListener-incumbent-global-subframe-2.sub.html", > "web-platform-tests/dom/events/EventListener-incumbent-global-subsubframe.sub.html", > "web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess-iframe.xml", >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3bafa7b190130e6f54b820f3078bd06e8f135f7a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS CSS.escape >+PASS CSS.supports, one argument form >+FAIL CSS.supports, two argument form assert_equals: CSS.supports: two argument form succeeds for custom property expected true but got false >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS.html >new file mode 100644 >index 0000000000000000000000000000000000000000..654629bb3286390c468110c1d0036e6f88ee4d42 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS.html >@@ -0,0 +1,38 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM - CSS interface</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#the-css.escape()-method"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<script> >+ test(function () { >+ // https://drafts.csswg.org/cssom/#dom-css-escape >+ // https://drafts.csswg.org/cssom/#serialize-an-identifier >+ assert_equals(CSS.escape("hello world"), "hello\\ world", "CSS.escape: spaces get escaped with backslashes"); >+ assert_equals(CSS.escape("hello\0world"), "hello\u{FFFD}world", "CSS.escape: NULL get replaced with U+FFFD REPLACEMENT CHARACTER"); >+ assert_equals(CSS.escape("hello0world"), "hello0world", "CSS.escape: Numbers within string preserved"); >+ assert_equals(CSS.escape("hello\x10world"), "hello\\10 world", "CSS.escape: Values between \\x01 and \\x1f are unicode escaped"); >+ assert_equals(CSS.escape("hello\\world"), "hello\\\\world", "CSS.escape: Backslashes get backslash-escaped"); >+ assert_equals(CSS.escape("hello\u{1234}world"), "hello\u{1234}world", "CSS.escape: Code points greater than U+0080 are preserved"); >+ assert_equals(CSS.escape("hello\x7Fworld"), "hello\\7f world", "CSS.escape: Some code points less than U+0080 are unicode-escaped"); >+ assert_equals(CSS.escape("-"), "\\-", "CSS.escape: Single dash escaped"); >+ assert_equals(CSS.escape("0foo"), "\\30 foo", "CSS.escape: Numbers at the beginning of an ident get unicode escaped"); >+ assert_equals(CSS.escape("-0foo"), "-\\30 foo", "CSS.escape: Numbers at the beginning of an ident after single hyphen get unicode escaped"); >+ assert_equals(CSS.escape("--0foo"), "--0foo", "CSS.escape: Numbers at the beginning of an ident after multiple hyphens do not get unicode escaped"); >+ }, "CSS.escape"); >+ test(function () { >+ // https://drafts.csswg.org/css-conditional/#dom-css-supports >+ // https://drafts.csswg.org/css-conditional/#typedef-supports-condition >+ assert_equals(CSS.supports("color: red"), true, "CSS.supports: Single-argument form allows for declarations without enclosing parentheses"); >+ assert_equals(CSS.supports("(color: red) and (color: blue)"), true, "CSS.supports: Complex conditions allowed"); >+ assert_equals(CSS.supports("not (foobar)"), true, "CSS.supports: general_enclosed still parses"); >+ }, "CSS.supports, one argument form"); >+ test(function () { >+ // https://drafts.csswg.org/css-conditional/#dom-css-supports >+ // https://drafts.csswg.org/css-conditional/#dfn-support >+ assert_equals(CSS.supports("color", "red"), true, "CSS.supports: two argument form succeeds for known property"); >+ assert_equals(CSS.supports("unknownproperty", "blah"), false, "CSS.supports: two argument form fails for unknown property"); >+ assert_equals(CSS.supports("width", "blah"), false, "CSS.supports: two argument form fails for invalid value"); >+ assert_equals(CSS.supports("--foo", "blah"), true, "CSS.supports: two argument form succeeds for custom property"); >+ }, "CSS.supports, two argument form"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..cbeab2be49c6ce70e5e15f342959d9bd6b009dce >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS CSSKeyframeRule: style property >+PASS CSSKeyframeRule: style property has [PutForwards] >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..148df18b8f88b91b782c7e694e55166046b23525 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule.html >@@ -0,0 +1,52 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title></title> >+<link rel="help" href="https://drafts.csswg.org/css-animations/#interface-csskeyframerule"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<style type="text/css" id="styleElement"> >+ div { animation: 3s slidein; } >+ @keyframes slidein { >+ from { >+ margin-left: 100%; >+ width: 300%; >+ } >+ >+ to { >+ margin-left: 0%; >+ width: 100%; >+ } >+ } >+</style> >+<script> >+ var styleSheet = document.getElementById("styleElement").sheet; >+ var keyframesRule = styleSheet.cssRules[1]; >+ var fromRule = keyframesRule.cssRules[0]; >+ var toRule = keyframesRule.cssRules[1]; >+ >+ test(function() { >+ assert_equals(keyframesRule.name, "slidein"); >+ assert_equals(typeof fromRule.style, "object"); >+ assert_equals(fromRule.style.marginLeft, "100%"); >+ assert_equals(fromRule.style.width, "300%"); >+ >+ assert_equals(typeof toRule.style, "object"); >+ assert_equals(toRule.style.marginLeft, "0%"); >+ assert_equals(toRule.style.width, "100%"); >+ >+ toRule.style.marginLeft = "-5%"; >+ toRule.style.width = "50%"; >+ >+ assert_equals(fromRule.style.marginLeft, "100%"); >+ assert_equals(fromRule.style.width, "300%"); >+ assert_equals(toRule.style.marginLeft, "-5%"); >+ assert_equals(toRule.style.width, "50%"); >+ }, "CSSKeyframeRule: style property"); >+ >+ test(function() { >+ fromRule.style = "margin-left: 50%; width: 100%;"; >+ >+ assert_equals(fromRule.style.marginLeft, "50%", "margin-left"); >+ assert_equals(fromRule.style.width, "100%", "width"); >+ }, "CSSKeyframeRule: style property has [PutForwards]"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7f1e99ed4557574a5cfc200f6021fdbdc8d33d8a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL CSSOM - CSSKeyframesRule interface assert_equals: CSSKeyframesRule cssText attribute expected "@keyframesbar{}" but got "@-webkit-keyframesbar{}" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4b4b1f054542308124a0e4023137023c8ca5fc99 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule.html >@@ -0,0 +1,74 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - CSSKeyframesRule interface</title> >+ <link rel="help" href="https://drafts.csswg.org/css-animations/#interface-csskeyframesrule"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ @keyframes foo { >+ 0% { top: 0px; } >+ 100% { top: 200px; } >+ } >+ @keyframes empty {} >+ </style> >+ >+ <script> >+ test(function () { >+ var keyframe = document.styleSheets[0].cssRules[0]; >+ assert_equals(keyframe.name, "foo", "CSSKeyframesRule name attribute"); >+ assert_equals(keyframe.cssRules.length, 2, "CSSKeyframesRule cssRule length attribute"); >+ assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute"); >+ assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute"); >+ >+ keyframe.appendRule("50% { top: 100px; }"); >+ assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[2].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ >+ keyframe.appendRule("0% { top: 50px; }"); >+ assert_equals(keyframe.cssRules.length, 4, "CSSKeyframesRule cssRule length attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[2].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ assert_equals(keyframe.cssRules[3].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >+ >+ var find1 = keyframe.findRule("50%"); >+ assert_equals(find1.cssText, "50% { top: 100px; }", "CSSKeyframesRule findRule function"); >+ var find2 = keyframe.findRule("0%"); >+ assert_equals(find2.cssText, "0% { top: 50px; }", "CSSKeyframesRule findRule function"); >+ var find3 = keyframe.findRule("70%"); >+ assert_equals(find3, null, "CSSKeyframesRule findRule function"); >+ >+ keyframe.deleteRule("100%"); >+ assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[1].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[2].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[3], undefined, "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ >+ keyframe.deleteRule("80%"); >+ assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[1].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[2].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ assert_equals(keyframe.cssRules[3], undefined, "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >+ >+ var empty = document.styleSheets[0].cssRules[1]; >+ empty.name = "bar"; >+ assert_equals(empty.name, "bar", "CSSKeyframesRule name setter"); >+ assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframesbar{}", "CSSKeyframesRule cssText attribute"); >+ >+ empty.name = "initial"; >+ assert_equals(empty.name, "initial", "CSSKeyframesRule name setter, CSS-wide keyword"); >+ assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframes\"initial\"{}", "CSSKeyframesRule cssText attribute with CSS-wide keyword name"); >+ >+ empty.name = "none"; >+ assert_equals(empty.name, "none", "CSSKeyframesRule name setter, 'none'"); >+ assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframes\"none\"{}", "CSSKeyframesRule cssText attribute with 'none' name"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2b892a2e4492375ef77f9e366e4fe80f451a9929 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSOM - CSSNamespaceRule interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..632cf6f88cd8ad48cb5fcf60bed150458bf34ebb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule.html >@@ -0,0 +1,32 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - CSSNamespaceRule interface</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssnamespacerule-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ @namespace svg url(http://servo); >+ @namespace url(http://servo1); >+ @namespace svg url("http://servo2"); >+ </style> >+ >+ <script> >+ test(function () { >+ var rules = document.styleSheets[0].cssRules; >+ assert_equals(rules[0].prefix, "svg", "CSSNamespaceRule prefix attribute"); >+ assert_equals(rules[0].namespaceURI, "http://servo", "CSSNamespaceRule namespaceURI attribute"); >+ assert_equals(rules[0].cssText, "@namespace svg url(\"http://servo\");", "CSSNamespaceRule cssText attribute"); >+ >+ assert_equals(rules[1].prefix, "", "CSSNamespaceRule prefix attribute"); >+ assert_equals(rules[1].namespaceURI, "http://servo1", "CSSNamespaceRule namespaceURI attribute"); >+ assert_equals(rules[1].cssText, "@namespace url(\"http://servo1\");", "CSSNamespaceRule cssText attribute"); >+ >+ assert_equals(rules[2].prefix, "svg", "CSSNamespaceRule prefix attribute"); >+ assert_equals(rules[2].namespaceURI, "http://servo2", "CSSNamespaceRule namespaceURI attribute"); >+ assert_equals(rules[2].cssText, "@namespace svg url(\"http://servo2\");", "CSSNamespaceRule cssText attribute"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0709a8c09d146be4108dcc77e2b7e39d92cdb0b3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSOM - CSSRuleList interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e8f53a2d92d9ea34d8248f457157f96649c5141d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList.html >@@ -0,0 +1,27 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - CSSRuleList interface</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssrulelist-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ body { width: 50%; } >+ #foo { height: 100px; } >+ </style> >+ >+ <script> >+ test(function () { >+ var ruleList = document.styleSheets[0].cssRules; >+ assert_equals(ruleList.length, 2, "CSSRuleList length attribute"); >+ assert_equals(ruleList[0].cssText, "body { width: 50%; }", "CSSRuleList indexed getter"); >+ assert_equals(ruleList[1].cssText, "#foo { height: 100px; }", "CSSRuleList indexed getter"); >+ assert_equals(ruleList[2], undefined, "CSSRuleList indexed getter"); >+ assert_equals(ruleList.item(0).cssText, "body { width: 50%; }", "CSSRuleList item function"); >+ assert_equals(ruleList.item(1).cssText, "#foo { height: 100px; }", "CSSRuleList item function"); >+ assert_equals(ruleList.item(2), null, "CSSRuleList item function"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3cb92f443a5b1e49ad6a4f11e009c2a78bc08ed0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-expected.txt >@@ -0,0 +1,12 @@ >+ >+PASS CSSRule and CSSStyleRule types >+PASS Type of CSSRule#type and constant values >+PASS Existence of CSSRule attributes >+PASS Writability of CSSRule attributes >+PASS Values of CSSRule attributes >+PASS Existence and type of CSSStyleRule attributes >+PASS Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object >+PASS Values of CSSStyleRule attributes >+PASS Mutability of CSSStyleRule's style attribute >+PASS CSSStyleRule's style has [PutForwards] >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..8ec4b6a3e5f2d8f67e0542eebdfe10acc526c5ae >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-expected.txt >@@ -0,0 +1,84 @@ >+ >+PASS CSSStyleRule: Can read selectorText value. >+PASS CSSStyleRule: Invalid CSS selector: >+PASS CSSStyleRule: Invalid CSS selector: >+PASS CSSStyleRule: Invalid CSS selector: !! >+PASS CSSStyleRule: Invalid CSS selector: 123 >+PASS CSSStyleRule: Invalid CSS selector: - >+PASS CSSStyleRule: Invalid CSS selector: $ >+PASS CSSStyleRule: Invalid CSS selector: : >+PASS CSSStyleRule: Invalid CSS selector: :: >+PASS CSSStyleRule: Invalid CSS selector: ::: >+PASS CSSStyleRule: Invalid CSS selector: ::gibberish >+PASS CSSStyleRule: Invalid CSS selector: :gibberish >+PASS CSSStyleRule: Invalid CSS selector: . >+PASS CSSStyleRule: Invalid CSS selector: # >+PASS CSSStyleRule: Invalid CSS selector: [] >+PASS CSSStyleRule: Invalid CSS selector: [ >+PASS CSSStyleRule: Invalid CSS selector: () >+PASS CSSStyleRule: Invalid CSS selector: ( >+PASS CSSStyleRule: Invalid CSS selector: {} >+PASS CSSStyleRule: Invalid CSS selector: { >+PASS CSSStyleRule: selectorText value: |#container| isMatch: true >+PASS CSSStyleRule: selectorText value: |#container | isMatch: true >+PASS CSSStyleRule: selectorText value: | #container | isMatch: true >+PASS CSSStyleRule: selectorText value: |.style1| isMatch: true >+PASS CSSStyleRule: selectorText value: |div.style1| isMatch: true >+PASS CSSStyleRule: selectorText value: |div:not(#non-existing-id)| isMatch: true >+PASS CSSStyleRule: selectorText value: |div| isMatch: true >+PASS CSSStyleRule: selectorText value: |*| isMatch: true >+PASS CSSStyleRule: selectorText value: |#no-match| isMatch: false >+PASS CSSStyleRule: selectorText value: |ÃÄıİ| isMatch: false >+PASS CSSStyleRule: selectorText value: |ð¤| isMatch: false >+PASS CSSStyleRule: selectorText value: |[language]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[language-no]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[lang="zh-CN"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang="ab-CD"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[segment~="43"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[segment~="42"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang|="zh"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang|="zh-CN"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang|="ab"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[lang|="z"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[lang^="z"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang^="ab"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[segment$="43"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[segment$="3"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[segment$="42"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |[lang*="-"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang*="h-"]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[lang*="ab"]| isMatch: false >+PASS CSSStyleRule: selectorText value: |*|div| isMatch: true >+PASS CSSStyleRule: selectorText value: ||div| isMatch: false >+PASS CSSStyleRule: selectorText value: |*|a| isMatch: false >+PASS CSSStyleRule: selectorText value: |*|*| isMatch: true >+PASS CSSStyleRule: selectorText value: |[*|lang]| isMatch: true >+PASS CSSStyleRule: selectorText value: |[|lang]| isMatch: true >+PASS CSSStyleRule: selectorText value: |:active| isMatch: false >+PASS CSSStyleRule: selectorText value: |:not(:active)| isMatch: true >+PASS CSSStyleRule: selectorText value: |*:not(:active)| isMatch: true >+PASS CSSStyleRule: selectorText value: |div:not(:active)| isMatch: true >+PASS CSSStyleRule: selectorText value: |div:active| isMatch: false >+PASS CSSStyleRule: selectorText value: |span div| isMatch: true >+PASS CSSStyleRule: selectorText value: |span div | isMatch: true >+PASS CSSStyleRule: selectorText value: |span > div| isMatch: true >+PASS CSSStyleRule: selectorText value: |div div| isMatch: false >+PASS CSSStyleRule: selectorText value: |div > div| isMatch: false >+PASS CSSStyleRule: selectorText value: |p + div| isMatch: true >+PASS CSSStyleRule: selectorText value: |span + div| isMatch: false >+PASS CSSStyleRule: selectorText value: |p ~ div| isMatch: true >+PASS CSSStyleRule: selectorText value: |span ~ div| isMatch: false >+FAIL CSSStyleRule: selectorText value: |:lang(zh-CN)| isMatch: true assert_equals: expected ":lang(zh-CN)" but got ":lang(\"zh-CN\")" >+FAIL CSSStyleRule: selectorText value: |:lang(zh)| isMatch: true assert_equals: expected ":lang(zh)" but got ":lang(\"zh\")" >+FAIL CSSStyleRule: selectorText value: |:lang(tr-AZ)| isMatch: false assert_equals: expected ":lang(tr-AZ)" but got ":lang(\"tr-AZ\")" >+PASS CSSStyleRule: selectorText value: |::after| isMatch: false >+PASS CSSStyleRule: selectorText value: |:after| isMatch: false >+PASS CSSStyleRule: selectorText value: |::before| isMatch: false >+PASS CSSStyleRule: selectorText value: |:before| isMatch: false >+PASS CSSStyleRule: selectorText value: |::first-letter| isMatch: false >+PASS CSSStyleRule: selectorText value: |:first-letter| isMatch: false >+PASS CSSStyleRule: selectorText value: |::first-line| isMatch: false >+PASS CSSStyleRule: selectorText value: |:first-line| isMatch: false >+PASS CSSStyleRule: selectorText value: |div:focus:not([lang="zh-CN"])| isMatch: false >+PASS CSSStyleRule: selectorText value: |div[lang="zh-CN"]:not(:focus)| isMatch: true >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..34e0df783d6d59d2f60314919816126416ce27ae >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace-expected.txt >@@ -0,0 +1,8 @@ >+SVG text >+ >+FAIL CSSStyleRule: selectorText value: |.style1| isMatch: false assert_equals: expected "rgb(255, 0, 255)" but got "rgb(0, 0, 255)" >+FAIL CSSStyleRule: selectorText value: |svg|*.style1 | isMatch: true assert_equals: expected "svg|*.style0" but got ".style1" >+FAIL CSSStyleRule: selectorText value: |*|*.style1 | isMatch: true assert_equals: expected "svg|*.style0" but got ".style1" >+FAIL CSSStyleRule: selectorText value: | *.style1 | isMatch: false assert_equals: expected "svg|*.style0" but got ".style1" >+FAIL CSSStyleRule: selectorText value: |p| isMatch: false assert_equals: expected "svg|*.style0" but got ".style1" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace.html >new file mode 100644 >index 0000000000000000000000000000000000000000..73136947ba614a1510d440ec382e87b2b171ab0b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace.html >@@ -0,0 +1,60 @@ >+<!DOCTYPE html> >+<meta charset=utf-8> >+<title>CSSOM StyleRule selectorText property setter with namespaces</title> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#dom-cssstylerule-selectortext"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+ >+<style type="text/css" id="styleElement"> >+@namespace url(http://www.w3.org/1999/xhtml); >+@namespace svg url(http://www.w3.org/2000/svg); >+ >+svg|*.style0 { background-color: rgb(0, 0, 255) !important; } >+svg|*.style1 { background-color: rgb(255, 0, 255); } >+</style> >+ >+<span> >+ <p></p> >+ >+ <svg height="30" width="200" id="container" class="style1" lang="zh-CN" language segment="42 43"> >+ <text x="0" y="15">SVG text</text> >+ </svg> >+</span> >+ >+<script> >+ var styleSheet = document.getElementById("styleElement").sheet; >+ var rule = styleSheet.cssRules[2]; >+ >+ var divContainerStyle = getComputedStyle(document.getElementById("container")); >+ >+ const originalStyleSelector = "svg|*.style0"; >+ >+ var assertColors = function(selectorMatches) { >+ assert_equals(divContainerStyle.getPropertyValue('background-color'), selectorMatches ? "rgb(0, 0, 255)" : "rgb(255, 0, 255)") >+ }; >+ >+ [ >+ {selector: ".style1", isMatch: false, }, >+ {selector: "svg|*.style1 ", isMatch: true, normalizedSelector: "svg|*.style1"}, >+ {selector: "*|*.style1 ", isMatch: true, normalizedSelector: "*|*.style1"}, >+ {selector: " *.style1 ", isMatch: false, normalizedSelector: ".style1"}, >+ {selector: "p", isMatch: false}, >+ ].forEach(function(testCase) { >+ test(function() { >+ // Check if starting with the default value. >+ assert_equals(rule.selectorText, originalStyleSelector); >+ >+ this.add_cleanup(function() { rule.selectorText = originalStyleSelector; }); >+ >+ assertColors(false); >+ >+ rule.selectorText = testCase.selector; >+ >+ var expectedSelector = testCase.normalizedSelector ? testCase.normalizedSelector : testCase.selector; >+ >+ assert_equals(rule.selectorText, expectedSelector); >+ >+ assertColors(testCase.isMatch); >+ }, "CSSStyleRule: selectorText value: |" + testCase.selector + "| isMatch: " + testCase.isMatch); >+ }); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e3feb0046833fc09dbbb5f03f92be6a7da06c483 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText.html >@@ -0,0 +1,158 @@ >+<!DOCTYPE html> >+<meta charset=utf-8> >+<title>CSSOM StyleRule selectorText property setter</title> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#dom-cssstylerule-selectortext"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+ >+<style type="text/css" id="styleElement"> >+ .style0 { background-color: rgb(0, 0, 255) !important; } >+ .style1 { background-color: rgb(255, 0, 255); } >+</style> >+ >+<span> >+ <p></p> >+ <div id="container" class="style1" lang="zh-CN" language segment="42 43"> >+ </div> >+</span> >+ >+<script> >+ var styleSheet = document.getElementById("styleElement").sheet; >+ var rule = styleSheet.cssRules[0]; >+ >+ var divContainerStyle = getComputedStyle(document.getElementById("container")); >+ >+ const originalStyleSelector = ".style0"; >+ >+ var assertColors = function(selectorMatches) { >+ assert_equals(divContainerStyle.backgroundColor, selectorMatches ? "rgb(0, 0, 255)" : "rgb(255, 0, 255)") >+ }; >+ >+ test(function() { >+ assert_equals(typeof rule.selectorText, "string"); >+ assert_equals(rule.selectorText, originalStyleSelector); >+ }, "CSSStyleRule: Can read selectorText value."); >+ >+ [ // Invalid selector values. >+ "", >+ " ", >+ "!!", >+ "123", >+ "-", >+ "$", >+ ":", >+ "::", >+ ":::", >+ "::gibberish", >+ ":gibberish", >+ ".", >+ "#", >+ "[]", >+ "[", >+ "()", >+ "(", >+ "{}", >+ "{", >+ ].forEach(function(selector) { >+ test(function() { >+ assert_equals(rule.selectorText, originalStyleSelector); >+ >+ this.add_cleanup(function() { rule.selectorText = originalStyleSelector; }); >+ >+ rule.selectorText = selector; >+ >+ assert_equals(rule.selectorText, originalStyleSelector); >+ }, "CSSStyleRule: Invalid CSS selector: " + selector); >+ }); >+ >+ >+ [ // Valid selector values. >+ {selector: "#container", isMatch: true}, >+ {selector: "#container ", isMatch: true, normalizedSelector: "#container"}, >+ {selector: " #container ", isMatch: true, normalizedSelector: "#container"}, >+ {selector: ".style1", isMatch: true}, >+ {selector: "div.style1", isMatch: true}, >+ {selector: "div:not(#non-existing-id)", isMatch: true}, >+ {selector: "div", isMatch: true}, >+ {selector: "*", isMatch: true}, >+ >+ {selector: "#no-match", isMatch: false}, >+ {selector: "ÃÄıİ", isMatch: false}, >+ {selector: "ð¤", isMatch: false}, >+ >+ {selector: "[language]", isMatch: true}, >+ {selector: "[language-no]", isMatch: false}, >+ {selector: "[lang=\"zh-CN\"]", isMatch: true}, >+ {selector: "[lang=\"ab-CD\"]", isMatch: false}, >+ {selector: "[segment~=\"43\"]", isMatch: true}, >+ {selector: "[segment~=\"42\"]", isMatch: true}, >+ {selector: "[lang|=\"zh\"]", isMatch: true}, >+ {selector: "[lang|=\"zh-CN\"]", isMatch: true}, >+ {selector: "[lang|=\"ab\"]", isMatch: false}, >+ {selector: "[lang|=\"z\"]", isMatch: false}, >+ {selector: "[lang^=\"z\"]", isMatch: true}, >+ {selector: "[lang^=\"ab\"]", isMatch: false}, >+ {selector: "[segment$=\"43\"]", isMatch: true}, >+ {selector: "[segment$=\"3\"]", isMatch: true}, >+ {selector: "[segment$=\"42\"]", isMatch: false}, >+ {selector: "[lang*=\"-\"]", isMatch: true}, >+ {selector: "[lang*=\"h-\"]", isMatch: true}, >+ {selector: "[lang*=\"ab\"]", isMatch: false}, >+ >+ {selector: "*|div", isMatch: true, normalizedSelector: "div"}, >+ {selector: "|div", isMatch: false}, >+ {selector: "*|a", isMatch: false, normalizedSelector: "a"}, >+ {selector: "*|*", isMatch: true, normalizedSelector: "*"}, >+ {selector: "[*|lang]", isMatch: true, normalizedSelector: "[*|lang]"}, >+ {selector: "[|lang]", isMatch: true, normalizedSelector: "[lang]"}, >+ >+ {selector: ":active", isMatch: false}, >+ {selector: ":not(:active)", isMatch: true}, >+ {selector: "*:not(:active)", isMatch: true, normalizedSelector: ":not(:active)"}, >+ {selector: "div:not(:active)", isMatch: true}, >+ {selector: "div:active", isMatch: false}, >+ >+ {selector: "span div", isMatch: true}, >+ {selector: "span div ", isMatch: true, normalizedSelector: "span div"}, >+ {selector: "span > div", isMatch: true}, >+ {selector: "div div", isMatch: false}, >+ {selector: "div > div", isMatch: false}, >+ {selector: "p + div", isMatch: true}, >+ {selector: "span + div", isMatch: false}, >+ {selector: "p ~ div", isMatch: true}, >+ {selector: "span ~ div", isMatch: false}, >+ >+ {selector: ":lang(zh-CN)", isMatch: true}, >+ {selector: ":lang(zh)", isMatch: true}, >+ {selector: ":lang(tr-AZ)", isMatch: false}, >+ >+ {selector: "::after", isMatch: false, normalizedSelector: "::after"}, >+ {selector: ":after", isMatch: false, normalizedSelector: "::after"}, >+ {selector: "::before", isMatch: false, normalizedSelector: "::before"}, >+ {selector: ":before", isMatch: false, normalizedSelector: "::before"}, >+ {selector: "::first-letter", isMatch: false, normalizedSelector: "::first-letter"}, >+ {selector: ":first-letter", isMatch: false, normalizedSelector: "::first-letter"}, >+ {selector: "::first-line", isMatch: false, normalizedSelector: "::first-line"}, >+ {selector: ":first-line", isMatch: false, normalizedSelector: "::first-line"}, >+ >+ {selector: "div:focus:not([lang=\"zh-CN\"])", isMatch: false}, >+ {selector: "div[lang=\"zh-CN\"]:not(:focus)", isMatch: true}, >+ ].forEach(function(testCase) { >+ test(function() { >+ // Check if starting with the default value. >+ assert_equals(rule.selectorText, originalStyleSelector); >+ >+ this.add_cleanup(function() { rule.selectorText = originalStyleSelector; }); >+ >+ assertColors(false); >+ >+ rule.selectorText = testCase.selector; >+ >+ var expectedSelector = testCase.normalizedSelector ? testCase.normalizedSelector : testCase.selector; >+ >+ assert_equals(rule.selectorText, expectedSelector); >+ >+ assertColors(testCase.isMatch); >+ }, "CSSStyleRule: selectorText value: |" + testCase.selector + "| isMatch: " + testCase.isMatch); >+ }); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..88cfc91ad8c531ce7953f5d63d29bafb4a60c656 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule.html >@@ -0,0 +1,113 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSSOM CSSRule CSSStyleRule interface</title> >+ <link rel="author" title="Letitia Lew" href="mailto:lew.letitia@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-rules"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstylerule-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="All properties for this CSSStyleRule instance of CSSRule are initialized correctly"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ >+ <style id="styleElement" type="text/css"> >+ div { margin: 10px; padding: 0px; } >+ </style> >+</head> >+<body> >+ <div id="log"></div> >+ >+ <script type="text/javascript"> >+ var rule; >+ setup(function() { >+ var styleSheet = document.getElementById("styleElement").sheet; >+ var ruleList = styleSheet.cssRules; >+ rule = ruleList[0]; >+ }); >+ >+ test(function() { >+ assert_true(rule instanceof CSSRule); >+ assert_true(rule instanceof CSSStyleRule); >+ }, "CSSRule and CSSStyleRule types"); >+ >+ test(function() { >+ assert_equals(rule.STYLE_RULE, 1); >+ assert_equals(rule.IMPORT_RULE, 3); >+ assert_equals(rule.MEDIA_RULE, 4); >+ assert_equals(rule.FONT_FACE_RULE, 5); >+ assert_equals(rule.PAGE_RULE, 6); >+ assert_equals(rule.NAMESPACE_RULE, 10); >+ assert_idl_attribute(rule, "type"); >+ assert_equals(typeof rule.type, "number"); >+ }, "Type of CSSRule#type and constant values"); >+ >+ test(function() { >+ assert_true(rule instanceof CSSRule); >+ assert_idl_attribute(rule, "cssText"); >+ assert_idl_attribute(rule, "parentRule"); >+ assert_idl_attribute(rule, "parentStyleSheet"); >+ }, "Existence of CSSRule attributes"); >+ >+ test(function() { >+ assert_readonly(rule, "type"); >+ assert_readonly(rule, "parentRule"); >+ assert_readonly(rule, "parentStyleSheet"); >+ }, "Writability of CSSRule attributes"); >+ >+ test(function() { >+ assert_equals(rule.type, rule.STYLE_RULE); >+ assert_equals(typeof rule.cssText, "string"); >+ assert_equals(rule.cssText, "div { margin: 10px; padding: 0px; }"); >+ assert_equals(rule.parentRule, null); >+ assert_true(rule.parentStyleSheet instanceof CSSStyleSheet); >+ }, "Values of CSSRule attributes"); >+ >+ test(function() { >+ assert_idl_attribute(rule, "selectorText"); >+ assert_equals(typeof rule.selectorText, "string"); >+ assert_idl_attribute(rule, "style"); >+ }, "Existence and type of CSSStyleRule attributes"); >+ >+ test(function() { >+ // CSSStyleRule.style has PutForwards=cssText and SameObject. >+ var initial = rule.style.cssText; >+ var style = rule.style; >+ >+ rule.style = ""; >+ assert_equals(rule.style.cssText, ""); >+ assert_equals(rule.style, style); >+ >+ rule.style = "margin: 42px;"; >+ assert_equals(rule.style.margin, "42px"); >+ assert_equals(rule.style, style); >+ >+ rule.style = initial; >+ assert_equals(rule.style, style); >+ }, "Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object"); >+ >+ test(function() { >+ assert_equals(rule.selectorText, "div"); >+ assert_true(rule.style instanceof CSSStyleDeclaration); >+ }, "Values of CSSStyleRule attributes"); >+ >+ test(function() { >+ assert_equals(rule.style.margin, "10px"); >+ assert_equals(rule.style.padding, "0px"); >+ >+ rule.style.padding = "5px"; >+ rule.style.border = "1px solid"; >+ >+ assert_equals(rule.style.padding, "5px"); >+ assert_equals(rule.style.border, "1px solid"); >+ }, "Mutability of CSSStyleRule's style attribute"); >+ >+ test(function() { >+ rule.style = "margin: 15px; padding: 2px;"; >+ >+ assert_equals(rule.style.margin, "15px", "margin"); >+ assert_equals(rule.style.padding, "2px", "padding"); >+ }, "CSSStyleRule's style has [PutForwards]"); >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..58f3208da61ba697e28c20a7d8846a7d08ce2b38 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSOM - CSSStyleSheet interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d0d454e4bf5938733f354b3ba9d52ed11ac27cc1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet.html >@@ -0,0 +1,44 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - CSSStyleSheet interface</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstylesheet-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style id="my-stylesheet"> >+ body { width: 50%; } >+ #foo { height: 100px; } >+ </style> >+ >+ <script> >+ test(function () { >+ var styleSheet = document.styleSheets[0]; >+ styleSheet.cssRules[0].randomProperty = 1; >+ styleSheet.cssRules[1].randomProperty = 2; >+ >+ assert_equals(styleSheet, document.getElementById("my-stylesheet").sheet, "CSSStyleSheet and LinkStyle's sheet attribute"); >+ assert_equals(styleSheet.cssRules.length, 2, "CSSStyleSheet cssRules attribute"); >+ assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute"); >+ assert_equals(styleSheet.cssRules[1].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute"); >+ assert_equals(styleSheet.cssRules[2], undefined, "CSSStyleSheet cssRules attribute"); >+ >+ styleSheet.insertRule("#bar { margin: 10px; }", 1); >+ assert_equals(styleSheet.cssRules.length, 3, "CSSStyleSheet cssRules attribute after insertRule function"); >+ assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute"); >+ assert_equals(styleSheet.cssRules[1].cssText, "#bar { margin: 10px; }", "CSSStyleSheet cssRules attribute after insertRule function"); >+ assert_equals(styleSheet.cssRules[2].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute after insertRule function"); >+ assert_equals(styleSheet.cssRules[0].randomProperty, 1, "[SameObject] cssRules attribute after insertRule function"); >+ assert_equals(styleSheet.cssRules[2].randomProperty, 2, "[SameObject] cssRules attribute after insertRule function"); >+ >+ styleSheet.deleteRule(1); >+ assert_equals(styleSheet.cssRules.length, 2, "CSSStyleSheet cssRules attribute after deleteRule function"); >+ assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute after deleteRule function"); >+ assert_equals(styleSheet.cssRules[1].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute after deleteRule function"); >+ assert_equals(styleSheet.cssRules[2], undefined, "CSSStyleSheet cssRules attribute after deleteRule function"); >+ assert_equals(styleSheet.cssRules[0].randomProperty, 1, "[SameObject] cssRules attribute after deleteRule function"); >+ assert_equals(styleSheet.cssRules[1].randomProperty, 2, "[SameObject] cssRules attribute after deleteRule function"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2fddc64cf32a374ad0159e7ee4d2df49a4dc8e28 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL CSSOM - MediaList interface assert_equals: MediaList toString method expected "screen and (min-width: 480px), print, projection" but got "[object MediaList]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList.html >new file mode 100644 >index 0000000000000000000000000000000000000000..59fe65753eb9de5d2f92ed2e2d86e55eb6b893d3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList.html >@@ -0,0 +1,55 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - MediaList interface</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-medialist-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ @media screen and (min-width: 480px), print, projection {} >+ </style> >+ >+ <script> >+ test(function () { >+ var media = document.styleSheets[0].cssRules[0].media; >+ assert_equals(media.length, 3, "MediaList length attribute"); >+ assert_equals(media.mediaText, "screen and (min-width: 480px), print, projection", "MediaList mediaText attribute"); >+ assert_equals(media.toString(), "screen and (min-width: 480px), print, projection", "MediaList toString method"); >+ assert_equals(media[0], "screen and (min-width: 480px)", "MediaList indexed getter"); >+ assert_equals(media[1], "print", "MediaList indexed getter"); >+ assert_equals(media[2], "projection", "MediaList indexed getter"); >+ assert_equals(media[3], undefined, "MediaList indexed getter with out of range"); >+ assert_equals(media.item(0), "screen and (min-width: 480px)", "MediaList item method"); >+ assert_equals(media.item(3), null, "MediaList item method"); >+ >+ media.deleteMedium("print"); >+ assert_equals(media.length, 2, "MediaList length attribute after delete method"); >+ assert_equals(media.mediaText, "screen and (min-width: 480px), projection", "MediaList mediaText attribute after delete method"); >+ assert_equals(media.toString(), "screen and (min-width: 480px), projection", "MediaList toString method after delete method"); >+ assert_equals(media[1], "projection", "MediaList indexed getter after delete method"); >+ assert_equals(media[2], undefined, "MediaList indexed getter with out of range after delete method"); >+ assert_equals(media.item(1), "projection", "MediaList indexed getter after delete method"); >+ assert_equals(media.item(2), null, "MediaList item method after delete method"); >+ >+ media.appendMedium("speech"); >+ assert_equals(media.length, 3, "MediaList length attribute after append method"); >+ assert_equals(media.mediaText, "screen and (min-width: 480px), projection, speech", "MediaList mediaText attribute after append method"); >+ assert_equals(media.toString(), "screen and (min-width: 480px), projection, speech", "MediaList toString method after append method"); >+ assert_equals(media[1], "projection", "MediaList indexed getter after append method"); >+ assert_equals(media[2], "speech", "MediaList indexed getter after append method"); >+ assert_equals(media[3], undefined, "MediaList indexed getter with out of range after append method"); >+ assert_equals(media.item(2), "speech", "MediaList item method after append method"); >+ assert_equals(media.item(3), null, "MediaList item method after append method"); >+ >+ media.mediaText = null; >+ assert_equals(media.mediaText, "", "MediaList mediaText attribute should be empty string in case of null"); >+ assert_equals(media.toString(), "", "MediaList toString method should be empty string in case of null"); >+ >+ var rule = document.styleSheets[0].cssRules[0]; >+ rule.media = "speech"; >+ assert_equals(rule.media.mediaText, "speech", "MediaList mediaText attribute should be updated"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6b5d51d4bda56b6f5eb1c230d23dad5f5b11f27e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS MediaList >+PASS MediaList.mediaText >+PASS MediaList.length >+PASS MediaList getter >+PASS MediaList.item >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2.xhtml b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2.xhtml >new file mode 100644 >index 0000000000000000000000000000000000000000..ade0ed944a97ff7814907b4543c5f12bbd04ddb5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2.xhtml >@@ -0,0 +1,45 @@ >+<!DOCTYPE html> >+<html xmlns="http://www.w3.org/1999/xhtml"> >+<head> >+<title>CSS Test: the MediaList interface</title> >+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"/> >+<link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"/> >+<link rel="help" href="http://dev.w3.org/2006/webapi/WebIDL/#getownproperty"/> >+<style media="screen, print" id="test-style"></style> >+<script src="../../../../../resources/testharness.js"/> >+<script src="../../../../../resources/testharnessreport.js"/> >+</head> >+<body> >+<div id="log"/> >+<script> >+test(function() { >+ var ss = document.styleSheets[0]; >+ assert_equals(ss.ownerNode.id, "test-style", "Got the wrong style element"); >+ >+ var media = ss.media; >+ test(function() { >+ // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17526 >+ assert_equals(media.mediaText, "screen, print", "Serialization should be \"screen, print\""); >+ }, "MediaList.mediaText"); >+ >+ test(function() { >+ assert_equals(media.length, 2, "Got wrong number of media"); >+ }, "MediaList.length"); >+ >+ test(function() { >+ assert_equals(media[-1], undefined, "media[-1] should return undefined"); >+ assert_equals(media[0], "screen", "media[0] should return \"screen\""); >+ assert_equals(media[1], "print", "media[1] should return \"print\""); >+ assert_equals(media[2], undefined, "media[2] should return undefined"); >+ }, "MediaList getter"); >+ >+ test(function() { >+ assert_equals(media.item(-1), null, "media.item(-1) should return null"); >+ assert_equals(media.item(0), "screen", "media.item(0) should return \"screen\""); >+ assert_equals(media.item(1), "print", "media.item(1) should return \"print\""); >+ assert_equals(media.item(2), null, "media.item(2) should return null"); >+ }, "MediaList.item"); >+}, "MediaList"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/OWNERS >new file mode 100644 >index 0000000000000000000000000000000000000000..607f8e85cc2dbc4c4dc35eb9d2c21b5ee4da8882 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/OWNERS >@@ -0,0 +1,4 @@ >+@dbaron >+@plinss >+@lilles >+@therealglazou >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5dcc47a8ea2e04c810d8ae3b4da9ffe79aeb106e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSOM - StyleSheetList interface >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList.html >new file mode 100644 >index 0000000000000000000000000000000000000000..65700522aec62612ee2f82e48c7c150daa759b0e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList.html >@@ -0,0 +1,34 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - StyleSheetList interface</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-stylesheetlist-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ body { width: 50%; } >+ </style> >+ <style> >+ #foo { width: 10%; } >+ #bar { height: 100px; } >+ </style> >+ <script> >+ test(function () { >+ var styleSheets = document.styleSheets; >+ assert_equals(styleSheets.length, 2, "StyleSheetList length attribute"); >+ assert_equals(styleSheets[0].cssRules.length, 1, "StyleSheetList indexed getter length attribute"); >+ assert_equals(styleSheets[1].cssRules.length, 2, "StyleSheetList indexed getter length attribute"); >+ assert_equals(styleSheets[2], undefined, "StyleSheetList indexed getter length attribute"); >+ assert_equals(styleSheets.item(0).cssRules.length, 1, "StyleSheetList item function length attribute"); >+ assert_equals(styleSheets.item(1).cssRules.length, 2, "StyleSheetList item function length attribute"); >+ assert_equals(styleSheets.item(2), null, "StyleSheetList item function length attribute"); >+ >+ styleSheets[0].randomProperty = 1; >+ var style = document.createElement("style"); >+ document.head.appendChild(style); >+ assert_equals(styleSheets[0].randomProperty, 1, "[SameObject] StyleSheetList"); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..354e7730e29d663ff98061a14a24ca8db321f8e7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS read_only >+PASS property_values >+PASS inherited_property_values >+PASS relative_property_values >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c13fd186725b33f08c68ece5a2a9e475d4596947 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001.html >@@ -0,0 +1,70 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: getComputedStyle</title> >+ <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-window-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#resolved-values"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="getComputedStyle returns a readonly CSSStyleDeclaration with resolved values"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style> >+ #outside { >+ width: 200px; >+ height: 200px; >+ } >+ #outside div { >+ font-size: 100px; >+ } >+ #inside { >+ width: 50%; >+ height: 100px; >+ } >+ </style> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <div id="outside"><div id="inside"></div></div> >+ <script type="text/javascript"> >+ var outer = document.getElementById("outside"); >+ var inner = document.getElementById("inside"); >+ var innerStyle; >+ >+ test(function() { >+ innerStyle = window.getComputedStyle(inner); >+ assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >+ function() { innerStyle.cssText = "color: blue;"; }, >+ "do not allow setting cssText on a readonly CSSStyleDeclaration"); >+ assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >+ function() { innerStyle.setProperty("color", "blue"); }, >+ "do not allow calling setProperty on a readonly CSSStyleDeclaration"); >+ assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >+ function() { innerStyle.color = "blue"; }, >+ "do not allow setting a property on a readonly CSSStyleDeclaration"); >+ }, "read_only", { >+ assert: "do not allow modifications to a computed CSSStyleDeclaration" >+ }); >+ >+ test(function() { >+ assert_equals(innerStyle.getPropertyValue("height"), "100px"); >+ }, "property_values", { >+ assert: "Directly set properties are resolved" >+ }); >+ >+ test(function() { >+ assert_equals(innerStyle.getPropertyValue("font-size"), "100px"); >+ }, "inherited_property_values", { >+ assert: "Inherited properties are resolved" >+ }); >+ >+ test(function() { >+ assert_equals(innerStyle.getPropertyValue("width"), "100px"); >+ }, "relative_property_values", { >+ assert: "Relative properties are resolved" >+ }); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..904641a1fe37cd0180a63590db6066eca3b62e84 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002-expected.txt >@@ -0,0 +1,4 @@ >+ >+ >+PASS Check that a percent width in an iframe is resolved against iframe width for getComputedStyle. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cd7b324ce751a7cd781a79d2dafd3a801edee649 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002.html >@@ -0,0 +1,17 @@ >+<!DOCTYPE html> >+<title>CSS Test: getComputedStyle - resolved width in iframe</title> >+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org" /> >+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values" /> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<iframe id="frm" width="100"></iframe> >+<script> >+ test(() => { >+ const frmDoc = frm.contentWindow.document; >+ frmDoc.open(); >+ frmDoc.write('<body style="margin:0"><div style="width:100%"></div>'); >+ frmDoc.close(); >+ >+ assert_equals(frm.contentWindow.getComputedStyle(frmDoc.querySelector("div")).width, "100px"); >+ }, "Check that a percent width in an iframe is resolved against iframe width for getComputedStyle."); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bb1e6de1948192ad9b508473ac0844d950e1a78f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003-expected.txt >@@ -0,0 +1,4 @@ >+ >+ >+PASS Check that a percent width in an iframe is the resolved width when the iframe is displayed. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c295451dcb568b62ee7fb45b654db9432f4635b7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003.html >@@ -0,0 +1,20 @@ >+<!DOCTYPE html> >+<title>CSS Test: getComputedStyle - resolved width in iframe dynamic display</title> >+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org" /> >+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values" /> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<iframe id="frm" width="100" style="display:none"></iframe> >+<script> >+ const frmDoc = frm.contentWindow.document; >+ frmDoc.open(); >+ frmDoc.write('<body style="margin:0"><div style="width:100%"></div>'); >+ frmDoc.close(); >+ >+ document.body.offsetWidth; // Make sure we layout the top document. >+ >+ test(() => { >+ frm.style.display = "inline"; >+ assert_equals(frm.contentWindow.getComputedStyle(frmDoc.querySelector("div")).width, "100px"); >+ }, "Check that a percent width in an iframe is the resolved width when the iframe is displayed."); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..65038c22af0e29c741176536d0ce75efeef7caad >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004-expected.txt >@@ -0,0 +1,5 @@ >+ >+ >+PASS Check that the initial width is 100px. >+PASS Check that the resolved width of the inner div is affected by changing the width of outer iframe. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4401a2392d33685559ff9a9b8d60c4afd9bc0ccc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004.html >@@ -0,0 +1,29 @@ >+<!DOCTYPE html> >+<title>CSS Test: getComputedStyle - resolved width in nested iframes dynamic width</title> >+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org" /> >+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values" /> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<iframe id="outer" width="100" scrolling="no" frameborder="0"></iframe> >+<script> >+ const outerDoc = outer.contentWindow.document; >+ outerDoc.open(); >+ outerDoc.write('<body style="margin:0"><iframe id="inner" scrolling="no" frameborder="0" style="width:100%"></iframe>'); >+ outerDoc.close(); >+ >+ const innerWindow = outerDoc.querySelector("#inner").contentWindow; >+ const innerDoc = innerWindow.document; >+ innerDoc.open(); >+ innerDoc.write('<body style="margin:0"><div style="width:100%"></div>'); >+ innerDoc.close(); >+ innerDoc.body.offsetWidth; // Make sure we layout the top document. >+ >+ test(() => { >+ assert_equals(innerWindow.getComputedStyle(innerDoc.querySelector("div")).width, "100px"); >+ }, "Check that the initial width is 100px."); >+ >+ test(() => { >+ outer.setAttribute("width", "200"); >+ assert_equals(innerWindow.getComputedStyle(innerDoc.querySelector("div")).width, "200px"); >+ }, "Check that the resolved width of the inner div is affected by changing the width of outer iframe."); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..01b7eb1747a537b288b118054a17a44b704f3133 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt >@@ -0,0 +1,8 @@ >+ >+PASS Style attribute should create CSS declaration block based on its content >+FAIL Changes to style attribute should reflect on CSS declaration block assert_equals: CSS declaration block after removing the style attribute expected "" but got "z-index: 21;" >+PASS Changes to CSS declaration block should reflect on style attribute >+PASS Changes to CSS declaration block should queue mutation record for style attribute >+PASS Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record >+PASS Changes to CSS declaration block after a base URL change >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c8c638490a381d0b815282182b182abee6f7d5a2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html >@@ -0,0 +1,133 @@ >+<!DOCTYPE html> >+<meta charset="UTF-8"> >+<link rel="author" title="Xidorn Quan" href="mailto:me@upsuper.org"> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#css-declaration-blocks"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<body> >+<script> >+function createTestElement(style) { >+ let wrapper = document.createElement("div"); >+ wrapper.innerHTML = `<div id="test" style="${style}"></div>`; >+ return wrapper.querySelector("#test"); >+} >+ >+test(function() { >+ let elem = createTestElement("z-index: 10;"); >+ assert_equals(elem.style.cssText, "z-index: 10;"); >+}, "Style attribute should create CSS declaration block based on its content"); >+ >+test(function() { >+ let elem = createTestElement("z-index: 20;"); >+ let style = elem.style; >+ assert_equals(style.cssText, "z-index: 20;"); >+ function assert_css_text(value, action) { >+ assert_equals(style.cssText, value, "CSS declaration block after " + action); >+ } >+ elem.setAttribute("style", "z-index: 21;"); >+ assert_css_text("z-index: 21;", "changing the style attribute"); >+ elem.removeAttribute("style"); >+ assert_css_text("", "removing the style attribute"); >+ elem.setAttribute("style", "position: absolute;"); >+ assert_css_text("position: absolute;", "adding style attribute again"); >+}, "Changes to style attribute should reflect on CSS declaration block"); >+ >+test(function() { >+ let elem = createTestElement("z-index: 30;"); >+ let style = elem.style; >+ assert_equals(style.cssText, "z-index: 30;"); >+ function assert_attr(value, action) { >+ assert_equals(elem.getAttribute("style"), value, "style attribute after " + action); >+ } >+ style.setProperty("z-index", "31"); >+ assert_attr("z-index: 31;", "changing property in CSS declaration block"); >+ style.removeProperty("z-index"); >+ assert_attr("", "removing property from CSS declaration block"); >+ style.setProperty("position", "absolute"); >+ assert_attr("position: absolute;", "adding property to CSS declaration block"); >+ style.cssText = "z-index: 32;"; >+ assert_attr("z-index: 32;", "changing cssText"); >+ style.cssText = "z-index: 33; invalid"; >+ assert_attr("z-index: 33;", "changing cssText to a partial invalid value"); >+}, "Changes to CSS declaration block should reflect on style attribute"); >+ >+test(function() { >+ let elem = createTestElement("z-index: 40;"); >+ let style = elem.style; >+ assert_equals(style.cssText, "z-index: 40;"); >+ // Create an observer for the element. >+ let observer = new MutationObserver(function() {}); >+ observer.observe(elem, {attributes: true, attributeOldValue: true}); >+ function assert_record_with_old_value(oldValue, action) { >+ let records = observer.takeRecords(); >+ assert_equals(records.length, 1, "number of mutation records after " + action); >+ let record = records[0]; >+ assert_equals(record.type, "attributes", "mutation type after " + action); >+ assert_equals(record.attributeName, "style", "mutated attribute after " + action); >+ assert_equals(record.oldValue, oldValue, "old value after " + action); >+ } >+ style.setProperty("z-index", "41"); >+ assert_record_with_old_value("z-index: 40;", "changing property in CSS declaration block"); >+ style.cssText = "z-index: 42;"; >+ assert_record_with_old_value("z-index: 41;", "changing cssText"); >+ style.cssText = "z-index: 42;"; >+ assert_record_with_old_value("z-index: 42;", "changing cssText with the same content"); >+ style.removeProperty("z-index"); >+ assert_record_with_old_value("z-index: 42;", "removing property from CSS declaration block"); >+ // Mutation to shorthand properties should also trigger only one mutation record. >+ style.setProperty("margin", "1px"); >+ assert_record_with_old_value("", "adding shorthand property to CSS declaration block"); >+ style.removeProperty("margin"); >+ assert_record_with_old_value("margin: 1px;", "removing shorthand property from CSS declaration block"); >+ // Final sanity check. >+ assert_equals(elem.getAttribute("style"), ""); >+}, "Changes to CSS declaration block should queue mutation record for style attribute"); >+ >+test(function() { >+ let elem = createTestElement("z-index: 50; invalid"); >+ let style = elem.style; >+ assert_equals(style.cssText, "z-index: 50;"); >+ // Create an observer for the element. >+ let observer = new MutationObserver(function() {}); >+ observer.observe(elem, {attributes: true}); >+ function assert_no_record(action) { >+ let records = observer.takeRecords(); >+ assert_true(records.length == 0, "expect no record after " + action); >+ } >+ style.setProperty("z-index", "invalid"); >+ assert_no_record("setting invalid value to property"); >+ // Longhand property. >+ style.removeProperty("position"); >+ assert_no_record("removing non-existing longhand property"); >+ style.setProperty("position", ""); >+ assert_no_record("setting empty string to non-existing longhand property"); >+ // Shorthand property. >+ style.removeProperty("margin"); >+ assert_no_record("removing non-existing shorthand property"); >+ style.setProperty("margin", ""); >+ assert_no_record("setting empty string to non-existing shorthand property"); >+ // Check that the value really isn't changed. >+ assert_equals(elem.getAttribute("style"), "z-index: 50; invalid", >+ "style attribute after removing non-existing properties"); >+}, "Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record"); >+ >+test(function() { >+ let elem = createTestElement("background-image: url(./);"); >+ let style = elem.style; >+ let base = document.createElement("base"); >+ base.href = "/"; >+ document.body.appendChild(elem); >+ let originalComputedValue = getComputedStyle(elem).backgroundImage; >+ document.head.appendChild(base); >+ this.add_cleanup(() => { >+ document.head.removeChild(base); >+ document.body.removeChild(elem); >+ }); >+ style.setProperty("background-color", "green"); >+ assert_equals(getComputedStyle(elem).backgroundImage, originalComputedValue, >+ "getComputedStyle(elem).backgroundImage after setting background-color"); >+ style.setProperty("background-image", "url(./)"); >+ assert_not_equals(getComputedStyle(elem).backgroundImage, originalComputedValue, >+ "getComputedStyle(elem).backgroundImage after setting background-image"); >+}, "Changes to CSS declaration block after a base URL change"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..fb8cfc3aa4285ea95ecde47950baacacdedc0f6c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS Mutating the style declaration doesn't remove the style attribute >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications.html >new file mode 100644 >index 0000000000000000000000000000000000000000..61de84dbf7540c71dbded7fa664b6e61c4c998dc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications.html >@@ -0,0 +1,16 @@ >+<!DOCTYPE html> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:ecobos@igalia.com"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#the-elementcssinlinestyle-interface"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="test" style="color: red"></div> >+<script> >+test(function() { >+ var el = document.getElementById("test"); >+ el.style.color = ""; >+ assert_true(el.hasAttribute("style")); >+ >+ el.removeAttribute("style"); >+ assert_false(el.hasAttribute("style")); >+}, "Mutating the style declaration doesn't remove the style attribute"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..096aa6e7e68ad172766e959e4746f6d9a1d7e73a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS Reading CSSStyleDeclaration initialized from a style element >+PASS Setting CSSStyleDeclaration#cssText >+PASS Calling CSSStyleDeclaration#setProperty >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications.html >new file mode 100644 >index 0000000000000000000000000000000000000000..26a86e21eb0e42f56d8423e77ed35dbb91adc2a4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications.html >@@ -0,0 +1,63 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: CSSStyleDeclaration Interface</title> >+ <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="CSSStyleDeclaration is properly initialized and can be modified through its interface"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement"> >+ #test { color: green; } >+ </style> >+ </head> >+ <body> >+ <div id="log"></div> >+ <div id="test"></div> >+ <script type="text/javascript"> >+ var declaration; >+ setup(function() { >+ var styleElement = document.getElementById("styleElement"); >+ declaration = styleElement.sheet.cssRules.item(0).style; >+ }); >+ >+ test(function() { >+ assert_equals(declaration.cssText, "color: green;"); >+ assert_equals(declaration.getPropertyValue("color"), "green"); >+ }, "Reading CSSStyleDeclaration initialized from a style element"); >+ >+ test(function() { >+ declaration.cssText = "margin-left:10px; padding-left:10px"; >+ assert_equals(declaration.cssText, "margin-left: 10px; padding-left: 10px;"); >+ assert_equals(declaration.length, 2); >+ assert_equals(declaration.item(0), "margin-left"); >+ assert_equals(declaration.item(1), "padding-left"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "10px"); >+ assert_equals(declaration.getPropertyValue("padding-left"), "10px"); >+ >+ var computedStyle = window.getComputedStyle(document.getElementById("test")); >+ assert_equals(computedStyle.getPropertyValue("margin-left"), "10px"); >+ assert_equals(computedStyle.getPropertyValue("padding-left"), "10px"); >+ }, "Setting CSSStyleDeclaration#cssText"); >+ >+ test(function() { >+ while (declaration.length > 0) { >+ declaration.removeProperty(declaration.item(0)); >+ } >+ declaration.setProperty("margin-left", "15px"); >+ declaration.setProperty("padding-left", "15px"); >+ >+ assert_equals(declaration.length, 2); >+ assert_equals(declaration.item(0), "margin-left"); >+ assert_equals(declaration.item(1), "padding-left"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "15px"); >+ assert_equals(declaration.getPropertyValue("padding-left"), "15px"); >+ >+ var computedStyle = window.getComputedStyle(document.getElementById("test")); >+ assert_equals(computedStyle.getPropertyValue("margin-left"), "15px"); >+ assert_equals(computedStyle.getPropertyValue("padding-left"), "15px"); >+ }, "Calling CSSStyleDeclaration#setProperty"); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..6ce2b01d363b3785042fbd0ca6e327e424931cd4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS style.textContent modification >+PASS style.innerHTML modification >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f3d0dd68466d89ad6fef7299790b3a5fe202a5af >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse.html >@@ -0,0 +1,59 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset=utf-8> >+ <title>CSS Test: DOM modification re-parsing test</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <script src=../../../../../resources/testharness.js></script> >+ <script src=../../../../../resources/testharnessreport.js></script> >+ <style>div { min-width: 0px; }</style> >+ <style id="style-element"></style> >+</head> >+<body> >+<div id="test-div"></div> >+<script type="text/javascript"> >+ var style = document.getElementById("style-element"); >+ var div = document.getElementById("test-div"); >+ >+ function testProperty(prop) { >+ // Assigning an empty string to textContent or innerHTML should trigger a >+ // reparse only if the element is not empty. >+ style.sheet.insertRule("#test-div { min-width: 42px; }"); >+ assert_equals(getComputedStyle(div).minWidth, "42px"); >+ >+ style[prop] = ""; >+ assert_equals(getComputedStyle(div).minWidth, "42px"); >+ >+ style[prop] = " "; >+ assert_equals(getComputedStyle(div).minWidth, "0px"); >+ >+ style.sheet.insertRule("#test-div { min-width: 42px; }"); >+ assert_equals(getComputedStyle(div).minWidth, "42px"); >+ >+ style[prop] = ""; >+ assert_equals(getComputedStyle(div).minWidth, "0px"); >+ >+ style.sheet.insertRule("#test-div { min-width: 42px; }"); >+ assert_equals(getComputedStyle(div).minWidth, "42px"); >+ >+ style.appendChild(document.createTextNode("")); >+ assert_equals(getComputedStyle(div).minWidth, "0px"); >+ >+ style.sheet.insertRule("#test-div { min-width: 42px; }"); >+ assert_equals(getComputedStyle(div).minWidth, "42px"); >+ >+ style[prop] = ""; >+ assert_equals(getComputedStyle(div).minWidth, "0px"); >+ } >+ >+ test(function() { >+ testProperty("textContent"); >+ }, "style.textContent modification"); >+ >+ test(function() { >+ testProperty("innerHTML"); >+ }, "style.innerHTML modification"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..647dc39b6eb984aaa693f12b91bfc33c00098e28 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule-expected.txt >@@ -0,0 +1,11 @@ >+ >+PASS CSSRule and CSSImportRule types >+PASS Type of CSSRule#type and constant values >+PASS Existence and writability of CSSRule attributes >+PASS Values of CSSRule attributes >+PASS Existence and writability of CSSImportRule attributes >+PASS Values of CSSImportRule attributes >+FAIL CSSImportRule : MediaList mediaText attribute should be updated due to [PutForwards] assert_equals: expected "print" but got "screen" >+PASS CSSStyleDeclaration cssText attribute should be updated due to [PutForwards] >+FAIL StyleSheet : MediaList mediaText attribute should be updated due to [PutForwards] assert_equals: expected "screen" but got "" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..877ad9d0a42c63446aa9a4ddbb336bbfb5507c39 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule.html >@@ -0,0 +1,108 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSSOM CSSRule CSSImportRule interface</title> >+ <link rel="author" title="Letitia Lew" href="mailto:lew.letitia@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-rules"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssimportrule-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="All properties for this CSSImportRule instance of CSSRule are initialized correctly"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ >+ <style id="styleElement" type="text/css"> >+ @import url("support/a-green.css"); >+ @import url("support/a-green.css") screen; >+ @import url("support/a-green.css") all; >+ @page { background-color: red; } >+ </style> >+</head> >+<body> >+ <div id="log"></div> >+ >+ <script type="text/javascript"> >+ var styleSheet, ruleList, rule, ruleWithMedia, ruleWithMediaAll; >+ setup(function() { >+ styleSheet = document.getElementById("styleElement").sheet; >+ ruleList = styleSheet.cssRules; >+ rule = ruleList[0]; >+ ruleWithMedia = ruleList[1]; >+ ruleWithMediaAll = ruleList[2]; >+ }); >+ >+ test(function() { >+ assert_true(rule instanceof CSSRule); >+ assert_true(rule instanceof CSSImportRule); >+ assert_true(ruleWithMedia instanceof CSSRule); >+ assert_true(ruleWithMedia instanceof CSSImportRule); >+ }, "CSSRule and CSSImportRule types"); >+ >+ test(function() { >+ assert_equals(rule.STYLE_RULE, 1); >+ assert_equals(rule.IMPORT_RULE, 3); >+ assert_equals(rule.MEDIA_RULE, 4); >+ assert_equals(rule.FONT_FACE_RULE, 5); >+ assert_equals(rule.PAGE_RULE, 6); >+ assert_equals(rule.NAMESPACE_RULE, 10); >+ assert_idl_attribute(rule, "type"); >+ assert_equals(typeof rule.type, "number"); >+ }, "Type of CSSRule#type and constant values"); >+ >+ test(function() { >+ assert_true(rule instanceof CSSRule); >+ assert_idl_attribute(rule, "cssText"); >+ assert_idl_attribute(rule, "parentRule"); >+ assert_idl_attribute(rule, "parentStyleSheet"); >+ >+ assert_readonly(rule, "type"); >+ assert_readonly(rule, "parentRule"); >+ assert_readonly(rule, "parentStyleSheet"); >+ }, "Existence and writability of CSSRule attributes"); >+ >+ test(function() { >+ assert_equals(rule.type, rule.IMPORT_RULE); >+ assert_equals(typeof rule.cssText, "string"); >+ assert_equals(rule.cssText, '@import url("support/a-green.css");'); >+ assert_equals(ruleWithMedia.cssText, '@import url("support/a-green.css") screen;'); >+ assert_equals(ruleWithMediaAll.cssText, '@import url("support/a-green.css") all;'); >+ assert_equals(rule.parentRule, null); >+ assert_true(rule.parentStyleSheet instanceof CSSStyleSheet); >+ }, "Values of CSSRule attributes"); >+ >+ test(function() { >+ assert_idl_attribute(rule, "href"); >+ assert_idl_attribute(rule, "media"); >+ assert_idl_attribute(rule, "styleSheet"); >+ >+ assert_readonly(rule, "href"); >+ assert_readonly(rule, "media"); >+ assert_readonly(rule, "styleSheet"); >+ }, "Existence and writability of CSSImportRule attributes"); >+ >+ test(function() { >+ assert_equals(typeof rule.href, "string"); >+ assert_true(rule.media instanceof MediaList); >+ assert_true(rule.styleSheet instanceof CSSStyleSheet); >+ assert_true(ruleWithMedia.media.length > 0); >+ assert_equals(ruleWithMedia.media.mediaText, "screen"); >+ }, "Values of CSSImportRule attributes"); >+ >+ test(function() { >+ ruleWithMedia.media = "print"; >+ assert_equals(ruleWithMedia.media.mediaText, "print"); >+ }, "CSSImportRule : MediaList mediaText attribute should be updated due to [PutForwards]"); >+ >+ test(function() { >+ var ruleWithPage = ruleList[3]; >+ ruleWithPage.style = "background-color: green;" >+ assert_equals(ruleWithPage.style.cssText, "background-color: green;"); >+ }, "CSSStyleDeclaration cssText attribute should be updated due to [PutForwards]"); >+ >+ test(function() { >+ styleSheet.media = "screen"; >+ assert_equals(styleSheet.media.mediaText, "screen"); >+ }, "StyleSheet : MediaList mediaText attribute should be updated due to [PutForwards]"); >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..04e11aa7e9643e2b3b8f696e36b9fb9e396b7449 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSStyleDeclaration cssText serializes declaration blocks. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cbf656cc311ef83e899eb4141682be669348ec10 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize.html >@@ -0,0 +1,28 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Parsing Test: getting cssText must return the result of serializing the CSS declaration blocks.</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ >+ <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssText-cache.html"> >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ <div id="box"></div> >+ <script> >+ test(function() { >+ var style = document.getElementById('box').style; >+ style.left = "10px"; >+ assert_equals(style.cssText, "left: 10px;"); >+ style.right = "20px"; >+ assert_equals(style.cssText, "left: 10px; right: 20px;"); >+ }, 'CSSStyleDeclaration cssText serializes declaration blocks.'); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c6c1f9611ca75912c071511c65c3035e4f0f04c6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSStyleDeclaration on HTMLElement represents inline style changes >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3648a7799dc0b72091ef8c39ba782c2681930ee7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set.html >@@ -0,0 +1,37 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM: CSSStyleDeclaration on HTMLElement represents inline style changes</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ >+ <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssText-cache.html"> >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ >+ <div id="box"></div> >+ >+ <script> >+ >+ var style = document.getElementById('box').style; >+ >+ test(function(){ >+ >+ style.left = "10px"; >+ assert_equals(style.left, "10px", 'left property set on element\'s CSSStyleDeclaration Object'); >+ style.left = "20px"; >+ assert_equals(style.left, "20px", 'left property set on element\'s CSSStyleDeclaration Object'); >+ >+ }, 'CSSStyleDeclaration on HTMLElement represents inline style changes'); >+ >+ </script> >+ >+ >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4107427a1d4de19b3478028778a2ab234544afd4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS @font-face declarations are instances of CSSFontFaceRule >+PASS The style attribute must return a CSSStyleDeclaration block >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b2fd6dc2fabce215927f8d7f26aef76ca96931d7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors.html >@@ -0,0 +1,63 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Parsing Test: @font-face rules toString() as valid interfaces</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >+ <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#om-fontface"> >+ >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ >+ >+ <style id="teststyles"> >+ @font-face { >+ src: url(http://foo/bar/font.ttf); >+ } >+ @font-face { >+ font-family: STIXGeneral; >+ src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf); >+ unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF; >+ } >+ @font-face { >+ font-family: MainText; >+ src: url(http://example.com/font.ttf); >+ font-variant: oldstyle-nums proportional-nums styleset(1,3); >+ } >+ >+ @font-face { >+ font-family: BodyText; >+ src: local("HiraMaruPro-W4"); >+ font-variant: proportional-width; >+ font-feature-settings: "ital"; /* Latin italics within CJK text feature */ >+ } >+ </style> >+ >+ >+ <script> >+ var validRules = document.getElementById('teststyles').sheet.cssRules; >+ >+ test(function(){ >+ for (var i = 0; i < validRules.length; ++i) { >+ assert_equals(validRules.item(i).toString(), '[object CSSFontFaceRule]'); >+ } >+ }, '@font-face declarations are instances of CSSFontFaceRule') >+ >+ >+ test(function(){ >+ for (var i = 0; i < validRules.length; ++i) { >+ assert_equals(validRules.item(i).style.toString(), '[object CSSStyleDeclaration]'); >+ } >+ }, 'The style attribute must return a CSSStyleDeclaration block') >+ >+ </script> >+ >+ >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..81fcbdc22cc9abc16b7ed59cdf4a5608bf126ec0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL CSSStyleDeclaration values are represented within CSSFontFaceRule assert_equals: expected "url(\"http://foo/bar/font.ttf\")" but got "url(http://foo/bar/font.ttf)" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4592061387b1b2715020cdcaf21891480c02f688 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule.html >@@ -0,0 +1,58 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Parsing Test: @font-face rules parsed into CSSOM CSSFontFaceRules</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#om-fontface"> >+ >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ >+ >+ <style id="teststyles"> >+ @font-face { >+ src: url(http://foo/bar/font.ttf); >+ } >+ @font-face { >+ font-family: STIXGeneral; >+ src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf); >+ unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF; >+ } >+ @font-face { >+ font-family: MainText; >+ src: url(http://example.com/font.ttf); >+ font-variant: oldstyle-nums proportional-nums styleset(1,3); >+ } >+ >+ @font-face { >+ font-family: BodyText; >+ src: local("HiraMaruPro-W4"); >+ font-variant: proportional-width; >+ font-feature-settings: "ital"; /* Latin italics within CJK text feature */ >+ } >+ </style> >+ >+ >+ <script> >+ var validRules = document.getElementById('teststyles').sheet.cssRules; >+ >+ test(function(){ >+ >+ assert_equals(validRules[0].style.src, 'url("http://foo/bar/font.ttf")'); >+ assert_equals(validRules[1].style.fontFamily, 'STIXGeneral'); >+ >+ /* unimplemented @font-face properties are not represented in CSSOM */ >+ >+ }, 'CSSStyleDeclaration values are represented within CSSFontFaceRule') >+ >+ </script> >+ >+ >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c89a92434a195f6671bbf86f0cfea92714dad88b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder-expected.txt >@@ -0,0 +1,9 @@ >+ >+PASS Type of #s-0 is expected to be namespace rule >+PASS Type of #s-1 is expected to be @import rule >+PASS Type of #s-2 is expected to be style rule >+PASS Type of #s-3 is expected to be style rule >+PASS Type of #s-4 is expected to be @font-face rule >+PASS Type of #s-5 is expected to be media rule >+PASS Type of #s-6 is expected to be page rule >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b5e0856a0b66b4d107286e6d897b2a3466d0fadc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder.html >@@ -0,0 +1,75 @@ >+<!doctype html> >+<head> >+ <title>CSS OM: CSS Rule Types and Order</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="Testing Serialization of Style Rules"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style id="s-0"> >+ @namespace svg "http://www.w3.org/2000/svg"; >+ </style> >+ <style id="s-1"> >+ @import url('main.css'); >+ </style> >+ <style id="s-2"> >+ h1 { background: indianred; } >+ </style> >+ <style id="s-3"> >+ @namespace svg "http://www.w3.org/2000/svg"; >+ svg|a { color: white; } >+ </style> >+ <style id="s-4"> >+ @font-face { >+ font-family: 'Megalopolis'; >+ src: url('fonts/megalopolisextra-webfont.eot'); >+ src: url('fonts/megalopolisextra-webfont.eot?#iefix') format('embedded-opentype'), >+ url('fonts/megalopolisextra-webfont.woff') format('woff'), >+ url('fonts/megalopolisextra-webfont.ttf') format('truetype'), >+ url('fonts/megalopolisextra-webfont.svg#MEgalopolisExtraRegular') format('svg'); >+ font-weight: normal; >+ font-style: normal; >+ } >+ </style> >+ <style id="s-5"> >+ @media (min-width: 200px) { >+ h1 { background: aliceblue; } >+ } >+ </style> >+ <style id="s-6"> >+ @page :first { >+ h1 { color: #444; } >+ } >+ </style> >+</head> >+<body> >+ <div id="log"></div> >+ <script type="text/javascript"> >+ "use strict"; >+ >+ var stylesheets = document.styleSheets; >+ >+ var expectedOrderOfTypes = [10, 3, 1, 1, 5, 4, 6]; >+ >+ var typesText = { >+ 1: 'style rule', >+ 3: '@import rule', >+ 4: 'media rule', >+ 5: '@font-face rule', >+ 6: 'page rule', >+ 10: 'namespace rule' >+ }; >+ >+ for (var i = 0; i < stylesheets.length; i++) { >+ test( function () { >+ if (i === 3) { >+ var cssType = stylesheets[i].cssRules[1].type; >+ } else { >+ var cssType = stylesheets[i].cssRules[0].type; >+ } >+ assert_equals(typesText[cssType], typesText[expectedOrderOfTypes[i]]); >+ }, 'Type of #s-' + i + ' is expected to be ' + typesText[expectedOrderOfTypes[i]]); >+ } >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..97663b57a7e2742c329a59e09d84d91f05e7765c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand-expected.txt >@@ -0,0 +1,78 @@ >+ >+PASS shorthand font can be set with setProperty >+PASS shorthand font can be removed with removeProperty >+PASS shorthand font can be set with setProperty and priority !important >+PASS shorthand font can be removed with removeProperty even when set with !important >+PASS shorthand border-top can be set with setProperty >+PASS shorthand border-top can be removed with removeProperty >+PASS shorthand border-top can be set with setProperty and priority !important >+PASS shorthand border-top can be removed with removeProperty even when set with !important >+PASS shorthand border-right can be set with setProperty >+PASS shorthand border-right can be removed with removeProperty >+PASS shorthand border-right can be set with setProperty and priority !important >+PASS shorthand border-right can be removed with removeProperty even when set with !important >+PASS shorthand border-bottom can be set with setProperty >+PASS shorthand border-bottom can be removed with removeProperty >+PASS shorthand border-bottom can be set with setProperty and priority !important >+PASS shorthand border-bottom can be removed with removeProperty even when set with !important >+PASS shorthand border-left can be set with setProperty >+PASS shorthand border-left can be removed with removeProperty >+PASS shorthand border-left can be set with setProperty and priority !important >+PASS shorthand border-left can be removed with removeProperty even when set with !important >+PASS shorthand border can be set with setProperty >+PASS shorthand border can be removed with removeProperty >+PASS shorthand border can be set with setProperty and priority !important >+PASS shorthand border can be removed with removeProperty even when set with !important >+PASS shorthand border-color can be set with setProperty >+PASS shorthand border-color can be removed with removeProperty >+PASS shorthand border-color can be set with setProperty and priority !important >+PASS shorthand border-color can be removed with removeProperty even when set with !important >+PASS shorthand border-style can be set with setProperty >+PASS shorthand border-style can be removed with removeProperty >+PASS shorthand border-style can be set with setProperty and priority !important >+PASS shorthand border-style can be removed with removeProperty even when set with !important >+PASS shorthand border-width can be set with setProperty >+PASS shorthand border-width can be removed with removeProperty >+PASS shorthand border-width can be set with setProperty and priority !important >+PASS shorthand border-width can be removed with removeProperty even when set with !important >+PASS shorthand background-position can be set with setProperty >+PASS shorthand background-position can be removed with removeProperty >+PASS shorthand background-position can be set with setProperty and priority !important >+PASS shorthand background-position can be removed with removeProperty even when set with !important >+PASS shorthand background-repeat can be set with setProperty >+PASS shorthand background-repeat can be removed with removeProperty >+PASS shorthand background-repeat can be set with setProperty and priority !important >+PASS shorthand background-repeat can be removed with removeProperty even when set with !important >+PASS shorthand border-spacing can be set with setProperty >+PASS shorthand border-spacing can be removed with removeProperty >+PASS shorthand border-spacing can be set with setProperty and priority !important >+PASS shorthand border-spacing can be removed with removeProperty even when set with !important >+PASS shorthand list-style can be set with setProperty >+PASS shorthand list-style can be removed with removeProperty >+PASS shorthand list-style can be set with setProperty and priority !important >+PASS shorthand list-style can be removed with removeProperty even when set with !important >+PASS shorthand margin can be set with setProperty >+PASS shorthand margin can be removed with removeProperty >+PASS shorthand margin can be set with setProperty and priority !important >+PASS shorthand margin can be removed with removeProperty even when set with !important >+PASS shorthand outline can be set with setProperty >+PASS shorthand outline can be removed with removeProperty >+PASS shorthand outline can be set with setProperty and priority !important >+PASS shorthand outline can be removed with removeProperty even when set with !important >+PASS shorthand padding can be set with setProperty >+PASS shorthand padding can be removed with removeProperty >+PASS shorthand padding can be set with setProperty and priority !important >+PASS shorthand padding can be removed with removeProperty even when set with !important >+PASS shorthand background can be set with setProperty >+PASS shorthand background can be removed with removeProperty >+PASS shorthand background can be set with setProperty and priority !important >+PASS shorthand background can be removed with removeProperty even when set with !important >+PASS shorthand overflow can be set with setProperty >+PASS shorthand overflow can be removed with removeProperty >+PASS shorthand overflow can be set with setProperty and priority !important >+PASS shorthand overflow can be removed with removeProperty even when set with !important >+PASS shorthand border-radius can be set with setProperty >+PASS shorthand border-radius can be removed with removeProperty >+PASS shorthand border-radius can be set with setProperty and priority !important >+PASS shorthand border-radius can be removed with removeProperty even when set with !important >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand.html >new file mode 100644 >index 0000000000000000000000000000000000000000..cdff9a941c2a48398eff626871569d3e798373b4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand.html >@@ -0,0 +1,77 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM: CSSStyleDeclaration (set|remove)PropertyValue sets/removes shorthand properties</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ >+ <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssom-remove-shorthand-property.html"> >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ >+ <div id="box"></div> >+ >+ <script> >+ shorthandProperties = [ >+ "font", >+ "border-top", >+ "border-right", >+ "border-bottom", >+ "border-left", >+ "border", >+ "border-color", >+ "border-style", >+ "border-width", >+ "background-position", >+ "background-repeat", >+ "border-spacing", >+ "list-style", >+ "margin", >+ "outline", >+ "padding", >+ "background", >+ "overflow", >+ "border-radius" >+ ]; >+ >+ element = document.createElement('span'); >+ >+ function canSetProperty(propertyName, priority) { >+ element.style.setProperty(propertyName, 'initial', priority); >+ return element.style.getPropertyValue(propertyName) == 'initial'; >+ } >+ >+ function canRemoveProperty(propertyName) { >+ element.style.removeProperty(propertyName); >+ return element.style.getPropertyValue(propertyName) != 'initial'; >+ } >+ >+ for (i = 0; i < shorthandProperties.length; ++i) { >+ var propertyName = shorthandProperties[i]; >+ >+ test(function(){ >+ assert_true(canSetProperty(propertyName, ''), 'can setPropertyValue with shorthand'); >+ }, 'shorthand ' + propertyName + ' can be set with setProperty'); >+ >+ test(function(){ >+ assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); >+ }, 'shorthand ' + propertyName + ' can be removed with removeProperty'); >+ >+ test(function(){ >+ assert_true(canSetProperty(propertyName, 'important'), 'can setPropertyValue with shorthand'); >+ }, 'shorthand ' + propertyName + ' can be set with setProperty and priority !important'); >+ >+ test(function(){ >+ assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); >+ }, 'shorthand ' + propertyName + ' can be removed with removeProperty even when set with !important'); >+ >+ } >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..81e9efeb8ac663743caa1c77f38fdfb3c9f7d229 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt >@@ -0,0 +1,10 @@ >+ >+PASS uppercase property >+PASS uppercase value >+PASS overwriting with invalid value >+PASS use rgb >+PASS cssText order >+PASS another cssText order (non-alphabetical order) >+PASS whitespaces in value >+PASS invalid property does not appear >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e1e40e31226866578a972642850e254eaf56d108 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS inline style - text - delimiters - zero declarations >+PASS inline style - text - delimiters - one declaration >+PASS inline style - text - delimiters - two declarations >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d6ec9ff7ee6c171ddee02b8ded05cc61732447cf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter.html >@@ -0,0 +1,32 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM - CSSStyleDeclaration - Text - Serialization - Delimiters</title> >+ <link rel="author" title="Glenn Adams" href="mailto:glenn@skynav.com"/> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface"/> >+ <meta name="flags" content="dom"/> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ <body> >+ <div id="box"></div> >+ <script> >+ var style = document.getElementById('box').style; >+ >+ test(function(){ >+ style.cssText = ""; >+ assert_equals(style.cssText, ""); >+ }, 'inline style - text - delimiters - zero declarations'); >+ >+ test(function(){ >+ style.cssText = "left: 10px"; >+ assert_equals(style.cssText, "left: 10px;"); >+ }, 'inline style - text - delimiters - one declaration'); >+ >+ test(function(){ >+ style.cssText = "left: 10px; right: 20px"; >+ assert_equals(style.cssText, "left: 10px; right: 20px;"); >+ }, 'inline style - text - delimiters - two declarations'); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7fdbfee8725a461472f341c75fd140214baf8de5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS padding-left should be taken from the !important property >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important.html >new file mode 100644 >index 0000000000000000000000000000000000000000..07935c845403da93636abd3ef209269f31ca5e53 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important.html >@@ -0,0 +1,12 @@ >+<title>CSSOM test: setting a property with cssText and !important</title> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#dom-cssstyledeclaration-csstext"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="box"></div> >+<script> >+ var style = document.getElementById('box').style; >+ test(function(){ >+ style.cssText = "padding: 10px !important; padding-left: 20px;"; >+ assert_equals(style.getPropertyValue("padding-left"), "10px"); >+ }, "padding-left should be taken from the !important property"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1284df3e003271967942f23f717777c725634dee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html >@@ -0,0 +1,102 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Test: CSSStyleDeclaration.cssText Test</title> >+ <link rel="author" title="kkoichi" href="mailto:coarse.ground@gmail.com"> >+ <link rel="reviewer" title="Simon Pieters" href="mailto:simonp@opera.com"><!-- 06-27-2013 --> >+ <link rel="help" href="https://drafts.csswg.org/cssom-1/#dom-cssstyledeclaration-csstext"> >+ <meta name="assert" content="CSS declarations is serialized as expected"> >+ <meta name="flags" content="dom"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ <body> >+ <div id="log"></div> >+ <script> >+ function newElm() { >+ return document.body.appendChild(document.createElement('div')); >+ } >+ >+ test(function(){ >+ var style = newElm().style; >+ style.COLOR = 'red'; >+ >+ assert_equals(style.cssText, ''); >+ >+ }, 'uppercase property'); >+ >+ test(function(){ >+ var style = newElm().style; >+ style.color = 'RED'; >+ >+ // https://www.w3.org/Bugs/Public/show_bug.cgi?id=29317 >+ assert_any(assert_equals, style.cssText, ['color: red;', 'color: RED;']); >+ >+ }, 'uppercase value'); >+ >+ test(function(){ >+ var style = newElm().style; >+ >+ style.color = 'red'; >+ >+ style.color = 'unknown color'; >+ >+ assert_equals(style.cssText, 'color: red;'); >+ >+ }, 'overwriting with invalid value'); >+ >+ test(function(){ >+ var style = newElm().style; >+ style.color = 'rgb(255, 0, 0)'; >+ >+ assert_equals(style.cssText, 'color: rgb(255, 0, 0);'); >+ >+ }, 'use rgb'); >+ >+ test(function(){ >+ var e = newElm(); >+ var style = e.style; >+ >+ style.color = 'red'; >+ style.fontSize = '10pt'; >+ style.fontWeight = 'bold'; >+ >+ assert_equals(style.cssText, 'color: red; font-size: 10pt; font-weight: bold;'); >+ >+ }, 'cssText order'); >+ >+ test(function(){ >+ var e = newElm(); >+ var style = e.style; >+ >+ style.fontWeight = 'bold'; >+ style.color = 'red'; >+ style.fontSize = '10pt'; >+ >+ assert_equals(style.cssText, 'font-weight: bold; color: red; font-size: 10pt;'); >+ >+ }, 'another cssText order (non-alphabetical order)'); >+ >+ test(function(){ >+ var style = newElm().style; >+ >+ style.color = ' red'; >+ style.fontSize = '10pt '; >+ >+ assert_equals(style.cssText, 'color: red; font-size: 10pt;'); >+ >+ }, 'whitespaces in value'); >+ >+ test(function(){ >+ var style = newElm().style; >+ >+ style.color = 'red'; >+ style.unknown = 'unknown'; >+ style.fontSize = '10pt'; >+ assert_equals(style.cssText, 'color: red; font-size: 10pt;'); >+ >+ }, 'invalid property does not appear'); >+ >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c64766ad6509e1acc75e07a3e9705ea3f635bedf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS HTMLElement's CSSStyleDeclaration is mutable >+PASS getComputedStyle's CSSStyleDeclaration is not mutable >+PASS StyleSheet's CSSStyleDeclaration is mutable >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2661793f3283a9dcbf60698a4b26fbdbbb242840 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability.html >@@ -0,0 +1,69 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM: CSSStyleDeclaration is mutable and immutable in various settings</title> >+ <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >+ <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >+ >+ <meta name="flags" content="dom"> >+ >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ </head> >+ >+ <body> >+ <div id="log"></div> >+ <div id="box"></box> >+ <div id="box2"></box> >+ <style id="teststyles"> >+ #box2 { width: 15px; } >+ </style> >+ <script> >+ >+ test(function(){ >+ var elem = document.getElementById('box'); >+ >+ elem.style.width = '10px'; >+ assert_equals(elem.style.width, '10px', 'setting via style property'); >+ elem.style.width = ''; >+ >+ elem.style.cssText = 'width: 10px'; >+ assert_equals(elem.style.width, '10px', 'setting via cssText'); >+ elem.style.width = ''; >+ >+ }, 'HTMLElement\'s CSSStyleDeclaration is mutable') >+ >+ >+ test(function(){ >+ var elem = document.getElementById('box'); >+ var style = getComputedStyle(elem, 'width'); >+ >+ assert_throws('NO_MODIFICATION_ALLOWED_ERR', function(){ >+ style.width = '10px'; >+ }); >+ >+ }, 'getComputedStyle\'s CSSStyleDeclaration is not mutable') >+ >+ >+ test(function(){ >+ >+ var style = document.getElementById('teststyles').sheet.cssRules[0].style; >+ >+ assert_equals(style.width, '15px', 'width value is correct'); >+ >+ style.width = '25px'; >+ >+ assert_equals(style.width, '25px', 'width value is mutable'); >+ >+ var gCSstyle = getComputedStyle(document.getElementById('box2')); >+ >+ assert_equals(gCSstyle.width, '25px', 'styleSheet change is live and accesible via getComputedStyle'); >+ >+ }, 'StyleSheet\'s CSSStyleDeclaration is mutable'); >+ >+ >+ </script> >+ >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f327d4ac80b2a11d629765380382bde5c1abcff9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001-expected.txt >@@ -0,0 +1,5 @@ >+ >+Harness Error (TIMEOUT), message = null >+ >+NOTRUN CSSStyleDeclaration.setPropertyValue queues a mutation record, even if not mutated >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..2df90c7194bec34f8ea276ffd4b4a85edd33b64d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001.html >@@ -0,0 +1,20 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: CSSStyleDeclaration.setPropertyValue queues a mutation record when not actually mutated</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setpropertyvalue"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#update-style-attribute-for"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<script> >+ document.documentElement.style.top = "0px"; >+ >+ let test = async_test("CSSStyleDeclaration.setPropertyValue queues a mutation record, even if not mutated"); >+ let m = new MutationObserver(function(r) { >+ assert_equals(r.length, 1); >+ test.done(); >+ }); >+ >+ m.observe(document.documentElement, { attributes: true }); >+ document.documentElement.style.top = "0px"; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2f985b3f5b42accdde4409d0cf4499cc964f9d1f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSStyleDeclaration.setPropertyValue doesn't queue a mutation record when setting invalid values >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3b8aa2dfa49b42585b66f8ccf89223042fe6b5c0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002.html >@@ -0,0 +1,15 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: CSSStyleDeclaration.setPropertyValue doesn't queue a mutation record for invalid values</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setpropertyvalue"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<script> >+ let test = async_test("CSSStyleDeclaration.setPropertyValue doesn't queue a mutation record when setting invalid values"); >+ let m = new MutationObserver(test.unreached_func("shouldn't queue a mutation record")); >+ m.observe(document.documentElement, { attributes: true }); >+ >+ document.documentElement.style.width = "-100px"; >+ requestAnimationFrame(() => test.done()); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..984876b25d634049af33a90f615efb861274e54f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed, invoked from setPropertyValue >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..da74fac38eb9b0e60591d0de3ee8943f7de5c869 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed, invoked from setPropertyValue</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setpropertyvalue"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<script> >+ let test = async_test("CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed, invoked from setPropertyValue"); >+ document.documentElement.style.top = "0"; >+ let m = new MutationObserver(test.unreached_func("shouldn't queue a mutation record")); >+ m.observe(document.documentElement, { attributes: true }); >+ >+ document.documentElement.style.width = ""; >+ requestAnimationFrame(() => test.done()); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ce5a911a24d48416465e1f85946f768ef3d400cd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8e7d308c890fc6065816aed8040c9816a4751b06 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setpropertyvalue"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<script> >+ let test = async_test("CSSStyleDeclaration.removeProperty doesn't queue a mutation record when not actually removed"); >+ document.documentElement.style.top = "0"; >+ let m = new MutationObserver(test.unreached_func("shouldn't queue a mutation record")); >+ m.observe(document.documentElement, { attributes: true }); >+ >+ document.documentElement.style.removeProperty("width"); >+ requestAnimationFrame(() => test.done()); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..eb066fd1415408933d41e30424b68b794200b3c0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order-expected.txt >@@ -0,0 +1,6 @@ >+ >+FAIL setProperty with existing longhand should change order assert_array_equals: Property order should match after setting existing property property 0, expected "bottom" but got "top" >+FAIL invoke property setter with existing longhand should change order assert_array_equals: Property order should match after setting existing property property 0, expected "bottom" but got "top" >+FAIL setProperty with existing shorthand should change order assert_array_equals: Property order should match after setting an existing shorthand property 0, expected "top" but got "margin-top" >+FAIL invoke property setter with existing shorthand should change order assert_array_equals: Property order should match after setting an existing shorthand property 0, expected "top" but got "margin-top" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8480c8b864eb36c6d75c95038e59b400fbe2565c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order.html >@@ -0,0 +1,108 @@ >+<!DOCTYPE html> >+<title>CSSOM test: order of declarations after setting via CSSOM</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#set-a-css-declaration-value"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="log"></div> >+<script> >+ function generateCSSDeclBlock(props) { >+ let elem = document.createElement("div"); >+ let cssText = props.map(([prop, value]) => `${prop}: ${value};`).join(" "); >+ elem.setAttribute("style", cssText); >+ return elem.style; >+ } >+ function checkOrder(block, props, msg) { >+ assert_array_equals(Array.from(block), props, `Property order should match ${msg}`); >+ } >+ function arrayWithItemsAtEnd(array, items) { >+ let result = array.filter(item => !items.includes(item)); >+ return result.concat(items); >+ } >+ >+ const SUBPROPS = { >+ "margin": ["margin-top", "margin-right", "margin-bottom", "margin-left"], >+ "padding": ["padding-top", "padding-right", "padding-bottom", "padding-left"], >+ }; >+ >+ test(function() { >+ let block = generateCSSDeclBlock([ >+ ["top", "1px"], >+ ["bottom", "2px"], >+ ["left", "3px"], >+ ["right", "4px"], >+ ]); >+ let expectedOrder = ["top", "bottom", "left", "right"]; >+ checkOrder(block, expectedOrder, "in initial block"); >+ >+ block.setProperty("top", "5px"); >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["top"]); >+ checkOrder(block, expectedOrder, "after setting existing property"); >+ >+ block.setProperty("bottom", "2px"); >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["bottom"]); >+ checkOrder(block, expectedOrder, "after setting existing property with identical value"); >+ }, "setProperty with existing longhand should change order"); >+ >+ test(function() { >+ let block = generateCSSDeclBlock([ >+ ["top", "1px"], >+ ["bottom", "2px"], >+ ["left", "3px"], >+ ["right", "4px"], >+ ]); >+ let expectedOrder = ["top", "bottom", "left", "right"]; >+ checkOrder(block, expectedOrder, "in initial block"); >+ >+ block.top = "5px"; >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["top"]); >+ checkOrder(block, expectedOrder, "after setting existing property"); >+ >+ block.bottom = "2px"; >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["bottom"]); >+ checkOrder(block, expectedOrder, "after setting existing property with identical value"); >+ }, "invoke property setter with existing longhand should change order"); >+ >+ test(function() { >+ let block = generateCSSDeclBlock([ >+ ["margin", "1px"], >+ ["top", "2px"], >+ ["padding", "3px"], >+ ]); >+ let expectedOrder = SUBPROPS["margin"].concat(["top"]).concat(SUBPROPS["padding"]); >+ checkOrder(block, expectedOrder, "in initial block"); >+ >+ block.setProperty("margin", "4px"); >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, SUBPROPS["margin"]); >+ checkOrder(block, expectedOrder, "after setting an existing shorthand"); >+ >+ block.setProperty("padding", "3px"); >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, SUBPROPS["padding"]); >+ checkOrder(block, expectedOrder, "after setting an existing shorthand with identical value"); >+ >+ block.setProperty("margin-bottom", "5px"); >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["margin-bottom"]); >+ checkOrder(block, expectedOrder, "after setting a longhand in an existing shorthand"); >+ }, "setProperty with existing shorthand should change order"); >+ >+ test(function() { >+ let block = generateCSSDeclBlock([ >+ ["margin", "1px"], >+ ["top", "2px"], >+ ["padding", "3px"], >+ ]); >+ let expectedOrder = SUBPROPS["margin"].concat(["top"]).concat(SUBPROPS["padding"]); >+ checkOrder(block, expectedOrder, "in initial block"); >+ >+ block.margin = "4px"; >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, SUBPROPS["margin"]); >+ checkOrder(block, expectedOrder, "after setting an existing shorthand"); >+ >+ block.padding = "3px"; >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, SUBPROPS["padding"]); >+ checkOrder(block, expectedOrder, "after setting an existing shorthand with identical value"); >+ >+ block.marginBottom = "5px"; >+ expectedOrder = arrayWithItemsAtEnd(expectedOrder, ["margin-bottom"]); >+ checkOrder(block, expectedOrder, "after setting a longhand in an existing shorthand"); >+ }, "invoke property setter with existing shorthand should change order"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..76ee47af3b06ba5398dd33d70e7313675ddd184b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape-expected.txt >@@ -0,0 +1,12 @@ >+ >+PASS Number of arguments >+PASS String conversion >+PASS Null bytes >+PASS Replacement character >+PASS Number prefix >+PASS Letter number prefix >+PASS Dash number prefix >+PASS Double dash prefix >+PASS Various tests >+PASS Surrogates >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6e9a16a2ab30c6e84175252ecf599e0cd897d534 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape.html >@@ -0,0 +1,98 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>CSS#escape</title> >+<link rel=help href=https://drafts.csswg.org/cssom-1/#the-css.escape()-method> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<div id=log></div> >+<script> >+test(function() { >+ assert_equals(CSS.escape.length, 1); >+ assert_throws(new TypeError(), function() { CSS.escape(); }); >+}, "Number of arguments"); >+ >+test(function() { >+ assert_equals(CSS.escape(true), 'true'); >+ assert_equals(CSS.escape(false), 'false'); >+ assert_equals(CSS.escape(null), 'null'); >+ assert_equals(CSS.escape(''), ''); >+}, "String conversion"); >+ >+test(function() { >+ assert_equals(CSS.escape('\0'), '\uFFFD'); >+ assert_equals(CSS.escape('a\0'), 'a\uFFFD'); >+ assert_equals(CSS.escape('\0b'), '\uFFFDb'); >+ assert_equals(CSS.escape('a\0b'), 'a\uFFFDb'); >+}, "Null bytes"); >+ >+test(function() { >+ assert_equals(CSS.escape('\uFFFD'), '\uFFFD'); >+ assert_equals(CSS.escape('a\uFFFD'), 'a\uFFFD'); >+ assert_equals(CSS.escape('\uFFFDb'), '\uFFFDb'); >+ assert_equals(CSS.escape('a\uFFFDb'), 'a\uFFFDb'); >+}, "Replacement character"); >+ >+test(function() { >+ assert_equals(CSS.escape('0a'), '\\30 a'); >+ assert_equals(CSS.escape('1a'), '\\31 a'); >+ assert_equals(CSS.escape('2a'), '\\32 a'); >+ assert_equals(CSS.escape('3a'), '\\33 a'); >+ assert_equals(CSS.escape('4a'), '\\34 a'); >+ assert_equals(CSS.escape('5a'), '\\35 a'); >+ assert_equals(CSS.escape('6a'), '\\36 a'); >+ assert_equals(CSS.escape('7a'), '\\37 a'); >+ assert_equals(CSS.escape('8a'), '\\38 a'); >+ assert_equals(CSS.escape('9a'), '\\39 a'); >+}, "Number prefix"); >+ >+test(function() { >+ assert_equals(CSS.escape('a0b'), 'a0b'); >+ assert_equals(CSS.escape('a1b'), 'a1b'); >+ assert_equals(CSS.escape('a2b'), 'a2b'); >+ assert_equals(CSS.escape('a3b'), 'a3b'); >+ assert_equals(CSS.escape('a4b'), 'a4b'); >+ assert_equals(CSS.escape('a5b'), 'a5b'); >+ assert_equals(CSS.escape('a6b'), 'a6b'); >+ assert_equals(CSS.escape('a7b'), 'a7b'); >+ assert_equals(CSS.escape('a8b'), 'a8b'); >+ assert_equals(CSS.escape('a9b'), 'a9b'); >+}, "Letter number prefix"); >+ >+test(function() { >+ assert_equals(CSS.escape('-0a'), '-\\30 a'); >+ assert_equals(CSS.escape('-1a'), '-\\31 a'); >+ assert_equals(CSS.escape('-2a'), '-\\32 a'); >+ assert_equals(CSS.escape('-3a'), '-\\33 a'); >+ assert_equals(CSS.escape('-4a'), '-\\34 a'); >+ assert_equals(CSS.escape('-5a'), '-\\35 a'); >+ assert_equals(CSS.escape('-6a'), '-\\36 a'); >+ assert_equals(CSS.escape('-7a'), '-\\37 a'); >+ assert_equals(CSS.escape('-8a'), '-\\38 a'); >+ assert_equals(CSS.escape('-9a'), '-\\39 a'); >+}, "Dash number prefix"); >+ >+test(function() { >+ assert_equals(CSS.escape('--a'), '--a'); >+}, "Double dash prefix"); >+ >+test(function() { >+ assert_equals(CSS.escape('\x01\x02\x1E\x1F'), '\\1 \\2 \\1e \\1f '); >+ >+ assert_equals(CSS.escape('\x80\x2D\x5F\xA9'), '\x80\x2D\x5F\xA9'); >+ assert_equals(CSS.escape('\x7F\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F'), '\\7f \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F'); >+ assert_equals(CSS.escape('\xA0\xA1\xA2'), '\xA0\xA1\xA2'); >+ assert_equals(CSS.escape('a0123456789b'), 'a0123456789b'); >+ assert_equals(CSS.escape('abcdefghijklmnopqrstuvwxyz'), 'abcdefghijklmnopqrstuvwxyz'); >+ assert_equals(CSS.escape('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'); >+ >+ assert_equals(CSS.escape('\x20\x21\x78\x79'), '\\ \\!xy'); >+}, "Various tests"); >+ >+test(function() { >+ // astral symbol (U+1D306 TETRAGRAM FOR CENTRE) >+ assert_equals(CSS.escape('\uD834\uDF06'), '\uD834\uDF06'); >+ // lone surrogates >+ assert_equals(CSS.escape('\uDF06'), '\uDF06'); >+ assert_equals(CSS.escape('\uD834'), '\uD834'); >+}, "Surrogates"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..d558498ef8f52b4834c29e494174fa78eff570a1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL The font shorthand should be serialized just like any other shorthand. assert_equals: expected "font: 10px/1 Ahem;" but got "font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 10px; line-height: 1; font-family: Ahem;" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization.html >new file mode 100644 >index 0000000000000000000000000000000000000000..b372175b28a43c0d4028ea3eeb3b257ec1d67cdf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization.html >@@ -0,0 +1,16 @@ >+<!doctype html> >+<html> >+<meta charset="utf-8"> >+<title>Serialization of font shorthand</title> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#serialize-a-css-declaration-block"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="target" style="font: 10px/1 Ahem;"></div> >+<script> >+ test(function() { >+ var target = document.getElementById('target'); >+ assert_equals(target.style.cssText, 'font: 10px/1 Ahem;'); >+ assert_equals(target.style.font, '10px/1 Ahem'); >+ }, "The font shorthand should be serialized just like any other shorthand."); >+</script> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..63947e2b6e7133ff6e051532cd174ebef702c16a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS getComputedStyle returns no style for detached element >+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_true: expected true got false >+FAIL getComputedStyle returns no style for element outside the flat tree assert_true: expected true got false >+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_true: expected true got false >+PASS getComputedStyle returns no style for shadow tree outside of flattened tree >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a715bf5d44b8ad4d0c877ecb17205e5a02c9ab2f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html >@@ -0,0 +1,44 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: getComputedStyle returns no style for elements not in the tree</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<div id="host"> >+ <div id="non-slotted"> >+ <div id="non-slotted-descendant"></div> >+ </div> >+</div> >+<iframe srcdoc="<html></html>" style="display: none"></iframe> >+<script> >+function testNoComputedStyle(element, description) { >+ test(function() { >+ assert_true(!!element); >+ let style = getComputedStyle(element); >+ assert_true(!!style); >+ assert_true(style.length === 0); >+ assert_equals(style.color, ""); >+ }, `getComputedStyle returns no style for ${description}`); >+} >+ >+let detached = document.createElement('div'); >+testNoComputedStyle(detached, "detached element"); >+ >+testNoComputedStyle(document.querySelector('iframe').contentDocument.documentElement, >+ "element in non-rendered iframe (display: none)"); >+ >+host.attachShadow({ mode: "open" }); >+testNoComputedStyle(document.getElementById('non-slotted'), >+ "element outside the flat tree"); >+ >+testNoComputedStyle(document.getElementById('non-slotted-descendant'), >+ "descendant outside the flat tree"); >+ >+let shadowRoot = detached.attachShadow({ mode: "open" }); >+shadowRoot.innerHTML = ` >+ <div id="detached-shadow-tree-descendant"></div> >+`; >+testNoComputedStyle(shadowRoot.getElementById('detached-shadow-tree-descendant'), >+ "shadow tree outside of flattened tree"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b990bb3fbfe14e674ba919aa11dbde3b230611a1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc-expected.txt >@@ -0,0 +1,4 @@ >+ >+ >+PASS getComputedStyle cross-doc properly reflects media query changes >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc.html >new file mode 100644 >index 0000000000000000000000000000000000000000..46d91320d19d88f3983ec80d9282131d96fd934b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc.html >@@ -0,0 +1,33 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: getComputedStyle cross-doc properly reflects media query changes</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<iframe id="frm" style="width: 100px; height: 100px"></iframe> >+<script> >+test(function() { >+ let frm = document.getElementById('frm'); >+ let frmDoc = frm.contentWindow.document; >+ frmDoc.open(); >+ frmDoc.write('<style>body { color: red } @media all and (min-width: 101px) { body { color: green } }</style><body>Should be green</body>'); >+ frmDoc.close(); >+ >+ document.body.offsetTop; >+ >+ assert_equals( >+ getComputedStyle(frmDoc.body).color, >+ "rgb(255, 0, 0)", >+ "Initial color should be red" >+ ); >+ >+ frm.style.width = "200px"; >+ >+ assert_equals( >+ getComputedStyle(frmDoc.body).color, >+ "rgb(0, 128, 0)", >+ "style should have been updated to account for media query changes" >+ ); >+}, "getComputedStyle cross-doc properly reflects media query changes"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..0d5545d1b7a27a33983b134cc455f8d5ee966924 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt >@@ -0,0 +1,10 @@ >+ >+PASS Resolution of width is correct for ::before and ::after pseudo-elements >+PASS Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements >+PASS Resolution of nonexistent pseudo-element styles >+FAIL Resolution of pseudo-element styles in display: none elements assert_equals: Pseudo-styles of display: none elements should be correct expected "\"Foo\"" but got "Foo" >+PASS Item-based blockification of pseudo-elements >+FAIL Item-based blockification of nonexistent pseudo-elements assert_equals: Pseudo-styles of display: flex elements should get blockified expected "block" but got "inline" >+PASS display: contents on pseudo-elements >+FAIL Unknown pseudo-elements throw assert_throws: getComputedStyle with an unknown pseudo-element throws function "() => getComputedStyle(div, "totallynotapseudo")" did not throw >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo.html >new file mode 100644 >index 0000000000000000000000000000000000000000..f95341a489717cb724b257abe079b582d0a5e6bb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo.html >@@ -0,0 +1,117 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM: Correct resolution of resolved value for display-affected pseudo-elements</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<style> >+#test { width: 100px; } >+ >+#contents { >+ display: contents; >+ border: 10px solid red; >+} >+ >+#test::before, >+#test::after, >+#contents::before, >+#contents::after, >+#flex::before, >+#flex::after { >+ content: " "; >+ width: 50%; >+ height: 10px; >+ display: block; >+} >+#none { >+ display: none; >+} >+#none::before, >+#none::after { >+ content: "Foo"; >+} >+#flex { >+ display: flex; >+} >+#flex-no-pseudo { >+ display: flex; >+} >+#contents-pseudos::before, >+#contents-pseudos::after { >+ display: contents; >+ content: "foo"; >+ position: absolute; >+} >+</style> >+<div id="test"> >+ <div id="contents"></div> >+ <div id="none"></div> >+ <div id="flex"></div> >+ <div id="flex-no-pseudo"></div> >+ <div id="contents-pseudos"></div> >+</div> >+<script> >+test(function() { >+ var div = document.getElementById('test'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(div, pseudo).width, "50px"); >+ }); >+}, "Resolution of width is correct for ::before and ::after pseudo-elements"); >+test(function() { >+ var contents = document.getElementById('contents'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(contents, pseudo).width, "50px"); >+ }); >+}, "Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements"); >+test(function() { >+ var has_no_pseudos = document.body; >+ has_no_pseudos.style.position = "relative"; >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(has_no_pseudos, pseudo).position, "static", >+ "Nonexistent " + pseudo + " pseudo-element shouldn't claim to have " + >+ "the same style as the originating element"); >+ assert_equals(getComputedStyle(has_no_pseudos, pseudo).width, "auto", >+ "Nonexistent " + pseudo + " pseudo-element shouldn't claim to have " + >+ "definite size"); >+ }); >+}, "Resolution of nonexistent pseudo-element styles"); >+test(function() { >+ var none = document.getElementById('none'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(none, pseudo).content, "\"Foo\"", >+ "Pseudo-styles of display: none elements should be correct"); >+ }); >+}, "Resolution of pseudo-element styles in display: none elements"); >+test(function() { >+ var flex = document.getElementById('flex'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(flex, pseudo).display, "block", >+ "Pseudo-styles of display: flex elements should get blockified"); >+ }); >+}, "Item-based blockification of pseudo-elements"); >+test(function() { >+ var flexNoPseudo = document.getElementById('flex-no-pseudo'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(flexNoPseudo, pseudo).display, "block", >+ "Pseudo-styles of display: flex elements should get blockified"); >+ }); >+}, "Item-based blockification of nonexistent pseudo-elements"); >+test(function() { >+ var contentsPseudos = document.getElementById('contents-pseudos'); >+ [":before", ":after"].forEach(function(pseudo) { >+ assert_equals(getComputedStyle(contentsPseudos, pseudo).display, "contents", >+ "display: contents in " + pseudo + " should get reflected on CSSOM"); >+ assert_equals(getComputedStyle(contentsPseudos, pseudo).width, "auto", >+ pseudo + " with display: contents should have no box"); >+ assert_equals(getComputedStyle(contentsPseudos, pseudo).position, "absolute", >+ "display: contents in " + pseudo + " should reflect other non-inherited properties in CSSOM"); >+ }); >+}, "display: contents on pseudo-elements"); >+test(function() { >+ var div = document.getElementById('test'); >+ assert_throws(new TypeError(), () => getComputedStyle(div, "totallynotapseudo"), >+ "getComputedStyle with an unknown pseudo-element throws"); >+}, "Unknown pseudo-elements throw"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..f4341dea16ad0477ac703201003c8e04591742fe >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical-expected.txt >@@ -0,0 +1,13 @@ >+ >+PASS Historical Document member: selectedStyleSheetSet >+PASS Historical Document member: lastStyleSheetSet >+PASS Historical Document member: preferredStyleSheetSet >+PASS Historical Document member: styleSheetSets >+PASS Historical Document member: enableStyleSheetsForSet >+PASS Historical Document member: selectedStylesheetSet >+PASS Historical Document member: preferredStylesheetSet >+PASS Historical Element member: cascadedStyle >+PASS Historical Element member: defaultStyle >+PASS Historical Element member: rawComputedStyle >+PASS Historical Element member: usedStyle >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical.html >new file mode 100644 >index 0000000000000000000000000000000000000000..496c7d13cb9459502506b357d7cecfd1681ed6c6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical.html >@@ -0,0 +1,36 @@ >+<!DOCTYPE html> >+<title>Historical features</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#changes-from-5-december-2013"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id=log></div> >+<script> >+[ >+ "selectedStyleSheetSet", >+ "lastStyleSheetSet", >+ "preferredStyleSheetSet", >+ "styleSheetSets", >+ "enableStyleSheetsForSet", >+ "selectedStylesheetSet", >+ "preferredStylesheetSet", >+].forEach(function(name) { >+ test(function() { >+ assert_false(name in document); >+ >+ var doc = document.implementation.createDocument(null, null, null); >+ assert_false(name in doc); >+ }, "Historical Document member: " + name); >+}); >+ >+[ >+ "cascadedStyle", >+ "defaultStyle", >+ "rawComputedStyle", >+ "usedStyle", >+].forEach(function(name) { >+ test(function() { >+ assert_false(name in document.body); >+ assert_false(name in document.createElement("test")); >+ }, "Historical Element member: " + name); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2f6e4fd96d0cf85254799ebc595abefe125f63b5 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001-expected.txt >@@ -0,0 +1,7 @@ >+ >+PASS CSSStyleDeclaration_accessible >+PASS read >+PASS csstext_write >+PASS property_write >+PASS shorthand_properties >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0d8485410bc26af3fa5fceac33cd39325586e7c1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001.html >@@ -0,0 +1,83 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: Inline CSSStyleDeclaration</title> >+ <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#elementcssinlinestyle"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="Inline CSSStyleDeclaration is properly initialized and can be modified through its interface"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <div id="test" style="margin-left: 5px;"></div> >+ <script type="text/javascript"> >+ test(function() { >+ var test = document.getElementById("test"); >+ assert_idl_attribute(test, "style"); >+ declaration = test.style; >+ }, "CSSStyleDeclaration_accessible", { >+ assert: "Can access CSSStyleDeclaration through style property" >+ }); >+ >+ test(function() { >+ assert_equals(declaration.cssText, "margin-left: 5px;"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "5px"); >+ }, "read", { >+ assert: "initial property values are correct" >+ }); >+ >+ test(function() { >+ declaration.cssText = "margin-left: 10px; padding-left: 10px;"; >+ assert_equals(declaration.cssText, "margin-left: 10px; padding-left: 10px;"); >+ assert_equals(declaration.length, 2); >+ assert_equals(declaration.item(0), "margin-left"); >+ assert_equals(declaration.item(1), "padding-left"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "10px"); >+ assert_equals(declaration.getPropertyValue("padding-left"), "10px"); >+ >+ var computedStyle = window.getComputedStyle(document.getElementById("test")); >+ assert_equals(computedStyle.getPropertyValue("margin-left"), "10px"); >+ assert_equals(computedStyle.getPropertyValue("padding-left"), "10px"); >+ }, "csstext_write", { >+ assert: [ "setting cssText adds new properties", >+ "setting cssText removes existing properties", >+ "properties set through cssText are reflected in the computed style"] >+ }); >+ >+ test(function() { >+ while(declaration.length > 0) >+ declaration.removeProperty(declaration.item(0)); >+ declaration.setProperty("margin-left", "15px"); >+ declaration.setProperty("padding-left", "15px"); >+ >+ assert_equals(declaration.length, 2); >+ assert_equals(declaration.item(0), "margin-left"); >+ assert_equals(declaration.item(1), "padding-left"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "15px"); >+ assert_equals(declaration.getPropertyValue("padding-left"), "15px"); >+ >+ var computedStyle = window.getComputedStyle(document.getElementById("test")); >+ assert_equals(computedStyle.getPropertyValue("margin-left"), "15px"); >+ assert_equals(computedStyle.getPropertyValue("padding-left"), "15px"); >+ }, "property_write", { >+ assert: [ "setProperty adds new properties", >+ "properties set through setProperty are reflected in the computed style"] >+ }); >+ >+ test(function() { >+ while(declaration.length > 0) >+ declaration.removeProperty(declaration.item(0)); >+ declaration.cssText = "margin: 20px"; >+ assert_equals(declaration.getPropertyValue("margin-top"), "20px"); >+ assert_equals(declaration.getPropertyValue("margin-right"), "20px"); >+ assert_equals(declaration.getPropertyValue("margin-bottom"), "20px"); >+ assert_equals(declaration.getPropertyValue("margin-left"), "20px"); >+ }, "shorthand_properties", { >+ assert: "shorthand property is expanded" >+ }); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..c418eec7be3c481edd22a5086a723e274789f1a2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS inserRule with charset and omitted index argument >+PASS insertRule with charset and undefined index argument >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index.html >new file mode 100644 >index 0000000000000000000000000000000000000000..dfa19595e8ec44be7012b47f84211eea79426a1d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index.html >@@ -0,0 +1,32 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM StyleSheet insertRule with charset and omitted second argument</title> >+ <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom/"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <link rel="stylesheet" type="text/css" href="support/import-charset.css" id="linkElement" > >+</head> >+<body> >+<div id="log"></div> >+<script type="text/javascript"> >+ var sheet = document.getElementById("linkElement").sheet; >+ test(function() { >+ assert_equals(sheet.cssRules.length, 0); >+ sheet.insertRule("p { color: green; }"); >+ assert_equals(sheet.cssRules.length, 1); >+ assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >+ }, "inserRule with charset and omitted index argument"); >+ >+ test(function() { >+ assert_equals(sheet.cssRules.length, 1); >+ sheet.insertRule("p { color: yellow; }", undefined); >+ assert_equals(sheet.cssRules.length, 2); >+ assert_equals(sheet.cssRules.item(0).cssText, "p { color: yellow; }"); >+ }, "insertRule with charset and undefined index argument"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3377dee2642c24a2a1d176550c457e0c88f562e9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS inserRule with import and omitted index argument >+PASS insertRule with import and undefined index argument >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index.html >new file mode 100644 >index 0000000000000000000000000000000000000000..39e340d7db1f03a9b93ec8707a360866f1d9da54 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index.html >@@ -0,0 +1,33 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM StyleSheet insertRule with import and omitted second argument</title> >+ <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom/"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement"> >+ @import url("support/a-green.css"); >+ </style> >+</head> >+<body> >+<div id="log"></div> >+<script type="text/javascript"> >+ var sheet = document.getElementById("styleElement").sheet; >+ test(function() { >+ assert_equals(sheet.cssRules.length, 1); >+ assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); }); >+ assert_equals(sheet.cssRules.length, 1); >+ }, "inserRule with import and omitted index argument"); >+ >+ test(function() { >+ assert_equals(sheet.cssRules.length, 1); >+ assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: yellow; }", undefined); }); >+ assert_equals(sheet.cssRules.length, 1); >+ assert_equals(sheet.cssRules.item(0).cssText, "@import url(\"support/a-green.css\");"); >+ }, "insertRule with import and undefined index argument"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b91fb4e5de93502265928af03684e9d3eb422808 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS inserRule with namespace and omitted index argument >+PASS insertRule with namespace and undefined index argument >+PASS inserRule with namespace and omitted index argument should insert import >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4e4286d5268231e571cb2ad20a91884df4e586dd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index.html >@@ -0,0 +1,40 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM StyleSheet insertRule with namespace and omitted second argument</title> >+ <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom/"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement"> >+ @namespace svg url(http://servo); >+ @namespace url(http://servo1); >+ @namespace svg url("http://servo2"); >+ </style> >+</head> >+<body> >+<div id="log"></div> >+<script type="text/javascript"> >+ var sheet = document.getElementById("styleElement").sheet; >+ test(function() { >+ assert_equals(sheet.cssRules.length, 3); >+ assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); }); >+ assert_equals(sheet.cssRules.length, 3); >+ }, "inserRule with namespace and omitted index argument"); >+ >+ test(function() { >+ assert_equals(sheet.cssRules.length, 3); >+ assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: yellow; }", undefined); }); >+ assert_equals(sheet.cssRules.length, 3); >+ }, "insertRule with namespace and undefined index argument"); >+ >+ test(function() { >+ assert_equals(sheet.cssRules.length, 3); >+ sheet.insertRule("@import url(\"support/a-green.css\");"); >+ assert_equals(sheet.cssRules.length, 4); >+ }, "inserRule with namespace and omitted index argument should insert import"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b4107613a781629675dd60204b25acecb5044664 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS inserRule with omitted index argument >+PASS insertRule with undefined index argument >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index.html >new file mode 100644 >index 0000000000000000000000000000000000000000..89b930e29932104ab15551e63216f1ed11a74578 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index.html >@@ -0,0 +1,35 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM StyleSheet insertRule omitted second argument</title> >+ <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom/"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement"> >+ /* An initial style rule to test where the new rule is inserted relative to this one */ >+ nosuchelement { color: red; } >+ </style> >+</head> >+<body> >+<div id="log"></div> >+<script type="text/javascript"> >+ var sheet = document.getElementById("styleElement").sheet; >+ test(function() { >+ assert_equals(sheet.cssRules.length, 1); >+ sheet.insertRule("p { color: green; }"); >+ assert_equals(sheet.cssRules.length, 2); >+ assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >+ }, "inserRule with omitted index argument"); >+ >+ test(function() { >+ assert_equals(sheet.cssRules.length, 2); >+ sheet.insertRule("p { color: yellow; }", undefined); >+ assert_equals(sheet.cssRules.length, 3); >+ assert_equals(sheet.cssRules.item(0).cssText, "p { color: yellow; }"); >+ }, "insertRule with undefined index argument"); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a888a1594c0f03dc9046879494bfe0bfa6a0c713 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01-expected.txt >@@ -0,0 +1,5 @@ >+This text should be green. >+ >+ >+PASS A syntax error in insertRule should throw and not affect the style of the page >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01.html >new file mode 100644 >index 0000000000000000000000000000000000000000..6ccaed8304ca23620989436a34802dd6dd120661 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01.html >@@ -0,0 +1,14 @@ >+<!DOCTYPE html> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#insert-a-css-rule"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<style> >+p { color: green; } >+</style> >+<p id="test">This text should be green.</p> >+<script> >+ test(function() { >+ assert_throws("SyntaxError", () => document.styleSheets[0].insertRule("p { color: red; } garbage", 1)); >+ assert_equals(getComputedStyle(document.getElementById("test")).color, "rgb(0, 128, 0)"); >+ }, "A syntax error in insertRule should throw and not affect the style of the page"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces.html >new file mode 100644 >index 0000000000000000000000000000000000000000..49264c19aaad71befbd6962d2b1d3953531d6b13 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces.html >@@ -0,0 +1,97 @@ >+<!doctype html> >+<meta charset=utf-8> >+<!-- WARNING: These tests are preliminary and probably partly incorrect. --> >+<title>CSSOM automated IDL tests</title> >+<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"> >+<link rel="help" href="https://drafts.csswg.org/cssom-1/#idl-index"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<script src=/resources/WebIDLParser.js></script> >+<script src=/resources/idlharness.js></script> >+<!-- >+Provide some objects to test. >+Use a non-empty style attribute to get a non-empty CSSStyleDeclaration. >+ --> >+<style id="styleElement" style="z-index: 0;"> >+@import url("data:text/css,"); >+@namespace x "y"; >+@page { @top-left {} } >+@media all {} >+#test { color: green; } >+</style> >+ >+<svg id="svgElement" style="height: 0;"></svg> >+ >+<iframe id="xmlssPiIframe" src="support/xmlss-pi.xhtml" style="display: none;"></iframe> >+ >+<h1>CSSOM IDL tests</h1> >+<div id=log></div> >+ >+<script> >+"use strict"; >+var style_element, svg_element, xmlss_pi; >+ >+function doTest([html, dom, uievents, cssom]) { >+ style_element = document.getElementById('styleElement'); >+ svg_element = document.getElementById('svgElement'); >+ xmlss_pi = document.getElementById('xmlssPiIframe').contentDocument.firstChild; >+ >+ var idlArray = new IdlArray(); >+ var svg = "interface SVGElement : Element {};"; >+ idlArray.add_untested_idls(html + dom + svg); >+ idlArray.add_untested_idls(uievents, { only: [ >+ 'UIEvent', >+ 'UIEventInit', >+ 'MouseEvent', >+ 'MouseEventInit', >+ 'EventModifierInit' >+ ]}); >+ idlArray.add_idls(cssom); >+ >+ idlArray.add_objects({ >+ "Document": ["document", "new Document()"], >+ "StyleSheetList": ["document.styleSheets"], >+ "CSSStyleSheet": ["style_element.sheet"], >+ "MediaList": ["style_element.sheet.media"], >+ "CSSRuleList": ["style_element.sheet.cssRules"], >+ "CSSImportRule": ["style_element.sheet.cssRules[0]"], >+ "CSSNamespaceRule": ["style_element.sheet.cssRules[1]"], >+ "CSSPageRule": ["style_element.sheet.cssRules[2]"], >+ "CSSMarginRule": ["style_element.sheet.cssRules[2].cssRules[0]"], >+ "CSSMediaRule": ["style_element.sheet.cssRules[3]"], >+ "CSSStyleRule": ["style_element.sheet.cssRules[4]"], >+ "CSSStyleDeclaration": ["style_element.sheet.cssRules[4].style", // CSSStyleRule >+ "style_element.sheet.cssRules[2].style", // CSSPageRule >+ "style_element.sheet.cssRules[2].cssRules[0].style", // CSSMarginRule >+ "style_element.style", // ElementCSSInlineStyle for HTMLElement >+ "svg_element.style", // ElementCSSInlineStyle for SVGElement >+ "getComputedStyle(svg_element)"], >+ "ProcessingInstruction": ["xmlss_pi"], >+ "Window": ["window"], >+ "HTMLElement": ["style_element", "document.createElement('unknownelement')"], >+ "SVGElement": ["svg_element"], >+ }); >+ idlArray.test(); >+}; >+ >+function fetchData(url) { >+ return fetch(url).then((response) => response.text()); >+} >+ >+function waitForLoad() { >+ return new Promise(function(resolve) { >+ addEventListener("load", resolve); >+ }); >+} >+ >+promise_test(function() { >+ // Have to wait for onload >+ return Promise.all([fetchData("/interfaces/html.idl"), >+ fetchData("/interfaces/dom.idl"), >+ fetchData("/interfaces/uievents.idl"), >+ fetchData("/interfaces/cssom.idl"), >+ waitForLoad()]) >+ .then(doTest); >+}, "Test driver"); >+ >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..9715b5acb8fad7aae3949d255663c9ad958da932 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001-expected.html >@@ -0,0 +1,5 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSS Test Reference</title> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+Should not be red. >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..ab9c1345680807867b5c7e0e89c28d8f5d213b51 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001.html >@@ -0,0 +1,12 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSS Test: Dynamic changes to the stylesheet media attributes via CSSOM get reflected</title> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<link rel="match" href="medialist-dynamic-001-ref.html"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-medialist-mediatext"> >+<style media="all">* { color: red }</style> >+Should not be red. >+<script> >+ document.body.offsetTop; >+ document.styleSheets[0].media.mediaText = "not all"; >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..edef2c27308f5eb7bfadcb31413fcf5ae5e086b0 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS mediatest_medialist_serialize_element >+PASS mediatest_medialist_serialize_comma >+PASS mediatest_medialist_serialize_empty >+PASS mediatest_medialist_serialize_order >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..efdb7a9d952f0078481c86b98005fe3b8e0fe141 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001.html >@@ -0,0 +1,86 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: CSSOM Media Query List Serialization</title> >+ <link rel="author" title="Ben Sheldon" href="mailto:ben@codeforamerica.org"> >+ <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="MediaLists are serialized according to the specification"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <script type="text/javascript"> >+ >+ var styleElement; >+ var styleSheet; >+ var mediaList; >+ >+ // Setup >+ function setup() { >+ styleElement = document.getElementById("styleElement"); >+ >+ if (styleElement) { >+ // teardown >+ document.getElementsByTagName("head")[0].removeChild(styleElement); >+ styleElement = undefined; >+ styleSheet = undefined; >+ mediaList = undefined; >+ } >+ >+ styleElement = document.createElement("style"); >+ styleElement.id = "styleElement"; >+ styleElement.type = "text/css"; >+ styleElement.media = "all"; >+ document.getElementsByTagName("head")[0].appendChild(styleElement); >+ styleSheet = styleElement.sheet; >+ mediaList = styleSheet.media; >+ } >+ >+ >+ test(function() { >+ setup(); >+ >+ assert_equals(mediaList.mediaText, "all"); >+ >+ }, "mediatest_medialist_serialize_element", >+ { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >+ assert: ["MediaList.mediaText equals the 'media' value of the initial 'style' element."] }); >+ >+ test(function() { >+ setup(); >+ >+ mediaList.appendMedium('screen'); >+ assert_equals(mediaList.mediaText, "all, screen"); >+ >+ }, "mediatest_medialist_serialize_comma", >+ { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serialize-a-media-query-list"], >+ assert: ["To serialize a comma-separated list concatenate all items of the list in list order while separating them by \",\" (U+002C), followed by a space (U+0020)."] }); >+ >+ test(function() { >+ setup(); >+ >+ mediaList.deleteMedium('all'); >+ assert_equals(mediaList.mediaText, ""); >+ >+ }, "mediatest_medialist_serialize_empty", >+ { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >+ assert: ["If the media query list is empty return the empty string."] }); >+ >+ test(function() { >+ setup(); >+ >+ mediaList.appendMedium('screen'); >+ mediaList.appendMedium('print'); >+ assert_equals(mediaList.mediaText, "all, screen, print"); >+ >+ }, "mediatest_medialist_serialize_order", >+ { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serialize-a-media-query-list"], >+ assert: ["Each media query should be sorted in the same order as they appear in the list of media queries."] }); >+ >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2bf0654aff69fdee6bd5cba7b1e49b5b95e300ed >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS deleteMedium_called_without_argument >+PASS deleteMedium_removes_correct_medium >+PASS deleteMedium_no_matching_medium_to_remove >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..0df587b95294e6ab4b9d5e68a6973b64d4df2b8d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002.html >@@ -0,0 +1,71 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM MediaList Interfaces</title> >+ <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >+ <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-medialist-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="MediaList object has deleteMedium method and it functions properly."> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+</head> >+ >+<body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ >+ <script type="text/javascript"> >+ function setup() { >+ // Clean out any old style element >+ var old_style_el = document.getElementById('test_style'); >+ if (old_style_el) { >+ document.head.removeChild(old_style_el); >+ } >+ >+ // Create a fresh style element and return its media attribute >+ var style_el = document.createElement('style'); >+ style_el.setAttribute('id', 'test_style'); >+ document.head.appendChild(style_el); >+ return style_el.sheet.media; >+ } >+ </script> >+ >+ <script type="text/javascript"> >+ >+ test(function() { >+ media_list = setup(); >+ assert_throws(new TypeError, function() { media_list.deleteMedium(); }); >+ }, "deleteMedium_called_without_argument", >+ { assert: "MediaList.deleteMedium called without argument throws error." }); >+ >+ test(function() { >+ media_list = setup(); >+ >+ media_list.appendMedium("screen"); >+ media_list.appendMedium("all"); >+ >+ media_list.deleteMedium("screen"); >+ >+ assert_equals(media_list.length, 1); >+ assert_equals(media_list.item(0), "all"); >+ assert_equals(media_list.mediaText, "all"); >+ }, "deleteMedium_removes_correct_medium", >+ { assert: "MediaList.deleteMedium removes correct medium and updates corresponding properties." }); >+ >+ test(function() { >+ media_list = setup(); >+ >+ media_list.appendMedium("all"); >+ >+ assert_throws("NotFoundError", () => media_list.deleteMedium("screen")); >+ >+ assert_equals(media_list.length, 1); >+ assert_equals(media_list.item(0), "all"); >+ assert_equals(media_list.mediaText, "all"); >+ }, "deleteMedium_no_matching_medium_to_remove", >+ { assert: "MediaList.deleteMedium doesn't modify MediaList when medium is not found." }); >+ >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..50651628444e3cd07a3685a8d21260ed06055094 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS mediatest_mediaquery_serialize_1 >+PASS mediatest_mediaquery_serialize_2 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003.html >new file mode 100644 >index 0000000000000000000000000000000000000000..72def18cabcca6550e9d4727bcc167d93a698a13 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003.html >@@ -0,0 +1,62 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: CSSOM Media Query Serialization</title> >+ <link rel="author" title="Ben Sheldon" href="mailto:ben@codeforamerica.org"> >+ <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="Media Queries are serialized according to the specification"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <script type="text/javascript"> >+ >+ var styleElement; >+ var styleSheet; >+ var mediaList; >+ >+ // Setup - accepts media value for style element, e.g. <style media=???"> >+ function setupMedia(media) { >+ styleElement = document.getElementById("styleElement"); >+ >+ if (styleElement) { >+ // teardown >+ document.getElementsByTagName("head")[0].removeChild(styleElement); >+ styleElement = undefined; >+ styleSheet = undefined; >+ mediaList = undefined; >+ } >+ >+ styleElement = document.createElement("style"); >+ styleElement.id = "styleElement"; >+ styleElement.type = "text/css"; >+ styleElement.media = media; >+ document.getElementsByTagName("head")[0].appendChild(styleElement); >+ styleSheet = styleElement.sheet; >+ mediaList = styleSheet.media; >+ } >+ >+ >+ test(function() { >+ setupMedia('not screen and (min-WIDTH:5px) AND (max-width:40px )'); >+ >+ assert_equals(mediaList.mediaText, "not screen and (max-width: 40px) and (min-width: 5px)"); >+ >+ }, "mediatest_mediaquery_serialize_1", >+ { assert: ["First explicit example input (first column) and output (second column) in specification."] }); >+ >+ test(function() { >+ setupMedia('all and (color) and (color) '); >+ >+ assert_equals(mediaList.mediaText, "(color)"); >+ >+ }, "mediatest_mediaquery_serialize_2", >+ { assert: ["Second explicit example input (first column) and output (second column) in specification."] }); >+ >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..38b18651a9ca8824758365d74d74c0c649a51de2 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS appendMedium_correctly_appends_medium_to_empty_MediaList >+PASS appendMedium_correctly_appends_medium_to_nonempty_MediaList >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8c7ba6921509384531773f9ce414b0e9a18f4e6c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004.html >@@ -0,0 +1,64 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSS Test: CSSOM MediaList Interfaces</title> >+ <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="MediaList object has appendMedium method and it functions properly."> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+</head> >+ >+<body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ >+ <script type="text/javascript"> >+ function setup() { >+ // Clean out any old style element >+ var old_style_el = document.getElementById('test_style'); >+ if (old_style_el) { >+ document.head.removeChild(old_style_el); >+ } >+ >+ // Create a fresh style element and return its media attribute >+ var style_el = document.createElement('style'); >+ style_el.setAttribute('id', 'test_style'); >+ document.head.appendChild(style_el); >+ return style_el.sheet.media; >+ } >+ </script> >+ >+ <script type="text/javascript"> >+ >+ test(function() { >+ media_list = setup(); >+ >+ media_list.appendMedium("all"); >+ >+ assert_equals(media_list.length, 1); >+ assert_equals(media_list.item(0), "all"); >+ assert_equals(media_list.mediaText, "all"); >+ }, "appendMedium_correctly_appends_medium_to_empty_MediaList", >+ { assert: "MediaList.appendMedium correctly adds medium to empty MediaList." }); >+ >+ test(function() { >+ media_list = setup(); >+ >+ media_list.appendMedium("screen"); >+ media_list.appendMedium("all"); >+ >+ // The ordering of array items should be different from that of the mediaText element. >+ // "all" should be appended after "screen" in the array, but "mediaText" should be >+ // "all, screen" due to lexicographical sorting. >+ assert_equals(media_list.length, 2); >+ assert_equals(media_list.item(0), "screen"); >+ assert_equals(media_list.item(1), "all"); >+ assert_equals(media_list.mediaText, "screen, all"); >+ }, "appendMedium_correctly_appends_medium_to_nonempty_MediaList", >+ { assert: "MediaList.appendMedium correctly adds medium to a MediaList that already has a medium." }); >+ >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a04f2d1860e375dd511cff796289691b119c4025 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization-expected.txt >@@ -0,0 +1,3 @@ >+ >+FAIL CSSOM - Overflow shorthand serialization assert_equals: Overflow-x/y longhands with same CSS-wide keyword should serialize correctly. expected "overflow: initial;" but got "" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization.html >new file mode 100644 >index 0000000000000000000000000000000000000000..7b01568a715782bc900701d004d4ce935641a8f4 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization.html >@@ -0,0 +1,49 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - Overflow shorthand serialization</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-value"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style> >+ div { overflow: inherit; } >+ div { overflow: hidden; } >+ div { overflow-x: initial; overflow-y: initial; } >+ div { overflow-x: scroll; overflow-y: scroll; } >+ div { overflow-x: scroll; overflow-y: hidden; } >+ </style> >+ >+ <script> >+ test(function () { >+ var styleSheet = document.styleSheets[0]; >+ >+ assert_equals(styleSheet.cssRules[0].style.cssText, "overflow: inherit;", "Single value overflow with CSS-wide keyword should serialize correctly."); >+ assert_equals(styleSheet.cssRules[1].style.cssText, "overflow: hidden;", "Single value overflow with non-CSS-wide keyword should serialize correctly."); >+ assert_equals(styleSheet.cssRules[2].style.cssText, "overflow: initial;", "Overflow-x/y longhands with same CSS-wide keyword should serialize correctly."); >+ assert_equals(styleSheet.cssRules[3].style.cssText, "overflow: scroll;", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly."); >+ assert_equals(styleSheet.cssRules[4].style.cssText, "overflow: scroll hidden;", "Overflow-x/y longhands with different keywords should serialize correctly."); >+ >+ var div = document.createElement('div'); >+ div.style.overflow = "inherit"; >+ assert_equals(div.style.overflow, "inherit", "Single value overflow with CSS-wide keyword should serialize correctly."); >+ >+ div.style.overflow = "hidden"; >+ assert_equals(div.style.overflow, "hidden", "Single value overflow with non-CSS-wide keyword should serialize correctly."); >+ >+ div.style.overflow = ""; >+ div.style.overflowX = "initial"; >+ div.style.overflowY = "initial"; >+ assert_equals(div.style.overflow, "initial", "Overflow-x/y longhands with same CSS-wide keyword should serialize correctly."); >+ >+ div.style.overflowX = "scroll"; >+ div.style.overflowY = "scroll"; >+ assert_equals(div.style.overflow, "scroll", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly."); >+ >+ div.style.overflowX = "scroll"; >+ div.style.overflowY = "hidden"; >+ assert_equals(div.style.overflow, "scroll hidden", "Overflow-x/y longhands with different keywords should serialize correctly."); >+ }); >+ </script> >+</head> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b11dbe33ddbe38af4f711b16e3c3133014956e77 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order-expected.txt >@@ -0,0 +1,4 @@ >+This text should be green >+ >+PASS Preferred stylesheet where insertion order is reversed tree order >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3231a7e711569357a1cc76a84200da8a3b69c3b3 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order.html >@@ -0,0 +1,22 @@ >+<!DOCTYPE html> >+<link rel="help" href="https://drafts.csswg.org/cssom/#add-a-css-style-sheet"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#create-a-css-style-sheet"> >+<link rel="help" href="https://html.spec.whatwg.org/#update-a-style-block"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="t1">This text should be green</div> >+<script> >+function createStyleElement(text, title) { >+ var elm = document.createElement("style"); >+ elm.setAttribute("title", title); >+ elm.appendChild(document.createTextNode(text)); >+ return elm; >+} >+ >+test(function() { >+ document.head.appendChild(createStyleElement("#t1 {color:green}", "preferred")); >+ document.head.appendChild(createStyleElement("#t1 {color:red}", "notpreferred")); >+ >+ assert_equals(getComputedStyle(t1).color, "rgb(0, 128, 0)"); >+}, "Preferred stylesheet where insertion order is reversed tree order"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..db0305bc9300db56e98fc4ccb1140e8108a88a7d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order-expected.txt >@@ -0,0 +1,4 @@ >+This text should be green >+ >+FAIL Preferred stylesheet where insertion order is tree order assert_equals: expected "rgb(0, 128, 0)" but got "rgb(255, 0, 0)" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..839ecafb6faf170da4a2987f9b7d8137b024cc00 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order.html >@@ -0,0 +1,22 @@ >+<!DOCTYPE html> >+<link rel="help" href="https://drafts.csswg.org/cssom/#add-a-css-style-sheet"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#create-a-css-style-sheet"> >+<link rel="help" href="https://html.spec.whatwg.org/#update-a-style-block"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="t1">This text should be green</div> >+<script> >+function createStyleElement(text, title) { >+ var elm = document.createElement("style"); >+ elm.setAttribute("title", title); >+ elm.appendChild(document.createTextNode(text)); >+ return elm; >+} >+ >+test(function() { >+ document.head.insertBefore(createStyleElement("#t1 {color:green}", "preferred"), document.head.firstChild); >+ document.head.insertBefore(createStyleElement("#t1 {color:red}", "notpreferred"), document.head.firstChild); >+ >+ assert_equals(getComputedStyle(t1).color, "rgb(0, 128, 0)"); >+}, "Preferred stylesheet where insertion order is tree order"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..25a44863418841774397d61a4acb27a764b4c686 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize-expected.txt >@@ -0,0 +1,20 @@ >+ >+FAIL :nth-child serialization produces canonical form assert_equals: expected ":nth-child(3n)" but got ":nth-child(3n - 0)" >+PASS single universal selector shows '*' when serialized. >+PASS single type (simple) selector in the sequence of simple selectors that is not a universal selector >+PASS single class (simple) selector in the sequence of simple selectors that is not a universal selector >+PASS single id (simple) selector in the sequence of simple selectors that is not a universal selector >+PASS single pseudo (simple) selector which does not accept arguments in the sequence of simple selectors that is not a universal selector >+FAIL single pseudo (simple) selector "lang" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":lang(ja)" but got ":lang(\"ja\")" >+FAIL single pseudo (simple) selector "nth-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-child(2n)" but got ":nth-child(even)" >+FAIL single pseudo (simple) selector "nth-last-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-last-child(2n)" but got ":nth-last-child(even)" >+FAIL single pseudo (simple) selector "nth-of-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-of-type(2n)" but got ":nth-of-type(even)" >+FAIL single pseudo (simple) selector ":nth-last-of-type" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-last-of-type(2n)" but got ":nth-last-of-type(even)" >+PASS single pseudo (simple) selector ":not" which accepts arguments in the sequence of simple selectors that is not a universal selector >+FAIL escaped character in attribute name assert_equals: expected "[ns\\:foo]" but got "[ns:foo]" >+FAIL escaped character as code point in attribute name assert_equals: expected "[\\30 zonk]" but got "[0zonk]" >+FAIL escaped character (@) in attribute name assert_equals: expected "[\\@]" but got "[@]" >+FAIL escaped character in attribute name with any namespace assert_equals: expected "[*|ns\\:foo]" but got "[*|ns:foo]" >+FAIL escaped character in attribute prefix assert_equals: expected "[ns\\:odd|foo]" but got "[ns:odd|foo]" >+FAIL escaped character in both attribute prefix and name assert_equals: expected "[ns\\:odd|odd\:name]" but got "[ns:odd|odd:name]" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d171a9da94e22af018ffb5f182f99362b5c0e4cb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize.html >@@ -0,0 +1,120 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Test: test serialized selector which is only one simple selector in the sequence of simple selectors</title> >+ <link rel="author" title="T.Nishitani" href="mailto:lequinharay@gmail.com"> >+ <link rel="reviewer" title="L. David Baron" href="https://dbaron.org/"> >+ <link rel="help" href="https://drafts.csswg.org/cssom-1/#serializing-selectors"> >+ <meta name="flags" content="dom"> >+ <meta charset="utf-8"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style id="teststyles"> >+ </style> >+ </head> >+ <body> >+ <div id="log"></div> >+ <script> >+ function assert_selector_serializes_to(source, expected_result) { >+ var style_element = document.getElementById("teststyles"); >+ style_element.firstChild.data = source + "{ font-size: 1em; }"; >+ var sheet = style_element.sheet; >+ assert_equals(sheet.cssRules[sheet.cssRules.length - 1].selectorText, expected_result); >+ } >+ >+ function run_tests_on_anplusb_selector(source) { >+ assert_selector_serializes_to(source + '( even )', source + '(2n)'); >+ assert_selector_serializes_to(source + '( odd )', source + '(2n+1)'); >+ assert_selector_serializes_to(source + '( +10 )', source + '(10)'); >+ assert_selector_serializes_to(source + '( -10 )', source + '(-10)'); >+ assert_selector_serializes_to(source + '( +4n )', source + '(4n)'); >+ assert_selector_serializes_to(source + '( -3n )', source + '(-3n)'); >+ assert_selector_serializes_to(source + '( 1n + 5 )', source + '(n+5)'); >+ assert_selector_serializes_to(source + '( -1n + 5 )', source + '(-n+5)'); >+ assert_selector_serializes_to(source + '( -1n - 5 )', source + '(-n-5)'); >+ } >+ >+ test(function() { >+ assert_selector_serializes_to(":nth-child( 3n - 0)", ":nth-child(3n)"); >+ assert_selector_serializes_to(":nth-child( 1n - 0)", ":nth-child(n)"); >+ }, ":nth-child serialization produces canonical form"); >+ >+ >+ /* for universal selecter with default namespace */ >+ test(function(){ >+ /* this is single universal selector */ >+ assert_selector_serializes_to('*', '*'); >+ assert_selector_serializes_to(' * ', '*'); >+ }, 'single universal selector shows \'*\' when serialized.') >+ >+ test(function(){ >+ assert_selector_serializes_to('div', 'div'); >+ assert_selector_serializes_to(' div ', 'div'); >+ }, 'single type (simple) selector in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ assert_selector_serializes_to('.class', '.class'); >+ assert_selector_serializes_to(' .class ', '.class'); >+ }, 'single class (simple) selector in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ assert_selector_serializes_to('#id', '#id'); >+ assert_selector_serializes_to(' #id ', '#id'); >+ }, 'single id (simple) selector in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ assert_selector_serializes_to(':hover', ':hover'); >+ assert_selector_serializes_to(' :hover ', ':hover'); >+ }, 'single pseudo (simple) selector which does not accept arguments in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ assert_selector_serializes_to(':lang(ja)', ':lang(ja)'); >+ assert_selector_serializes_to(':lang( ja )', ':lang(ja)'); >+ }, 'single pseudo (simple) selector "lang" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ >+ test(function(){ >+ run_tests_on_anplusb_selector(':nth-child'); >+ }, 'single pseudo (simple) selector "nth-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ run_tests_on_anplusb_selector(':nth-last-child'); >+ }, 'single pseudo (simple) selector "nth-last-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ run_tests_on_anplusb_selector(':nth-of-type'); >+ }, 'single pseudo (simple) selector "nth-of-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ run_tests_on_anplusb_selector(':nth-last-of-type'); >+ }, 'single pseudo (simple) selector ":nth-last-of-type" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ test(function(){ >+ assert_selector_serializes_to(' :not( abc ) ', ':not(abc)'); >+ assert_selector_serializes_to(' :not( .head ) ', ':not(.head)'); >+ assert_selector_serializes_to(' :not( #head ) ', ':not(#head)'); >+ assert_selector_serializes_to(' :not( :hover ) ', ':not(:hover)'); >+ }, 'single pseudo (simple) selector ":not" which accepts arguments in the sequence of simple selectors that is not a universal selector') >+ >+ var escaped_ns_rule = "@namespace ns\\:odd url(ns);"; >+ test(function() { >+ assert_selector_serializes_to("[ns\\:foo]", "[ns\\:foo]"); >+ }, "escaped character in attribute name"); >+ test(function() { >+ assert_selector_serializes_to("[\\30zonk]", "[\\30 zonk]"); >+ }, "escaped character as code point in attribute name"); >+ test(function() { >+ assert_selector_serializes_to("[\\@]", "[\\@]"); >+ }, "escaped character (@) in attribute name"); >+ test(function() { >+ assert_selector_serializes_to("[*|ns\\:foo]", "[*|ns\\:foo]"); >+ }, "escaped character in attribute name with any namespace"); >+ test(function() { >+ assert_selector_serializes_to(escaped_ns_rule + "[ns\\:odd|foo]", "[ns\\:odd|foo]"); >+ }, "escaped character in attribute prefix"); >+ test(function() { >+ assert_selector_serializes_to(escaped_ns_rule + "[ns\\:odd|odd\\:name]", "[ns\\:odd|odd\\:name]"); >+ }, "escaped character in both attribute prefix and name"); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..74e580747083b3e9ff8d48876c08b83ddaa8d5cb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001-expected.html >@@ -0,0 +1,13 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>(Ref #1) CSSOM - CSSStyleRule.selectorText Modification Restyle - Reference #1</title> >+ >+<style> >+div { >+ color: green; >+} >+</style> >+ >+<body> >+<div>I should be green.</div> >+</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..43a76d1ef2e99f1874793da7e74f27dd6e32e134 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001.html >@@ -0,0 +1,22 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>(Test #1) CSSOM - CSSStyleRule.selectorText Modification Restyle - Test #1</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstylerule-selectortext"> >+<link rel="match" href="selectorText-modification-restyle-001-ref.html"> >+ >+<style> >+@namespace bogus url(http://example.com/bogus); >+ >+bogus|div { >+ color: green; >+} >+</style> >+ >+<body> >+<div>I should be green.</div> >+<script> >+// Remove the "bogus" namespace--now it should apply to the div above. >+// We also expect to see a restyle. >+document.querySelector("style").sheet.cssRules[1].selectorText = "div"; >+</script> >+</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a3c7a3e1aa2206fbf33a89eadbf83e2a56e18848 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS Check initial color. >+FAIL Check that color changes correctly after shadow stylesheet selector and #container class is changed. undefined is not an object (evaluating 'root.styleSheets[0]') >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8ad4825b7f9a7a65f8140f99fd0a7231627c5d85 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002.html >@@ -0,0 +1,31 @@ >+<!DOCTYPE html> >+<title>CSSOM: Modify selectorText in a shadow tree stylesheet</title> >+<link rel="author" title="Rune Lillesveen" href="mailto:futhark@chromium.org"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstylerule-selectortext"> >+<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<style> >+ #container { color: red } >+ .subtree * { color: pink } >+</style> >+<div id="container"> >+ <div id="host"></div> >+</div> >+<script> >+ const root = host.attachShadow({mode:"open"}); >+ root.innerHTML = "<style>nomatch { color: green }</style><div>Green</div>"; >+ const div = root.querySelector("div"); >+ >+ test(() => { >+ assert_equals(getComputedStyle(div).color, "rgb(255, 0, 0)", "Color should initial be red."); >+ }, "Check initial color."); >+ >+ test(() => { >+ // The combination of the .subtree and CSSOM selector style invalidations >+ // caused the Blink implementation to fail an assertion. >+ container.className = "subtree"; >+ root.styleSheets[0].cssRules[0].selectorText = "div"; >+ assert_equals(getComputedStyle(div).color, "rgb(0, 128, 0)", "Color should be green after stylesheet change."); >+ }, "Check that color changes correctly after shadow stylesheet selector and #container class is changed."); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3a82c9e37815254223cce8799797db64734d76b1 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Inline style declaration without whitespace between '!' and 'important'. >+PASS Inline style declaration with whitespace between '!' and 'important'. >+PASS Style set dynamically via cssText without whitespace between '!' and 'important'. >+PASS Style set dynamically via cssText with whitespace between '!' and 'important'. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important.html >new file mode 100644 >index 0000000000000000000000000000000000000000..642973bed569da7d3555e0de9284bca7f1ee4838 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important.html >@@ -0,0 +1,32 @@ >+<!doctype html> >+<meta charset=utf-8> >+<title>cssom - Serialization of CSS declaration with "important" flag</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-declaration"> >+<script src=../../../../../resources/testharness.js></script> >+<script src=../../../../../resources/testharnessreport.js></script> >+<div id="noWhitespace" style="display: inline !important;"></div> >+<div id="whitespace" style="background-color: blue !important; color: red ! important;"></div> >+<div id="dinamicallyStyle"></div> >+<script> >+ test(function () { >+ var css_style = document.querySelector('#noWhitespace').style.cssText; >+ assert_equals(css_style, "display: inline !important;"); >+ }, "Inline style declaration without whitespace between '!' and 'important'."); >+ >+ test(function () { >+ var css_style = document.querySelector('#whitespace').style.cssText; >+ assert_equals(css_style, "background-color: blue !important; color: red !important;"); >+ }, "Inline style declaration with whitespace between '!' and 'important'."); >+ >+ test(function () { >+ document.querySelector('#dinamicallyStyle').style.cssText = "color: black !important;"; >+ var css_style = document.querySelector('#dinamicallyStyle').style.cssText; >+ assert_equals(css_style, "color: black !important;"); >+ }, "Style set dynamically via cssText without whitespace between '!' and 'important'."); >+ >+ test(function () { >+ document.querySelector('#dinamicallyStyle').style.cssText = "color: black ! important;"; >+ var css_style = document.querySelector('#dinamicallyStyle').style.cssText; >+ assert_equals(css_style, "color: black !important;"); >+ }, "Style set dynamically via cssText with whitespace between '!' and 'important'."); >+</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..30840a89404cdf762cc1501f0b083e951fb136eb >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors-expected.txt >@@ -0,0 +1,62 @@ >+ >+PASS Simple type selector >+PASS Type selector without a namespace >+PASS Type selector with any namespace >+PASS Universal selector >+PASS Universal selector without a namespace >+PASS Universal selector in any namespace >+PASS Type selector with namespace >+PASS Universal selector with namespace >+PASS Simple type selector followed by class >+PASS Simple type selector followed by id >+PASS Simple type selector followed by pseudo class >+PASS Simple type selector followed by pseudo element >+PASS Simple type selector followed by atttribute selector >+PASS Type selector without a namespace followed by class >+PASS Type selector without a namespace followed by id >+PASS Type selector without a namespace followed by pseudo class >+PASS Type selector without a namespace followed by pseudo element >+PASS Type selector without a namespace followed by attribute selector >+PASS Type selector with any namespace followed by class >+PASS Type selector with any namespace followed by id >+PASS Type selector with any namespace followed by pseudo class >+PASS Type selector with any namespace followed by pseudo element >+PASS Type selector with any namespace followed by attribute selector >+PASS Universal selector followed by class >+PASS Universal selector followed by id >+PASS Universal selector followed by pseudo class >+PASS Universal selector followed by pseudo element >+PASS Universal selector followed by attribute selector >+PASS Universal selector without a namespace followed by class >+PASS Universal selector without a namespace followed by id >+PASS Universal selector without a namespace followed by pseudo class >+PASS Universal selector without a namespace followed by pseudo element >+PASS Universal selector without a namespace followed by attribute selector >+PASS Universal selector in any namespace followed by class >+PASS Universal selector in any namespace followed by id >+PASS Universal selector in any namespace followed by pseudo class >+PASS Universal selector in any namespace followed by pseudo element >+PASS Universal selector in any namespace followed by attribute selector >+PASS Type selector with namespace followed by class >+PASS Type selector with namespace followed by id >+PASS Type selector with namespace followed by pseudo class >+PASS Type selector with namespace followed by pseudo element >+PASS Type selector with namespace followed by attribute selector >+PASS Universal selector with namespace followed by class >+PASS Universal selector with namespace followed by id >+PASS Universal selector with namespace followed by pseudo class >+PASS Universal selector with namespace followed by pseudo element >+PASS Universal selector with namespace followed by attribute selector >+PASS Type selector with namespace equal to default namespace >+PASS Universal selector with namespace equal to default namespace >+PASS Type selector with namespace equal to default namespace followed by class >+PASS Type selector with namespace equal to default namespace followed by id >+PASS Type selector with namespace equal to default namespace followed by pseudo class >+PASS Type selector with namespace equal to default namespace followed by pseudo element >+PASS Type selector with namespace equal to default namespace followed by attribute selector >+PASS Universal selector with namespace equal to default namespace followed by class >+PASS Universal selector with namespace equal to default namespace followed by id >+PASS Universal selector with namespace equal to default namespace followed by pseudo class >+PASS Universal selector with namespace equal to default namespace followed by pseudo element >+PASS Universal selector with namespace equal to default namespace followed by attribute selector >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors.html >new file mode 100644 >index 0000000000000000000000000000000000000000..65b667d49e0280f654ef41b55e5cecd1da2d77ee >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors.html >@@ -0,0 +1,257 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSSOM Test: test serialization of type selectors and namespace prefixes</title> >+ <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom-1/#serializing-selectors"> >+ <meta name="flags" content="dom"> >+ <meta charset="utf-8"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ <style id="teststyles"> >+ </style> >+ </head> >+ <body> >+ <div id="log"></div> >+ <script> >+ var ns_rule = "@namespace ns url(ns);"; >+ var default_ns_rules = "@namespace url(default_ns); @namespace nsdefault url(default_ns);" + ns_rule; >+ >+ function assert_selector_serializes_to(source, expected_result) { >+ var style_element = document.getElementById("teststyles"); >+ style_element.firstChild.data = source + "{ font-size: 1em; }"; >+ var sheet = style_element.sheet; >+ assert_equals(sheet.cssRules[sheet.cssRules.length - 1].selectorText, expected_result); >+ } >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e", "e"); >+ assert_selector_serializes_to(default_ns_rules + "e", "e"); >+ }, "Simple type selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e", "|e"); >+ assert_selector_serializes_to(default_ns_rules + "|e", "|e"); >+ }, "Type selector without a namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e", "e"); >+ assert_selector_serializes_to(default_ns_rules + "*|e", "*|e"); >+ }, "Type selector with any namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*", "*"); >+ assert_selector_serializes_to(default_ns_rules + "*", "*"); >+ }, "Universal selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*", "|*"); >+ assert_selector_serializes_to(default_ns_rules + "|*", "|*"); >+ }, "Universal selector without a namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*", "*"); >+ assert_selector_serializes_to(default_ns_rules + "*|*", "*|*"); >+ }, "Universal selector in any namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e", "ns|e"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e", "ns|e"); >+ }, "Type selector with namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*", "ns|*"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*", "ns|*"); >+ }, "Universal selector with namespace"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e.c", "e.c"); >+ assert_selector_serializes_to(default_ns_rules + "e.c", "e.c"); >+ }, "Simple type selector followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e#i", "e#i"); >+ assert_selector_serializes_to(default_ns_rules + "e#i", "e#i"); >+ }, "Simple type selector followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e:hover", "e:hover"); >+ assert_selector_serializes_to(default_ns_rules + "e:hover", "e:hover"); >+ }, "Simple type selector followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e::before", "e::before"); >+ assert_selector_serializes_to(default_ns_rules + "e::before", "e::before"); >+ }, "Simple type selector followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "e[attr]", "e[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "e[attr]", "e[attr]"); >+ }, "Simple type selector followed by atttribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e.c", "|e.c"); >+ assert_selector_serializes_to(default_ns_rules + "|e.c", "|e.c"); >+ }, "Type selector without a namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e#i", "|e#i"); >+ assert_selector_serializes_to(default_ns_rules + "|e#i", "|e#i"); >+ }, "Type selector without a namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e:hover", "|e:hover"); >+ assert_selector_serializes_to(default_ns_rules + "|e:hover", "|e:hover"); >+ }, "Type selector without a namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e::before", "|e::before"); >+ assert_selector_serializes_to(default_ns_rules + "|e::before", "|e::before"); >+ }, "Type selector without a namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|e[attr]", "|e[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "|e[attr]", "|e[attr]"); >+ }, "Type selector without a namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e.c", "e.c"); >+ assert_selector_serializes_to(default_ns_rules + "*|e.c", "*|e.c"); >+ }, "Type selector with any namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e#id", "e#id"); >+ assert_selector_serializes_to(default_ns_rules + "*|e#id", "*|e#id"); >+ }, "Type selector with any namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e:hover", "e:hover"); >+ assert_selector_serializes_to(default_ns_rules + "*|e:hover", "*|e:hover"); >+ }, "Type selector with any namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e::before", "e::before"); >+ assert_selector_serializes_to(default_ns_rules + "*|e::before", "*|e::before"); >+ }, "Type selector with any namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|e[attr]", "e[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "*|e[attr]", "*|e[attr]"); >+ }, "Type selector with any namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*.c", ".c"); >+ assert_selector_serializes_to(default_ns_rules + "*.c", ".c"); >+ }, "Universal selector followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*#i", "#i"); >+ assert_selector_serializes_to(default_ns_rules + "*#i", "#i"); >+ }, "Universal selector followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*:hover", ":hover"); >+ assert_selector_serializes_to(default_ns_rules + "*:hover", ":hover"); >+ }, "Universal selector followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*::before", "::before"); >+ assert_selector_serializes_to(default_ns_rules + "*::before", "::before"); >+ }, "Universal selector followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*[attr]", "[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "*[attr]", "[attr]"); >+ }, "Universal selector followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*.c", "|*.c"); >+ assert_selector_serializes_to(default_ns_rules + "|*.c", "|*.c"); >+ }, "Universal selector without a namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*#i", "|*#i"); >+ assert_selector_serializes_to(default_ns_rules + "|*#i", "|*#i"); >+ }, "Universal selector without a namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*:hover", "|*:hover"); >+ assert_selector_serializes_to(default_ns_rules + "|*:hover", "|*:hover"); >+ }, "Universal selector without a namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*::before", "|*::before"); >+ assert_selector_serializes_to(default_ns_rules + "|*::before", "|*::before"); >+ }, "Universal selector without a namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "|*[attr]", "|*[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "|*[attr]", "|*[attr]"); >+ }, "Universal selector without a namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*.c", ".c"); >+ assert_selector_serializes_to(default_ns_rules + "*|*.c", "*|*.c"); >+ }, "Universal selector in any namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*#id", "#id"); >+ assert_selector_serializes_to(default_ns_rules + "*|*#id", "*|*#id"); >+ }, "Universal selector in any namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*:hover", ":hover"); >+ assert_selector_serializes_to(default_ns_rules + "*|*:hover", "*|*:hover"); >+ }, "Universal selector in any namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*::before", "::before"); >+ assert_selector_serializes_to(default_ns_rules + "*|*::before", "*|*::before"); >+ }, "Universal selector in any namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "*|*[attr]", "[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "*|*[attr]", "*|*[attr]"); >+ }, "Universal selector in any namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e.c", "ns|e.c"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e.c", "ns|e.c"); >+ }, "Type selector with namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e#i", "ns|e#i"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e#i", "ns|e#i"); >+ }, "Type selector with namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e:hover", "ns|e:hover"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e:hover", "ns|e:hover"); >+ }, "Type selector with namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e::before", "ns|e::before"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e::before", "ns|e::before"); >+ }, "Type selector with namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|e[attr]", "ns|e[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "ns|e[attr]", "ns|e[attr]"); >+ }, "Type selector with namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*.c", "ns|*.c"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*.c", "ns|*.c"); >+ }, "Universal selector with namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*#i", "ns|*#i"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*#i", "ns|*#i"); >+ }, "Universal selector with namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*:hover", "ns|*:hover"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*:hover", "ns|*:hover"); >+ }, "Universal selector with namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*::before", "ns|*::before"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*::before", "ns|*::before"); >+ }, "Universal selector with namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(ns_rule + "ns|*[attr]", "ns|*[attr]"); >+ assert_selector_serializes_to(default_ns_rules + "ns|*[attr]", "ns|*[attr]"); >+ }, "Universal selector with namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e", "e"); >+ }, "Type selector with namespace equal to default namespace"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*", "*"); >+ }, "Universal selector with namespace equal to default namespace"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e.c", "e.c"); >+ }, "Type selector with namespace equal to default namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e#i", "e#i"); >+ }, "Type selector with namespace equal to default namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e:hover", "e:hover"); >+ }, "Type selector with namespace equal to default namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e::before", "e::before"); >+ }, "Type selector with namespace equal to default namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|e[attr]", "e[attr]"); >+ }, "Type selector with namespace equal to default namespace followed by attribute selector"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*.c", ".c"); >+ }, "Universal selector with namespace equal to default namespace followed by class"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*#i", "#i"); >+ }, "Universal selector with namespace equal to default namespace followed by id"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*:hover", ":hover"); >+ }, "Universal selector with namespace equal to default namespace followed by pseudo class"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*::before", "::before"); >+ }, "Universal selector with namespace equal to default namespace followed by pseudo element"); >+ test(function() { >+ assert_selector_serializes_to(default_ns_rules + "nsdefault|*[attr]", "[attr]"); >+ }, "Universal selector with namespace equal to default namespace followed by attribute selector"); >+ </script> >+ </body> >+</html> >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..372047759b48e9ca414ef953b23cf0eae40caa6d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values-expected.txt >@@ -0,0 +1,680 @@ >+ >+PASS background-attachment: scroll >+PASS background-attachment: fixed >+PASS background-attachment: inherit >+PASS background-color: black >+PASS background-color: red >+PASS background-color: rgb(50, 75, 100) >+FAIL background-color: rgba(5, 7, 10, 0.5) assert_equals: background-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS background-color: transparent >+PASS background-color: inherit >+PASS background-image: url("http://localhost/") >+PASS background-image: url(http://localhost/) >+PASS background-image: none >+PASS background-image: inherit >+PASS background-position: 5% 5% >+PASS background-position: 5% .5% >+PASS background-position: 5% -5% >+PASS background-position: 5% -.5% >+PASS background-position: 5% 0px >+PASS background-position: 5% 1px >+PASS background-position: 5% .1em >+PASS background-position: 5% -0px >+PASS background-position: 5% -1px >+PASS background-position: 5% -.1em >+PASS background-position: 5% top >+PASS background-position: 5% center >+PASS background-position: 5% bottom >+PASS background-position: .5% 5% >+PASS background-position: .5% .5% >+PASS background-position: .5% -5% >+PASS background-position: .5% -.5% >+PASS background-position: .5% 0px >+PASS background-position: .5% 1px >+PASS background-position: .5% .1em >+PASS background-position: .5% -0px >+PASS background-position: .5% -1px >+PASS background-position: .5% -.1em >+PASS background-position: .5% top >+PASS background-position: .5% center >+PASS background-position: .5% bottom >+PASS background-position: -5% 5% >+PASS background-position: -5% .5% >+PASS background-position: -5% -5% >+PASS background-position: -5% -.5% >+PASS background-position: -5% 0px >+PASS background-position: -5% 1px >+PASS background-position: -5% .1em >+PASS background-position: -5% -0px >+PASS background-position: -5% -1px >+PASS background-position: -5% -.1em >+PASS background-position: -5% top >+PASS background-position: -5% center >+PASS background-position: -5% bottom >+PASS background-position: -.5% 5% >+PASS background-position: -.5% .5% >+PASS background-position: -.5% -5% >+PASS background-position: -.5% -.5% >+PASS background-position: -.5% 0px >+PASS background-position: -.5% 1px >+PASS background-position: -.5% .1em >+PASS background-position: -.5% -0px >+PASS background-position: -.5% -1px >+PASS background-position: -.5% -.1em >+PASS background-position: -.5% top >+PASS background-position: -.5% center >+PASS background-position: -.5% bottom >+PASS background-position: 0px 5% >+PASS background-position: 0px .5% >+PASS background-position: 0px -5% >+PASS background-position: 0px -.5% >+PASS background-position: 0px 0px >+PASS background-position: 0px 1px >+PASS background-position: 0px .1em >+PASS background-position: 0px -0px >+PASS background-position: 0px -1px >+PASS background-position: 0px -.1em >+PASS background-position: 0px top >+PASS background-position: 0px center >+PASS background-position: 0px bottom >+PASS background-position: 1px 5% >+PASS background-position: 1px .5% >+PASS background-position: 1px -5% >+PASS background-position: 1px -.5% >+PASS background-position: 1px 0px >+PASS background-position: 1px 1px >+PASS background-position: 1px .1em >+PASS background-position: 1px -0px >+PASS background-position: 1px -1px >+PASS background-position: 1px -.1em >+PASS background-position: 1px top >+PASS background-position: 1px center >+PASS background-position: 1px bottom >+PASS background-position: .1em 5% >+PASS background-position: .1em .5% >+PASS background-position: .1em -5% >+PASS background-position: .1em -.5% >+PASS background-position: .1em 0px >+PASS background-position: .1em 1px >+PASS background-position: .1em .1em >+PASS background-position: .1em -0px >+PASS background-position: .1em -1px >+PASS background-position: .1em -.1em >+PASS background-position: .1em top >+PASS background-position: .1em center >+PASS background-position: .1em bottom >+PASS background-position: -0px 5% >+PASS background-position: -0px .5% >+PASS background-position: -0px -5% >+PASS background-position: -0px -.5% >+PASS background-position: -0px 0px >+PASS background-position: -0px 1px >+PASS background-position: -0px .1em >+PASS background-position: -0px -0px >+PASS background-position: -0px -1px >+PASS background-position: -0px -.1em >+PASS background-position: -0px top >+PASS background-position: -0px center >+PASS background-position: -0px bottom >+PASS background-position: -1px 5% >+PASS background-position: -1px .5% >+PASS background-position: -1px -5% >+PASS background-position: -1px -.5% >+PASS background-position: -1px 0px >+PASS background-position: -1px 1px >+PASS background-position: -1px .1em >+PASS background-position: -1px -0px >+PASS background-position: -1px -1px >+PASS background-position: -1px -.1em >+PASS background-position: -1px top >+PASS background-position: -1px center >+PASS background-position: -1px bottom >+PASS background-position: -.1em 5% >+PASS background-position: -.1em .5% >+PASS background-position: -.1em -5% >+PASS background-position: -.1em -.5% >+PASS background-position: -.1em 0px >+PASS background-position: -.1em 1px >+PASS background-position: -.1em .1em >+PASS background-position: -.1em -0px >+PASS background-position: -.1em -1px >+PASS background-position: -.1em -.1em >+PASS background-position: -.1em top >+PASS background-position: -.1em center >+PASS background-position: -.1em bottom >+PASS background-position: left 5% >+PASS background-position: left .5% >+PASS background-position: left -5% >+PASS background-position: left -.5% >+PASS background-position: left 0px >+PASS background-position: left 1px >+PASS background-position: left .1em >+PASS background-position: left -0px >+PASS background-position: left -1px >+PASS background-position: left -.1em >+PASS background-position: left top >+PASS background-position: left center >+PASS background-position: left bottom >+PASS background-position: center 5% >+PASS background-position: center .5% >+PASS background-position: center -5% >+PASS background-position: center -.5% >+PASS background-position: center 0px >+PASS background-position: center 1px >+PASS background-position: center .1em >+PASS background-position: center -0px >+PASS background-position: center -1px >+PASS background-position: center -.1em >+PASS background-position: center top >+PASS background-position: center center >+PASS background-position: center bottom >+PASS background-position: right 5% >+PASS background-position: right .5% >+PASS background-position: right -5% >+PASS background-position: right -.5% >+PASS background-position: right 0px >+PASS background-position: right 1px >+PASS background-position: right .1em >+PASS background-position: right -0px >+PASS background-position: right -1px >+PASS background-position: right -.1em >+PASS background-position: right top >+PASS background-position: right center >+PASS background-position: right bottom >+PASS background-position: inherit >+PASS background-repeat: repeat >+PASS background-repeat: repeat-x >+PASS background-repeat: repeat-y >+PASS background-repeat: no-repeat >+PASS background-repeat: inherit >+PASS border-collapse: collapse >+PASS border-collapse: separate >+PASS border-collapse: inherit >+PASS border-spacing: 0px >+PASS border-spacing: 1px >+PASS border-spacing: .1em >+PASS border-spacing: inherit >+PASS border-top-color: black >+PASS border-top-color: red >+PASS border-top-color: rgb(50, 75, 100) >+FAIL border-top-color: rgba(5, 7, 10, 0.5) assert_equals: border-top-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS border-top-color: transparent >+PASS border-top-color: inherit >+PASS border-right-color: black >+PASS border-right-color: red >+PASS border-right-color: rgb(50, 75, 100) >+FAIL border-right-color: rgba(5, 7, 10, 0.5) assert_equals: border-right-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS border-right-color: transparent >+PASS border-right-color: inherit >+PASS border-bottom-color: black >+PASS border-bottom-color: red >+PASS border-bottom-color: rgb(50, 75, 100) >+FAIL border-bottom-color: rgba(5, 7, 10, 0.5) assert_equals: border-bottom-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS border-bottom-color: transparent >+PASS border-bottom-color: inherit >+PASS border-left-color: black >+PASS border-left-color: red >+PASS border-left-color: rgb(50, 75, 100) >+FAIL border-left-color: rgba(5, 7, 10, 0.5) assert_equals: border-left-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS border-left-color: transparent >+PASS border-left-color: inherit >+PASS border-top-style: none >+PASS border-top-style: hidden >+PASS border-top-style: dotted >+PASS border-top-style: dashed >+PASS border-top-style: solid >+PASS border-top-style: double >+PASS border-top-style: groove >+PASS border-top-style: ridge >+PASS border-top-style: inset >+PASS border-top-style: outset >+PASS border-top-style: inherit >+PASS border-right-style: none >+PASS border-right-style: hidden >+PASS border-right-style: dotted >+PASS border-right-style: dashed >+PASS border-right-style: solid >+PASS border-right-style: double >+PASS border-right-style: groove >+PASS border-right-style: ridge >+PASS border-right-style: inset >+PASS border-right-style: outset >+PASS border-right-style: inherit >+PASS border-bottom-style: none >+PASS border-bottom-style: hidden >+PASS border-bottom-style: dotted >+PASS border-bottom-style: dashed >+PASS border-bottom-style: solid >+PASS border-bottom-style: double >+PASS border-bottom-style: groove >+PASS border-bottom-style: ridge >+PASS border-bottom-style: inset >+PASS border-bottom-style: outset >+PASS border-bottom-style: inherit >+PASS border-left-style: none >+PASS border-left-style: hidden >+PASS border-left-style: dotted >+PASS border-left-style: dashed >+PASS border-left-style: solid >+PASS border-left-style: double >+PASS border-left-style: groove >+PASS border-left-style: ridge >+PASS border-left-style: inset >+PASS border-left-style: outset >+PASS border-left-style: inherit >+PASS border-top-width: thin >+PASS border-top-width: medium >+PASS border-top-width: thick >+PASS border-top-width: 0px >+PASS border-top-width: 1px >+PASS border-top-width: .1em >+PASS border-top-width: inherit >+PASS border-right-width: thin >+PASS border-right-width: medium >+PASS border-right-width: thick >+PASS border-right-width: 0px >+PASS border-right-width: 1px >+PASS border-right-width: .1em >+PASS border-right-width: inherit >+PASS border-bottom-width: thin >+PASS border-bottom-width: medium >+PASS border-bottom-width: thick >+PASS border-bottom-width: 0px >+PASS border-bottom-width: 1px >+PASS border-bottom-width: .1em >+PASS border-bottom-width: inherit >+PASS border-left-width: thin >+PASS border-left-width: medium >+PASS border-left-width: thick >+PASS border-left-width: 0px >+PASS border-left-width: 1px >+PASS border-left-width: .1em >+PASS border-left-width: inherit >+PASS bottom: 0px >+PASS bottom: 1px >+PASS bottom: .1em >+PASS bottom: 5% >+PASS bottom: .5% >+PASS bottom: auto >+PASS bottom: inherit >+PASS caption-side: top >+PASS caption-side: bottom >+PASS caption-side: inherit >+PASS clear: none >+PASS clear: left >+PASS clear: right >+PASS clear: both >+PASS clear: inherit >+PASS clip: rect(1em, auto, 0.5px, 2000em) >+PASS clip: auto >+PASS clip: inherit >+PASS color: black >+PASS color: red >+PASS color: rgb(50, 75, 100) >+FAIL color: rgba(5, 7, 10, 0.5) assert_equals: color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+PASS color: inherit >+PASS content: normal >+PASS content: none >+FAIL content: "string" assert_equals: content raw inline style declaration expected "\"string\"" but got "string" >+FAIL content: 'string' assert_equals: content raw inline style declaration expected "\"string\"" but got "string" >+PASS content: url("http://localhost/") >+PASS content: url(http://localhost/) >+FAIL content: counter(par-num) assert_equals: content raw inline style declaration expected "counter(par-num)" but got "counter(par-num, decimal)" >+FAIL content: counter(par-num, decimal) assert_equals: content raw inline style declaration expected "counter(par-num)" but got "counter(par-num, decimal)" >+PASS content: counter(par-num, upper-roman) >+PASS content: attr(foo-bar) >+PASS content: attr(foo_bar) >+PASS content: inherit >+PASS cursor: auto >+PASS cursor: crosshair >+PASS cursor: default >+PASS cursor: pointer >+PASS cursor: move >+PASS cursor: e-resize >+PASS cursor: ne-resize >+PASS cursor: nw-resize >+PASS cursor: n-resize >+PASS cursor: se-resize >+PASS cursor: sw-resize >+PASS cursor: s-resize >+PASS cursor: w-resize >+PASS cursor: text >+PASS cursor: wait >+PASS cursor: help >+PASS cursor: progress >+PASS cursor: inherit >+PASS direction: ltr >+PASS direction: rtl >+PASS direction: inherit >+PASS display: inline >+PASS display: block >+PASS display: list-item >+PASS display: inline-block >+PASS display: table >+PASS display: inline-table >+PASS display: table-row-group >+PASS display: table-header-group >+PASS display: table-footer-group >+PASS display: table-row >+PASS display: table-column-group >+PASS display: table-column >+PASS display: table-cell >+PASS display: table-caption >+PASS display: none >+PASS display: inherit >+PASS empty-cells: show >+PASS empty-cells: hide >+PASS empty-cells: inherit >+PASS float: left >+PASS float: right >+PASS float: none >+PASS float: inherit >+PASS font-family: Arial >+PASS font-family: 'Lucida Grande' >+PASS font-family: serif >+PASS font-family: sans-serif >+PASS font-family: inherit >+PASS font-size: xx-small >+PASS font-size: x-small >+PASS font-size: small >+PASS font-size: medium >+PASS font-size: large >+PASS font-size: x-large >+PASS font-size: xx-large >+PASS font-size: larger >+PASS font-size: smaller >+PASS font-size: 0px >+PASS font-size: 1px >+PASS font-size: .1em >+PASS font-size: 5% >+PASS font-size: .5% >+PASS font-size: inherit >+PASS font-style: normal >+PASS font-style: italic >+PASS font-style: oblique >+PASS font-style: inherit >+FAIL font-variant: normal assert_equals: font-variant raw inline style declaration expected "normal" but got "" >+FAIL font-variant: small-caps assert_equals: font-variant raw inline style declaration expected "small-caps" but got "" >+FAIL font-variant: inherit assert_equals: font-variant raw inline style declaration expected "inherit" but got "" >+PASS font-weight: normal >+PASS font-weight: bold >+PASS font-weight: bolder >+PASS font-weight: lighter >+PASS font-weight: 100 >+PASS font-weight: 200 >+PASS font-weight: 300 >+PASS font-weight: 400 >+PASS font-weight: 500 >+PASS font-weight: 600 >+PASS font-weight: 700 >+PASS font-weight: 800 >+PASS font-weight: 900 >+PASS font-weight: inherit >+PASS height: 0px >+PASS height: 1px >+PASS height: .1em >+PASS height: 5% >+PASS height: .5% >+PASS height: auto >+PASS height: inherit >+PASS left: 0px >+PASS left: 1px >+PASS left: .1em >+PASS left: 5% >+PASS left: .5% >+PASS left: auto >+PASS left: inherit >+PASS letter-spacing: normal >+PASS letter-spacing: 0px >+PASS letter-spacing: 1px >+PASS letter-spacing: .1em >+PASS letter-spacing: inherit >+PASS line-height: normal >+PASS line-height: 0 >+PASS line-height: -0 >+PASS line-height: 1000 >+PASS line-height: 0.9 >+PASS line-height: 0px >+PASS line-height: 1px >+PASS line-height: .1em >+PASS line-height: 5% >+PASS line-height: .5% >+PASS line-height: inherit >+PASS list-style-image: url("http://localhost/") >+PASS list-style-image: url(http://localhost/) >+PASS list-style-image: none >+PASS list-style-image: inherit >+PASS list-style-position: inside >+PASS list-style-position: outside >+PASS list-style-position: inherit >+PASS list-style-type: disc >+PASS list-style-type: circle >+PASS list-style-type: square >+PASS list-style-type: decimal >+PASS list-style-type: decimal-leading-zero >+PASS list-style-type: lower-roman >+PASS list-style-type: upper-roman >+PASS list-style-type: lower-greek >+PASS list-style-type: lower-latin >+PASS list-style-type: upper-latin >+PASS list-style-type: armenian >+PASS list-style-type: georgian >+PASS list-style-type: lower-alpha >+PASS list-style-type: upper-alpha >+PASS list-style-type: none >+PASS list-style-type: inherit >+PASS margin-right: 0px >+PASS margin-right: 1px >+PASS margin-right: .1em >+PASS margin-right: 5% >+PASS margin-right: .5% >+PASS margin-right: auto >+PASS margin-right: inherit >+PASS margin-left: 0px >+PASS margin-left: 1px >+PASS margin-left: .1em >+PASS margin-left: 5% >+PASS margin-left: .5% >+PASS margin-left: auto >+PASS margin-left: inherit >+PASS margin-top: 0px >+PASS margin-top: 1px >+PASS margin-top: .1em >+PASS margin-top: 5% >+PASS margin-top: .5% >+PASS margin-top: auto >+PASS margin-top: inherit >+PASS margin-bottom: 0px >+PASS margin-bottom: 1px >+PASS margin-bottom: .1em >+PASS margin-bottom: 5% >+PASS margin-bottom: .5% >+PASS margin-bottom: auto >+PASS margin-bottom: inherit >+PASS max-height: 0px >+PASS max-height: 1px >+PASS max-height: .1em >+PASS max-height: 5% >+PASS max-height: .5% >+PASS max-height: none >+PASS max-height: inherit >+PASS max-width: 0px >+PASS max-width: 1px >+PASS max-width: .1em >+PASS max-width: 5% >+PASS max-width: .5% >+PASS max-width: none >+PASS max-width: inherit >+PASS min-height: 0px >+PASS min-height: 1px >+PASS min-height: .1em >+PASS min-height: 5% >+PASS min-height: .5% >+PASS min-height: inherit >+PASS min-width: 0px >+PASS min-width: 1px >+PASS min-width: .1em >+PASS min-width: 5% >+PASS min-width: .5% >+PASS min-width: inherit >+PASS orphans: 101 >+PASS orphans: inherit >+PASS outline-color: black >+PASS outline-color: red >+PASS outline-color: rgb(50, 75, 100) >+FAIL outline-color: rgba(5, 7, 10, 0.5) assert_equals: outline-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >+FAIL outline-color: invert assert_equals: outline-color raw inline style declaration expected "invert" but got "" >+PASS outline-color: inherit >+PASS outline-style: none >+PASS outline-style: dotted >+PASS outline-style: dashed >+PASS outline-style: solid >+PASS outline-style: double >+PASS outline-style: groove >+PASS outline-style: ridge >+PASS outline-style: inset >+PASS outline-style: outset >+PASS outline-style: inherit >+PASS outline-width: thin >+PASS outline-width: medium >+PASS outline-width: thick >+PASS outline-width: 0px >+PASS outline-width: 1px >+PASS outline-width: .1em >+PASS outline-width: inherit >+PASS overflow: visible >+PASS overflow: hidden >+PASS overflow: scroll >+PASS overflow: auto >+PASS overflow: inherit >+PASS padding-top: 0px >+PASS padding-top: 1px >+PASS padding-top: .1em >+PASS padding-top: 5% >+PASS padding-top: .5% >+PASS padding-top: inherit >+PASS padding-right: 0px >+PASS padding-right: 1px >+PASS padding-right: .1em >+PASS padding-right: 5% >+PASS padding-right: .5% >+PASS padding-right: inherit >+PASS padding-bottom: 0px >+PASS padding-bottom: 1px >+PASS padding-bottom: .1em >+PASS padding-bottom: 5% >+PASS padding-bottom: .5% >+PASS padding-bottom: inherit >+PASS padding-left: 0px >+PASS padding-left: 1px >+PASS padding-left: .1em >+PASS padding-left: 5% >+PASS padding-left: .5% >+PASS padding-left: inherit >+FAIL page-break-after: auto assert_equals: page-break-after raw inline style declaration expected "auto" but got "" >+FAIL page-break-after: always assert_equals: page-break-after raw inline style declaration expected "always" but got "" >+FAIL page-break-after: avoid assert_equals: page-break-after raw inline style declaration expected "avoid" but got "" >+FAIL page-break-after: left assert_equals: page-break-after raw inline style declaration expected "left" but got "" >+FAIL page-break-after: right assert_equals: page-break-after raw inline style declaration expected "right" but got "" >+PASS page-break-after: inherit >+FAIL page-break-before: auto assert_equals: page-break-before raw inline style declaration expected "auto" but got "" >+FAIL page-break-before: always assert_equals: page-break-before raw inline style declaration expected "always" but got "" >+FAIL page-break-before: avoid assert_equals: page-break-before raw inline style declaration expected "avoid" but got "" >+FAIL page-break-before: left assert_equals: page-break-before raw inline style declaration expected "left" but got "" >+FAIL page-break-before: right assert_equals: page-break-before raw inline style declaration expected "right" but got "" >+PASS page-break-before: inherit >+FAIL page-break-inside: avoid assert_equals: page-break-inside raw inline style declaration expected "avoid" but got "" >+FAIL page-break-inside: auto assert_equals: page-break-inside raw inline style declaration expected "auto" but got "" >+PASS page-break-inside: inherit >+PASS position: static >+PASS position: relative >+PASS position: absolute >+PASS position: fixed >+PASS position: inherit >+PASS right: 0px >+PASS right: 1px >+PASS right: .1em >+PASS right: 5% >+PASS right: .5% >+PASS right: auto >+PASS right: inherit >+PASS table-layout: auto >+PASS table-layout: fixed >+PASS table-layout: inherit >+PASS text-align: left >+PASS text-align: right >+PASS text-align: center >+PASS text-align: justify >+PASS text-align: inherit >+PASS text-decoration: none >+PASS text-decoration: underline >+PASS text-decoration: overline >+PASS text-decoration: line-through >+PASS text-decoration: blink >+PASS text-decoration: inherit >+PASS text-indent: 0px >+PASS text-indent: 1px >+PASS text-indent: .1em >+PASS text-indent: 5% >+PASS text-indent: .5% >+PASS text-indent: inherit >+PASS text-transform: capitalize >+PASS text-transform: uppercase >+PASS text-transform: lowercase >+PASS text-transform: none >+PASS text-transform: inherit >+PASS top: 0px >+PASS top: 1px >+PASS top: .1em >+PASS top: 5% >+PASS top: .5% >+PASS top: auto >+PASS top: inherit >+PASS unicode-bidi: normal >+PASS unicode-bidi: embed >+PASS unicode-bidi: bidi-override >+PASS unicode-bidi: inherit >+PASS vertical-align: baseline >+PASS vertical-align: sub >+PASS vertical-align: super >+PASS vertical-align: top >+PASS vertical-align: text-top >+PASS vertical-align: middle >+PASS vertical-align: bottom >+PASS vertical-align: text-bottom >+PASS vertical-align: 5% >+PASS vertical-align: .5% >+PASS vertical-align: 0px >+PASS vertical-align: 1px >+PASS vertical-align: .1em >+PASS vertical-align: inherit >+PASS visibility: visible >+PASS visibility: hidden >+PASS visibility: collapse >+PASS visibility: inherit >+PASS white-space: normal >+PASS white-space: pre >+PASS white-space: nowrap >+PASS white-space: pre-wrap >+PASS white-space: pre-line >+PASS white-space: inherit >+PASS widows: 101 >+PASS widows: inherit >+PASS width: 0px >+PASS width: 1px >+PASS width: .1em >+PASS width: 5% >+PASS width: .5% >+PASS width: auto >+PASS width: inherit >+PASS word-spacing: normal >+PASS word-spacing: 0px >+PASS word-spacing: 1px >+PASS word-spacing: .1em >+PASS word-spacing: inherit >+PASS z-index: auto >+PASS z-index: 0 >+PASS z-index: 101 >+PASS z-index: -51 >+PASS z-index: inherit >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1b02f754da88cfe3655ff70b7a26e5442c778127 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values.html >@@ -0,0 +1,597 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>CSSOM serialize values</title> >+<link rel="help" href="https://drafts.csswg.org/cssom/#serializing-css-values"> >+<meta name="author" title="Josh Matthews" href="mailto:josh@joshmatthews.net"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<body> >+ <div id="log"></div> >+ <div id="parent"></div> >+ <script> >+ function iterable(values) { >+ var i = 0; >+ return function() { >+ if (i < values.length) { >+ return values[i++]; >+ } >+ return null; >+ } >+ } >+ >+ function color() { >+ var colors = ['black', 'red', 'rgb(50, 75, 100)', 'rgba(5, 7, 10, 0.5)']; >+ return iterable(colors); >+ } >+ >+ function percentage() { >+ var values = ["5%", {actual: ".5%", serialized: "0.5%"}]; >+ return iterable(values); >+ } >+ >+ function negative_percentage() { >+ var values = ["-5%", {actual: "-.5%", serialized: "-0.5%"}]; >+ return iterable(values); >+ } >+ >+ function length() { >+ var values = ["0px", "1px", {actual: ".1em", serialized: "0.1em"}]; >+ return iterable(values); >+ } >+ >+ function negative_length() { >+ var values = [{actual: "-0px", serialized: "0px"}, >+ "-1px", {actual: "-.1em", serialized: "-0.1em"}]; >+ return iterable(values); >+ } >+ >+ function degree() { >+ var values = ["87deg"]; >+ return iterable(values); >+ } >+ >+ function uri() { >+ var values = ["url(\"http://localhost/\")", >+ {actual: "url(http://localhost/)", >+ serialized: "url(\"http://localhost/\")"}]; >+ return iterable(values); >+ } >+ >+ function border_style() { >+ var values = ['none', 'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', >+ 'inset', 'outset']; >+ return iterable(values); >+ } >+ >+ function border_style_without_hidden() { >+ var values = ['none', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', >+ 'inset', 'outset']; >+ return iterable(values); >+ } >+ >+ function integer() { >+ var values = ['0', '101', '-51']; >+ return iterable(values); >+ } >+ >+ function nonzero_positive_integer() { >+ var values = ['101']; >+ return iterable(values); >+ } >+ >+ function shape() { >+ var values = ['rect(1em, auto, 0.5px, 2000em)']; >+ return iterable(values); >+ } >+ >+ function string() { >+ var values = ['"string"', {actual: "'string'", serialized: '"string"'}]; >+ return iterable(values); >+ } >+ >+ function counter() { >+ var values = ['counter(par-num)', >+ { actual: 'counter(par-num, decimal)', serialized: 'counter(par-num)' }, >+ 'counter(par-num, upper-roman)']; >+ return iterable(values); >+ } >+ >+ function attr() { >+ var values = ['attr(foo-bar)', 'attr(foo_bar)']; >+ return iterable(values); >+ } >+ >+ function family_name() { >+ var values = ['Arial', {actual: "'Lucida Grande'", serialized: '"Lucida Grande"'}]; >+ return iterable(values); >+ } >+ >+ function generic_family() { >+ var values = ['serif', 'sans-serif']; >+ return iterable(values); >+ } >+ >+ function absolute_size() { >+ var values = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; >+ return iterable(values); >+ } >+ >+ function relative_size() { >+ var values = ['larger', 'smaller']; >+ return iterable(values); >+ } >+ >+ function number() { >+ var values = ['0', {'actual': '-0', serialized: '0'}, '1000', '-5123', '0.9', '-0.09']; >+ return iterable(values); >+ } >+ >+ function positive_number() { >+ var values = ['0', {'actual': '-0', serialized: '0'}, '1000', '0.9']; >+ return iterable(values); >+ } >+ >+ function generate_inline_style(name, value) { >+ if (value) { >+ return {'declaration': name + ": " + value.actual, >+ 'value': value.actual, >+ 'result': value.expected}; >+ } >+ return null; >+ } >+ >+ function create_result(actual, expected) { >+ return {actual: actual, expected: expected} >+ } >+ >+ function all_values(values) { >+ var results = []; >+ for (var i = 0; i < values.length; i++) { >+ var value = values[i]; >+ if (typeof value == "function") { >+ var f = value(); >+ var result; >+ while ((result = f()) != null) { >+ if (typeof result == "object" && 'serialized' in result) { >+ results.push(create_result(result.actual, result.serialized)); >+ } else { >+ results.push(create_result(result, result)); >+ } >+ } >+ } else if (typeof value == "string") { >+ results.push(create_result(value, value)); >+ } else if (value instanceof Array) { >+ var subresults = []; >+ for (var j = 0; j < value.length; j++) { >+ var subresult = all_values(value[j], true); >+ if (!(subresult instanceof Array)) { >+ subresult = [subresult]; >+ } >+ subresults.push(subresult); >+ } >+ if (subresults.length > 1) { >+ function choose_slices(vecs) { >+ if (vecs.length == 1) { >+ return vecs[0].map(function(v) { return [v]; }); >+ } >+ var slice_results = []; >+ var rest = choose_slices(vecs.slice(1, vecs.length)); >+ for (var a = 0; a < vecs[0].length; a++) { >+ for (var b = 0; b < rest.length; b++) { >+ var result = vecs[0][a]; >+ slice_results.push([result].concat(rest[b])); >+ } >+ } >+ return slice_results; >+ } >+ >+ subresults = choose_slices(subresults).map(function (a) { >+ var actual = a.map(function(a) { return a.actual }); >+ var expected = a.map(function(a) { return a.expected }); >+ return create_result(actual.join(' '), expected.join(' ')) >+ }); >+ } >+ for (var j = 0; j < subresults.length; j++) { >+ results = results.concat(subresults[j]); >+ } >+ } else if (value instanceof Object && 'serialized' in value) { >+ results.push(create_result(value.actual, value.serialized)); >+ } else if (typeof value == "number") { >+ results.push(create_result(value.toString(), value.toString())); >+ } else { >+ throw "unexpected value type: " + typeof(value); >+ } >+ } >+ return results; >+ } >+ >+ function create_value_generator(property) { >+ var results = all_values(property.values); >+ return iterable(results); >+ } >+ >+ function to_idl(property) { >+ return property.replace(/-\w/g, function(x){return x[1].toUpperCase()}); >+ } >+ >+ function run_individual_test(property, generator, initial) { >+ var elem = document.createElement('div'); >+ document.getElementById('parent').appendChild(elem); >+ var test_data = generator(); >+ var style = generate_inline_style(property, test_data); >+ if (!style) { >+ return false; >+ } >+ var t = async_test(style.declaration); >+ >+ t.add_cleanup(function() { >+ document.getElementById('parent').removeChild(elem); >+ }); >+ >+ t.step(function() { >+ elem.setAttribute('style', style.declaration); >+ var expected = style.result; >+ var serialized = elem.style[to_idl(property)]; >+ assert_equals(serialized, expected, property + ' raw inline style declaration'); >+ elem.setAttribute('style', ''); >+ elem.style[to_idl(property)] = style.value; >+ assert_equals(elem.style[to_idl(property)], expected, property + ' style property'); >+ }); >+ t.done(); >+ return true; >+ } >+ >+ function test_property(property) { >+ var generator = create_value_generator(property[1]); >+ while (run_individual_test(property[0], generator, property[1].initial)) { >+ } >+ } >+ >+ var properties = [ >+ ['background-attachment', { >+ 'values': ['scroll', 'fixed', 'inherit'], >+ 'initial': 'scroll', >+ }], >+ ['background-color', { >+ 'values': [color, 'transparent', 'inherit'], >+ 'initial': 'transparent', >+ }], >+ ['background-image', { >+ 'values': [uri, 'none', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['background-position', { >+ 'values': [[[percentage, negative_percentage, length, negative_length, >+ 'left', 'center', 'right'], >+ [percentage, negative_percentage, length, negative_length, >+ 'top', 'center', 'bottom']], >+ 'inherit'], >+ 'initial': '0% 0%', >+ }], >+ ['background-repeat', { >+ 'values': ['repeat', 'repeat-x', 'repeat-y', 'no-repeat', 'inherit'], >+ 'initial': 'repeat', >+ }], >+ //background >+ ['border-collapse', { >+ 'values': ['collapse', 'separate', 'inherit'], >+ 'initial': 'separate', >+ }], >+ //border-color >+ ['border-spacing', { >+ 'values': [length, 'inherit'], >+ 'initial': '0', >+ }], >+ //border-style >+ //border-top, border-right, border-bottom, border-left >+ ['border-top-color', { >+ 'values': [color, 'transparent', 'inherit'], >+ 'initial': 'black', //FIXME >+ }], >+ ['border-right-color', { >+ 'values': [color, 'transparent', 'inherit'], >+ 'initial': 'black', //FIXME >+ }], >+ ['border-bottom-color', { >+ 'values': [color, 'transparent', 'inherit'], >+ 'initial': 'black', //FIXME >+ }], >+ ['border-left-color', { >+ 'values': [color, 'transparent', 'inherit'], >+ 'initial': 'black', //FIXME >+ }], >+ ['border-top-style', { >+ 'values': [border_style, 'inherit'], >+ 'initial': null, >+ }], >+ ['border-right-style', { >+ 'values': [border_style, 'inherit'], >+ 'initial': null, >+ }], >+ ['border-bottom-style', { >+ 'values': [border_style, 'inherit'], >+ 'initial': null, >+ }], >+ ['border-left-style', { >+ 'values': [border_style, 'inherit'], >+ 'initial': null, >+ }], >+ ['border-top-width', { >+ 'values': ['thin', 'medium', 'thick', length, 'inherit'], >+ 'initial': 'medium', >+ }], >+ ['border-right-width', { >+ 'values': ['thin', 'medium', 'thick', length, 'inherit'], >+ 'initial': 'medium', >+ }], >+ ['border-bottom-width', { >+ 'values': ['thin', 'medium', 'thick', length, 'inherit'], >+ 'initial': 'medium', >+ }], >+ ['border-left-width', { >+ 'values': ['thin', 'medium', 'thick', length, 'inherit'], >+ 'initial': 'medium', >+ }], >+ //border-width >+ //border >+ ['bottom', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['caption-side', { >+ 'values': ['top', 'bottom', 'inherit'], >+ 'initial': 'top', >+ }], >+ ['clear', { >+ 'values': ['none', 'left', 'right', 'both', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['clip', { >+ 'values': [shape, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['color', { >+ 'values': [color, 'inherit'], >+ 'initial': 'black', //FIXME depends on user agent >+ }], >+ ['content', { >+ 'values': ['normal', 'none', string, uri, counter, attr, 'inherit'], //FIXME >+ 'initial': 'normal', >+ }], >+ //counter-increment >+ //counter-reset >+ ['cursor', { >+ 'values': [ 'auto', 'crosshair', 'default', 'pointer', 'move', 'e-resize', 'ne-resize', >+ 'nw-resize', 'n-resize', 'se-resize', 'sw-resize', 's-resize', 'w-resize', >+ 'text', 'wait', 'help', 'progress', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['direction', { >+ 'values': ['ltr', 'rtl', 'inherit'], >+ 'initial': 'ltr', >+ }], >+ ['display', { >+ 'values': ['inline', 'block', 'list-item', 'inline-block', 'table', 'inline-table', >+ 'table-row-group', 'table-header-group', 'table-footer-group', 'table-row', >+ 'table-column-group', 'table-column', 'table-cell', 'table-caption', 'none', >+ 'inherit'], >+ 'initial': 'inline', >+ }], >+ ['empty-cells', { >+ 'values': ['show', 'hide', 'inherit'], >+ 'initial': 'show', >+ }], >+ ['float', { >+ 'values': ['left', 'right', 'none', 'inherit'], >+ 'initial': 'none', >+ 'property': 'cssFloat', >+ }], >+ ['font-family', { >+ 'values': [family_name, generic_family, 'inherit'], >+ 'initial': 'sans-serif', //FIXME depends on user agent >+ }], >+ ['font-size', { >+ 'values': [absolute_size, relative_size, length, percentage, 'inherit'], >+ 'initial': 'medium', >+ }], >+ ['font-style', { >+ 'values': ['normal', 'italic', 'oblique', 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['font-variant', { >+ 'values': ['normal', 'small-caps', 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['font-weight', { >+ 'values': ['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, >+ 700, 800, 900, 'inherit'], >+ 'initial': 'normal', >+ }], >+ //font >+ ['height', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['left', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['letter-spacing', { >+ 'values': ['normal', length, 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['line-height', { >+ 'values': ['normal', positive_number, length, percentage, 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['list-style-image', { >+ 'values': [uri, 'none', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['list-style-position', { >+ 'values': ['inside', 'outside', 'inherit'], >+ 'initial': 'outside', >+ }], >+ ['list-style-type', { >+ 'values': ['disc', 'circle', 'square', 'decimal', 'decimal-leading-zero', 'lower-roman', >+ 'upper-roman', 'lower-greek', 'lower-latin', 'upper-latin', 'armenian', 'georgian', >+ 'lower-alpha', 'upper-alpha', 'none', 'inherit'], >+ 'initial': 'disc', >+ }], >+ //list-style >+ ['margin-right', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 0, >+ }], >+ ['margin-left', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 0, >+ }], >+ ['margin-top', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 0, >+ }], >+ ['margin-bottom', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 0, >+ }], >+ //margin >+ ['max-height', { >+ 'values': [length, percentage, 'none', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['max-width', { >+ 'values': [length, percentage, 'none', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['min-height', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['min-width', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['orphans', { >+ 'values': [nonzero_positive_integer, 'inherit'], >+ 'initial': 2, >+ }], >+ ['outline-color', { >+ 'values': [color, 'invert', 'inherit'], >+ 'initial': 'invert', >+ }], >+ ['outline-style', { >+ 'values': [border_style_without_hidden, 'inherit'], >+ 'initial': 'none', >+ }], >+ ['outline-width', { >+ 'values': ['thin', 'medium', 'thick', length, 'inherit'], >+ 'initial': 'medium', >+ }], >+ //outline >+ ['overflow', { >+ 'values': ['visible', 'hidden', 'scroll', 'auto', 'inherit'], >+ 'initial': 'visible', >+ }], >+ ['padding-top', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['padding-right', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['padding-bottom', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['padding-left', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ //padding >+ ['page-break-after', { >+ 'values': ['auto', 'always', 'avoid', 'left', 'right', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['page-break-before', { >+ 'values': ['auto', 'always', 'avoid', 'left', 'right', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['page-break-inside', { >+ 'values': ['avoid', 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['position', { >+ 'values': ['static', 'relative', 'absolute', 'fixed', 'inherit'], >+ 'initial': 'static', >+ }], >+ //FIXME quotes >+ ['right', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['table-layout', { >+ 'values': ['auto', 'fixed', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['text-align', { >+ 'values': ['left', 'right', 'center', 'justify', 'inherit'], >+ 'initial': null, >+ }], >+ ['text-decoration', { >+ 'values': ['none', 'underline', 'overline', 'line-through', 'blink', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['text-indent', { >+ 'values': [length, percentage, 'inherit'], >+ 'initial': 0, >+ }], >+ ['text-transform', { >+ 'values': ['capitalize', 'uppercase', 'lowercase', 'none', 'inherit'], >+ 'initial': 'none', >+ }], >+ ['top', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['unicode-bidi', { >+ 'values': ['normal', 'embed', 'bidi-override', 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['vertical-align', { >+ 'values': ['baseline', 'sub', 'super', 'top', 'text-top', 'middle', 'bottom', 'text-bottom', >+ percentage, length, 'inherit'], >+ 'initial': 'baseline', >+ }], >+ ['visibility', { >+ 'values': ['visible', 'hidden', 'collapse', 'inherit'], >+ 'initial': 'visible', >+ }], >+ ['white-space', { >+ 'values': ['normal', 'pre', 'nowrap', 'pre-wrap', 'pre-line', 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['widows', { >+ 'values': [nonzero_positive_integer, 'inherit'], >+ 'initial': 2, >+ }], >+ ['width', { >+ 'values': [length, percentage, 'auto', 'inherit'], >+ 'initial': 'auto', >+ }], >+ ['word-spacing', { >+ 'values': ['normal', length, 'inherit'], >+ 'initial': 'normal', >+ }], >+ ['z-index', { >+ 'values': ['auto', integer, 'inherit'], >+ 'initial': 'auto', >+ }], >+ ] >+ >+ for (var index = 0; index < properties.length; index++) { >+ test_property(properties[index]); >+ } >+ </script> >+</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..b95e917dda782cc0fa1501a84fc973ead99a178d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Longhand with variable preserves original serialization: with whitespace >+PASS Shorthand with variable preserves original serialization: with whitespace >+FAIL Longhand with variable preserves original serialization: without whitespace assert_equals: expected "font-size:var(--a);" but got "font-size: var(--a);" >+FAIL Shorthand with variable preserves original serialization: without whitespace assert_equals: expected "font:var(--a);" but got "font: var(--a);" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference.html >new file mode 100644 >index 0000000000000000000000000000000000000000..30eeca986d0e77734341d04319100e3ad32198df >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference.html >@@ -0,0 +1,36 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSSOM - Serialization with variable preserves original serialization.</title> >+<link rel="help" href="https://drafts.csswg.org/css-variables/#serializing-custom-props"> >+<link rel="help" href="https://drafts.csswg.org/css-variables/#variables-in-shorthands"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="longhand-whitespace" style="font-size: var(--a);"></div> >+<div id="shorthand-whitespace" style="font: var(--a);"></div> >+<div id="longhand" style="font-size:var(--a);"></div> >+<div id="shorthand" style="font:var(--a);"></div> >+<script> >+ test(function() { >+ var elem = document.getElementById('longhand-whitespace'); >+ >+ assert_equals(elem.style.cssText, 'font-size: var(--a);'); >+ }, 'Longhand with variable preserves original serialization: with whitespace') >+ >+ test(function() { >+ var elem = document.getElementById('shorthand-whitespace'); >+ >+ assert_equals(elem.style.cssText, 'font: var(--a);'); >+ }, 'Shorthand with variable preserves original serialization: with whitespace') >+ >+ test(function() { >+ var elem = document.getElementById('longhand'); >+ >+ assert_equals(elem.style.cssText, 'font-size:var(--a);'); >+ }, 'Longhand with variable preserves original serialization: without whitespace') >+ >+ test(function() { >+ var elem = document.getElementById('shorthand'); >+ >+ assert_equals(elem.style.cssText, 'font:var(--a);'); >+ }, 'Shorthand with variable preserves original serialization: without whitespace') >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..2a91baf3406cb2f6f471dc7d38ee640d4bc2bf61 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined-expected.txt >@@ -0,0 +1,6 @@ >+ >+PASS Verify that setting a CSS property to undefined has no effect. >+PASS Verify that setting a CSS property priority to undefined is accepted. >+PASS Verify that setting a CSS property to null is treated like empty string. >+PASS Verify that setting a CSS property priority to null is treated like empty string. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined.html >new file mode 100644 >index 0000000000000000000000000000000000000000..c1d51629933c26ccf19fb6bef1e06af281a8e7cd >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined.html >@@ -0,0 +1,47 @@ >+<!doctype html> >+<html> >+<head> >+<link rel="help" href="https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty"/> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+<script> >+var style = document.body.style; >+ >+test(function() { >+ style.color = 'white'; >+ >+ assert_equals(style.color, 'white'); >+ style.setProperty('color', undefined); >+ assert_equals(style.color, 'white'); >+}, "Verify that setting a CSS property to undefined has no effect."); >+ >+test(function() { >+ style.color = 'white'; >+ >+ assert_equals(style.color, 'white'); >+ assert_equals(style.getPropertyPriority('color'), ''); >+ style.setProperty('color', 'red', undefined); >+ assert_equals(style.color, 'red'); >+ assert_equals(style.getPropertyPriority('color'), ''); >+}, "Verify that setting a CSS property priority to undefined is accepted."); >+ >+test(function() { >+ style.color = 'white'; >+ >+ assert_equals(style.color, 'white'); >+ style.setProperty('color', null); >+ assert_equals(style.color, ''); >+}, "Verify that setting a CSS property to null is treated like empty string."); >+ >+test(function() { >+ style.color = 'white'; >+ >+ assert_equals(style.color, 'white'); >+ style.setProperty('color', 'red', null); >+ assert_equals(style.color, 'red'); >+}, "Verify that setting a CSS property priority to null is treated like empty string."); >+</script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..369d53047d26d136b6316e5321357b732bfebea6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization-expected.txt >@@ -0,0 +1,13 @@ >+foo >+foo >+foo >+foo >+foo >+foo >+foo >+ >+PASS Shorthand serialization with shorthand and longhands mixed. >+PASS Shorthand serialization with just longhands. >+FAIL Shorthand serialization with variable and variable from other shorthand. assert_equals: expected "var(--a)" but got "" >+PASS Shorthand serialization after setting >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization.html >new file mode 100644 >index 0000000000000000000000000000000000000000..095f0a4553a1212796a06546d9af5abec568953f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization.html >@@ -0,0 +1,63 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>Shorthand serialization should be done correctly.</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-declaration-block"> >+ <link rel="help" href="https://drafts.csswg.org/css-variables/#variables-in-shorthands"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+ <div id="foo1" style="background: red;">foo</div> >+ <div id="foo2" style="background-color: blue; background: red !important; background-color: green;">foo</div> >+ <div id="foo3" style="background-color: blue; background: red; background-color: green !important;">foo</div> >+ >+ <div id="foo4" style="margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px;">foo</div> >+ <div id="foo5" style="margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px!important;">foo</div> >+ <div id="foo6" style="margin-right: 10px !important; margin-left: 10px !important; margin-top: 10px !important; margin-bottom: 10px!important;">foo</div> >+ >+ <div id="foo7" style="background:var(--a);">foo</div> >+ <div id="test"></div> >+ >+ <script> >+ test(function() { >+ var elem1 = document.getElementById('foo1'); >+ var elem2 = document.getElementById('foo2'); >+ var elem3 = document.getElementById('foo3'); >+ >+ assert_false(elem1.style.cssText.endsWith('!important;')); >+ assert_true(elem2.style.cssText.endsWith('!important;')); >+ assert_false(elem3.style.background.endsWith('!important')); >+ >+ }, "Shorthand serialization with shorthand and longhands mixed."); >+ >+ test(function() { >+ var elem4 = document.getElementById('foo4'); >+ var elem5 = document.getElementById('foo5'); >+ var elem6 = document.getElementById('foo6'); >+ >+ assert_equals(elem4.style.cssText, 'margin: 10px;'); >+ assert_equals(elem4.style.margin, '10px'); >+ assert_equals(elem5.style.cssText, 'margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px !important;'); >+ assert_equals(elem5.style.margin, ''); >+ assert_equals(elem6.style.cssText, 'margin: 10px !important;'); >+ assert_equals(elem6.style.margin, '10px'); >+ }, "Shorthand serialization with just longhands."); >+ >+ test(function() { >+ var elem7 = document.getElementById('foo7'); >+ >+ assert_equals(elem7.style.background, 'var(--a)'); >+ assert_equals(elem7.style.backgroundPosition, ''); >+ }, "Shorthand serialization with variable and variable from other shorthand."); >+ >+ test(function() { >+ var testElem = document.getElementById("test"); >+ testElem.style.margin = "20px 20px 20px 20px"; >+ assert_equals(testElem.style.margin, "20px"); >+ assert_equals(testElem.style.cssText, "margin: 20px;") >+ }, "Shorthand serialization after setting"); >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..98037d9f2e5b88fd3e49327bbc02b4a0b20da7a7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt >@@ -0,0 +1,21 @@ >+ >+PASS The serialization of border: 1px; border-top: 1px; should be canonical. >+PASS The serialization of border: 1px solid red; should be canonical. >+PASS The serialization of border: 1px red; should be canonical. >+PASS The serialization of border: red; should be canonical. >+PASS The serialization of border-top: 1px; border-right: 1px; border-bottom: 1px; border-left: 1px; should be canonical. >+PASS The serialization of border-top: 1px; border-right: 2px; border-bottom: 3px; border-left: 4px; should be canonical. >+PASS The serialization of border: 1px; border-top: 2px; should be canonical. >+PASS The serialization of border: 1px; border-top: 1px !important; should be canonical. >+PASS The serialization of border: 1px; border-top-color: red; should be canonical. >+PASS The serialization of border: solid; border-style: dotted should be canonical. >+PASS The serialization of border-width: 1px; should be canonical. >+FAIL The serialization of overflow-x: scroll; overflow-y: hidden; should be canonical. assert_equals: expected "overflow: scroll hidden;" but got "overflow-x: scroll; overflow-y: hidden;" >+PASS The serialization of overflow-x: scroll; overflow-y: scroll; should be canonical. >+PASS The serialization of outline-width: 2px; outline-style: dotted; outline-color: blue; should be canonical. >+PASS The serialization of margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px; should be canonical. >+PASS The serialization of list-style-type: circle; list-style-position: inside; list-style-image: initial; should be canonical. >+PASS The serialization of list-style-type: lower-alpha; should be canonical. >+PASS The serialization of font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold; should be canonical. >+PASS The serialization of padding-top: 1px; padding-right: 2px; padding-bottom: 3px; padding-left: 4px; should be canonical. >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values.html >new file mode 100644 >index 0000000000000000000000000000000000000000..db11320ad5aaceda963f7eaae09550d42447210f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values.html >@@ -0,0 +1,50 @@ >+<!doctype html> >+<head> >+ <title>CSS OM: CSS Values</title> >+ <link rel="author" title="Divya Manian" href="mailto:manian@adobe.com"> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-declaration-block"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="Testing Serialization of Shorthand Values"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+ <div id="test"></div> >+ <script> >+ function test_shorthand_serialization(value, expected) { >+ test(function() { >+ const div = document.getElementById("test"); >+ div.style.cssText = value; >+ assert_equals(div.style.cssText, expected); >+ }, "The serialization of " + value + " should be canonical."); >+ } >+ >+ var tests = { >+ // specified -> expected >+ 'border: 1px; border-top: 1px;': 'border: 1px;', >+ 'border: 1px solid red;': 'border: 1px solid red;', >+ 'border: 1px red;': 'border: 1px red;', >+ 'border: red;': 'border: red;', >+ 'border-top: 1px; border-right: 1px; border-bottom: 1px; border-left: 1px;': 'border: 1px;', >+ 'border-top: 1px; border-right: 2px; border-bottom: 3px; border-left: 4px;': 'border-width: 1px 2px 3px 4px;', >+ 'border: 1px; border-top: 2px;': 'border-width: 2px 1px 1px;', >+ 'border: 1px; border-top: 1px !important;': 'border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px !important;', >+ 'border: 1px; border-top-color: red;': 'border-width: 1px; border-top-color: red;', >+ 'border: solid; border-style: dotted': 'border: dotted;', >+ 'border-width: 1px;': 'border-width: 1px;', >+ 'overflow-x: scroll; overflow-y: hidden;': 'overflow: scroll hidden;', >+ 'overflow-x: scroll; overflow-y: scroll;': 'overflow: scroll;', >+ 'outline-width: 2px; outline-style: dotted; outline-color: blue;': 'outline: blue dotted 2px;', >+ 'margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;': 'margin: 1px 2px 3px 4px;', >+ 'list-style-type: circle; list-style-position: inside; list-style-image: initial;': 'list-style: circle inside;', >+ 'list-style-type: lower-alpha;': 'list-style-type: lower-alpha;', >+ 'font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;': 'font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;', >+ 'padding-top: 1px; padding-right: 2px; padding-bottom: 3px; padding-left: 4px;': 'padding: 1px 2px 3px 4px;' >+ } >+ >+ for (let test in tests) { >+ test_shorthand_serialization(test, tests[test]); >+ } >+ </script> >+ </body> >+ </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bff562204870e9499028961e249043a882c952c6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001-expected.txt >@@ -0,0 +1,8 @@ >+ >+PASS sheet_property >+PASS sheet_property_updates >+PASS CSSStyleSheet_properties >+PASS CSSStyleSheet_property_values >+PASS StyleSheet_properties >+PASS StyleSheet_property_values >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001.html >new file mode 100644 >index 0000000000000000000000000000000000000000..12f4bd81ecdc925a429c28a84074d5b18be6f31a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001.html >@@ -0,0 +1,113 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: CSSOM StyleSheet Initial Values</title> >+ <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheets"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="StyleSheet and CSSStyleSheet objects have the properties specified in their interfaces"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement" type="text/css" media="all" title="internal style sheet" disabled="disabled"> >+ @import url('support/a-green.css'); >+ * { margin: 0; padding: 0; } >+ </style> >+ <link id="linkElement" rel="stylesheet" href="support/b-green.css"> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <script type="text/javascript"> >+ var styleElement = document.getElementById("styleElement"); >+ var linkElement = document.getElementById("linkElement"); >+ >+ var styleSheet; >+ var linkSheet; >+ test(function() { >+ assert_idl_attribute(styleElement, "sheet"); >+ assert_readonly(styleElement, "sheet"); >+ styleSheet = styleElement.sheet; >+ assert_true(styleSheet instanceof CSSStyleSheet); >+ assert_idl_attribute(linkElement, "sheet"); >+ linkSheet = linkElement.sheet; >+ assert_true(linkSheet instanceof CSSStyleSheet); >+ }, "sheet_property", >+ { help: "http://www.w3.org/TR/cssom-1/#the-linkstyle-interface", >+ assert: [ "styleElement.sheet exists", "styleElement.sheet is a CSSStyleSheet", >+ "linkElement.sheet exists", "linkElement.sheet is a CSSStyleSheet"] }); >+ >+ test(function () { >+ var style = document.createElement("style"); >+ document.querySelector("head").appendChild(style); >+ var sheet1 = style.sheet; >+ assert_equals(sheet1.cssRules.length, 0); >+ style.appendChild(document.createTextNode("a { color: green; }")); >+ assert_equals(style.sheet.cssRules.length, 1); >+ }, "sheet_property_updates", >+ { help: "https://www.w3.org/TR/cssom-1/#the-linkstyle-interface", >+ assert: "The sheet property on LinkStyle should always return the current associated style sheet." }); >+ >+ test(function() { >+ assert_idl_attribute(styleSheet, "ownerRule"); >+ assert_idl_attribute(styleSheet, "cssRules"); >+ assert_inherits(styleSheet, "insertRule"); >+ assert_inherits(styleSheet, "deleteRule"); >+ >+ assert_readonly(styleSheet, "ownerRule"); >+ assert_readonly(styleSheet, "cssRules"); >+ }, "CSSStyleSheet_properties", >+ { assert: [ "ownerRule, cssRules, insertRule and deleteRule properties exist on CSSStyleSheet", >+ "ownerRule, cssRules are read only"] }); >+ >+ var importSheet; >+ test(function() { >+ assert_equals(styleSheet.ownerRule, null); >+ assert_true(styleSheet.cssRules.length > 0); >+ assert_true(styleSheet.cssRules.item(0) instanceof CSSImportRule); >+ importSheet = styleSheet.cssRules.item(0).styleSheet; >+ }, "CSSStyleSheet_property_values", >+ { help: [ "http://www.w3.org/TR/cssom-1/#css-style-sheets", >+ "http://www.w3.org/TR/cssom-1/#cssimportrule" ], >+ assert: "CSSStyleSheet initial property values are correct" }); >+ >+ test(function() { >+ assert_idl_attribute(styleSheet, "type"); >+ assert_idl_attribute(styleSheet, "disabled"); >+ assert_idl_attribute(styleSheet, "ownerNode"); >+ assert_idl_attribute(styleSheet, "parentStyleSheet"); >+ assert_idl_attribute(styleSheet, "href"); >+ assert_idl_attribute(styleSheet, "title"); >+ assert_idl_attribute(styleSheet, "media"); >+ >+ assert_readonly(styleSheet, "type"); >+ assert_readonly(styleSheet, "ownerNode"); >+ assert_readonly(styleSheet, "parentStyleSheet"); >+ assert_readonly(styleSheet, "href"); >+ assert_readonly(styleSheet, "title"); >+ }, "StyleSheet_properties", >+ { assert: [ "type, disabled, ownerNode, parentStyleSheet, href, title, and media properties exist on StyleSheet", >+ "type, ownerNode, parentStyleSheet, href, and title properties are read only" ] }); >+ >+ test(function() { >+ assert_equals(styleSheet.type, "text/css"); >+ assert_equals(styleSheet.disabled, false); >+ >+ assert_equals(styleSheet.ownerNode, styleElement); >+ assert_equals(linkSheet.ownerNode, linkElement); >+ assert_equals(importSheet.ownerNode, null); >+ >+ assert_equals(styleSheet.href, null); >+ assert_regexp_match(linkSheet.href, /support\/b-green.css$/); >+ assert_regexp_match(importSheet.href, /support\/a-green.css$/); >+ >+ assert_equals(styleSheet.parentStyleSheet, null); >+ assert_equals(linkSheet.parentStyleSheet, null); >+ assert_equals(importSheet.parentStyleSheet, styleSheet); >+ >+ assert_equals(styleSheet.title, "internal style sheet"); >+ assert_equals(styleSheet.media.item(0), "all"); >+ }, "StyleSheet_property_values", >+ { assert: "StyleSheet initial property values are correct" }); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4b53120569b32912dfa7b7b40866ab7a5d60c952 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002-expected.txt >@@ -0,0 +1,4 @@ >+ >+PASS add_rule >+PASS delete_rule >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a09f5862fa25312552270145511ac9dce5a4fb59 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002.html >@@ -0,0 +1,42 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>CSS Test: CSSOM StyleSheet Modify Rule List</title> >+ <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >+ <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstylesheet-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="StyleSheet and CSSStyleSheet objects have the properties specified in their interfaces"> >+ <script src="../../../../../resources/testharness.js" type="text/javascript"></script> >+ <script src="../../../../../resources/testharnessreport.js" type="text/javascript"></script> >+ <style id="styleElement" type="text/css" media="all" title="internal style sheet" disabled="disabled"> >+ * { margin: 0; padding: 0; } >+ </style> >+ </head> >+ <body> >+ <noscript>Test not run - javascript required.</noscript> >+ <div id="log"></div> >+ <script type="text/javascript"> >+ var sheet = document.getElementById("styleElement").sheet; >+ test(function() { >+ assert_equals(sheet.cssRules.length, 1); >+ sheet.insertRule("p { color: green; }", 0); >+ assert_equals(sheet.cssRules.length, 2); >+ assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >+ }, "add_rule", { >+ assert: [ "Initial rule list is of size 1", >+ "Can add a rule at first index" ] >+ }); >+ >+ test(function() { >+ sheet.deleteRule(0); >+ assert_equals(sheet.cssRules.length, 1); >+ sheet.deleteRule(0); >+ assert_equals(sheet.cssRules.length, 0); >+ }, "delete_rule", { >+ assert: "Can delete rules until rule list is empty" >+ }); >+ </script> >+ </body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic-expected.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic-expected.html >new file mode 100644 >index 0000000000000000000000000000000000000000..bc9cadebf15d720e9c89b8072c0ef36eca962343 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic-expected.html >@@ -0,0 +1,7 @@ >+<!doctype html> >+<title>(Ref #1) CSS Test Reference</title> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@mozilla.com"> >+<link rel="author" title="Cheng You Bai" href="mailto:cyb.ai.815@gmail.com"> >+<link rel="help" href="https://dom.spec.whatwg.org/#dom-characterdata-replacedata"> >+<style>.pass { color: green }</style> >+<div class="pass">Should be green</div> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3ee5937c9591189f80d36a315272107fae720805 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic.html >@@ -0,0 +1,12 @@ >+<!doctype html> >+<title>(Test #1) CSS Test: Dynamic changes to the stylesheet contents using replaceData are reflected</title> >+<link rel="match" href="stylesheet-replacedata-dynamic-ref.html"> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@mozilla.com"> >+<link rel="author" title="Cheng You Bai" href="mailto:cyb.ai.815@gmail.com"> >+<link rel="help" href="https://dom.spec.whatwg.org/#dom-characterdata-replacedata"> >+<style>.fail { color: green }</style> >+<div class="pass">Should be green</div> >+<script> >+ document.body.offsetTop; >+ document.querySelector('style').firstChild.replaceData(1, 4, "pass"); >+</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.css >new file mode 100644 >index 0000000000000000000000000000000000000000..d61a8dd67c9e74e7ca620f08dc1bd2ed1998fa8f >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.css >@@ -0,0 +1,3 @@ >+body { >+ padding: 10px; >+} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..1616078928abb11fb59f76b186a045ce7b906b2d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub-expected.txt >@@ -0,0 +1,9 @@ >+Blocked access to external URL http://www1.localhost:8801/stylesheet-same-origin.css >+Blocked access to external URL http://www1.localhost:8801/stylesheet-same-origin.css >+ >+FAIL Origin-clean check in cross-origin CSSOM Stylesheets assert_throws: Cross origin stylesheet.cssRules should throw SecurityError. function "function () { >+ crossorigin.cssRules; >+ }" threw object "TypeError: null is not an object (evaluating 'crossorigin.cssRules')" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18 >+PASS Origin-clean check in same-origin CSSOM Stylesheets >+FAIL Origin-clean check in data:css CSSOM Stylesheets null is not an object (evaluating 'sheet.cssRules.length') >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html >new file mode 100644 >index 0000000000000000000000000000000000000000..4611eebf82e8072a2ad93dcb8a54de41c07b90d6 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html >@@ -0,0 +1,57 @@ >+<!doctype html> >+<html> >+<head> >+ <meta charset="utf-8"> >+ <title>CSSOM - CSSStylesheet should support origins</title> >+ <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstylesheet-interface"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+ >+ <link id="crossorigin" href="http://www1.{{host}}:{{ports[http][1]}}/stylesheet-same-origin.css" rel="stylesheet"> >+ <link id="sameorigin" href="stylesheet-same-origin.css" rel="stylesheet"> >+ <link id="sameorigindata" href="data:text/css,.green-text{color:rgb(0, 255, 0)}" rel="stylesheet"> >+ >+ <script> >+ var crossorigin = document.getElementById("crossorigin").sheet; >+ var sameorigin = document.getElementById("sameorigin").sheet; >+ var sameorigindata = document.getElementById("sameorigindata").sheet; >+ >+ test(function() { >+ assert_throws("SecurityError", >+ function () { >+ crossorigin.cssRules; >+ }, >+ "Cross origin stylesheet.cssRules should throw SecurityError."); >+ assert_throws("SecurityError", >+ function () { >+ crossorigin.insertRule("#test { margin: 10px; }", 1); >+ }, >+ "Cross origin stylesheet.insertRule should throw SecurityError."); >+ >+ assert_throws("SecurityError", >+ function () { >+ crossorigin.deleteRule(0); >+ }, >+ "Cross origin stylesheet.deleteRule should throw SecurityError."); >+ }, "Origin-clean check in cross-origin CSSOM Stylesheets"); >+ >+ function doOriginCleanCheck(sheet, name) { >+ assert_equals(sheet.cssRules.length, 1, name + " stylesheet.cssRules should be accessible."); >+ sheet.insertRule("#test { margin: 10px; }", 1); >+ assert_equals(sheet.cssRules.length, 2, name + " stylesheet.insertRule should be accessible."); >+ sheet.deleteRule(0); >+ assert_equals(sheet.cssRules.length, 1, name + " stylesheet.deleteRule should be accessible."); >+ } >+ >+ test(function() { >+ doOriginCleanCheck(sameorigin, "Same-origin"); >+ }, "Origin-clean check in same-origin CSSOM Stylesheets"); >+ >+ test(function() { >+ doOriginCleanCheck(sameorigindata, "data:css"); >+ }, "Origin-clean check in data:css CSSOM Stylesheets"); >+ >+ </script> >+</head> >+<body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..7636d29ed13b7c5c428af2d9047037a934ad1efc >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title-expected.txt >@@ -0,0 +1,6 @@ >+Should be green >+ >+ >+PASS Preferred style sheet name >+FAIL StyleSheet.title assert_equals: expected 4 but got 3 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8c6f86a8f0e48119fda70fa5f96802864398d45d >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title.html >@@ -0,0 +1,39 @@ >+<!doctype html> >+<meta charset="utf-8"> >+<title>CSS Test: StyleSheet's title attribute</title> >+<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >+<link rel="help" href="https://drafts.csswg.org/cssom/#preferred-css-style-sheet-set-name"> >+<link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-style-title"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<style></style> >+<style title=""></style> >+<style title="Preferred"> >+ p { color: green; } >+</style> >+<style title="Not preferred"> >+ p { color: red; } >+</style> >+<p id="test-element">Should be green</p> >+<script> >+test(function() { >+ assert_equals( >+ getComputedStyle(document.getElementById("test-element")).color, >+ "rgb(0, 128, 0)", >+ "Preferred style should apply" >+ ); >+}, "Preferred style sheet name"); >+ >+test(function() { >+ let sheets = document.styleSheets; >+ let styleElements = Array.from(document.querySelectorAll("style")); >+ assert_equals(sheets.length, styleElements.length); >+ for (let i = 0; i < sheets.length; ++i) { >+ let titleAttr = styleElements[i].getAttribute("title"); >+ if (titleAttr === null || titleAttr === "") >+ assert_equals(sheets[i].title, null, "Empty title returns null"); >+ else >+ assert_equals(sheets[i].title, titleAttr, "Selected title is properly reflected"); >+ } >+}, "StyleSheet.title"); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-green.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-green.png >new file mode 100644 >index 0000000000000000000000000000000000000000..b98ca0ba0a03c580ac339e4a3653539cfa8edc71 >GIT binary patch >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z85$Vo{9HN_$mQ~MaSW-rm7D-%GchneRloNK$dW8^jVKAuPb(=;EJ|f?Ovz75Rq)JB >bOiv9;O-!jQJeg_(RK(!v>gTe~DWM4f4{;-! > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-lime.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-lime.png >new file mode 100644 >index 0000000000000000000000000000000000000000..cb397fb090e199c51e80e4243d1ede03a79aa8d9 >GIT binary patch >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z8U8bv#2r`x<Z^ksIEGZ*N=^W>nHU(Ks^9wqWJ#8|MwA5Sr<If^7Ns&crsOB3DtP85 >brl$s_CZ<#to=mj?Dq`?-^>bP0l+XkK_<AEq > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-maroon.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-maroon.png >new file mode 100644 >index 0000000000000000000000000000000000000000..3f86b0721955eb4e0f014102c68c2a9764ef7593 >GIT binary patch >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7lsBPi@{?l_gf&vS>O>_ >v4B~>Z+sSM@AcNP_#W95AdU8fW!Vi81W){YV4{giyfD#Ozu6{1-oD!M<@rf3U > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-navy.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-navy.png >new file mode 100644 >index 0000000000000000000000000000000000000000..9b9a03955baea7abde9e056e8604e18694e49b66 >GIT binary patch >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7a+~R&>-^LA|6O{7I;J! >w18EO1b~~AE2W0Six;Tb#Tu)9&$oRp}z{JAX(7`d=3n;<h>FVdQ&MBb@0MNe`HUIzs > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-red.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-red.png >new file mode 100644 >index 0000000000000000000000000000000000000000..6bd73ac101874f306d007e9cea8fa3a1f62dce16 >GIT binary patch >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z|1&U1KH@Y7a=AQR978H@B_{ycObm=q)$jcQvLs7fBT9nv(@M${i&7aJQ}UBi6+Ckj >b(^G>|6H_V+Po~-c6)||a`njxgN@xNA!@(kn > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-white.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-white.png >new file mode 100644 >index 0000000000000000000000000000000000000000..dd43faec54ae60a210f1eab6ff4e7c88b8e34c97 >GIT binary patch >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7l!{JxM1({$v_d#0*}aI >wAngIhZYQ(tfDB$w7sn8e>&ZX<|Nmdl!1<f`@5Sbx4?qb9Pgg&ebxsLQ020p~!2kdN > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-gg-rr.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-gg-rr.png >new file mode 100644 >index 0000000000000000000000000000000000000000..84f5b2a4f1d1865d763cac875bfa6a8c5c576c91 >GIT binary patch >literal 224 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzu3&R;K0lq*X$r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj >z3<Y;j-+=H&K5?KTUr!gukc@k8FBtMN81S%c^q)Ar(pb!~&BKo6T4>(2QlSh?@M7jG >eOI|GCZ+2WP<2UBa)$Kro89ZJ6T-G@yGywqpiaLV; > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-green.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-green.png >new file mode 100644 >index 0000000000000000000000000000000000000000..b3c8cf3eb4c89bd8f2d1ffde051856f375e3a3de >GIT binary patch >literal 218 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzu3yE9XPACF}BuiW)N}Tg^b5rw57@Uhz6H8K46v{J8 >zG8EiBeFMT9`NV;W+&x_!Lo)8YJ?F^Fz`((>;PMkU^HzRy4~NuGe(INq1>ePjdKrGS >TIXtNc8p+`4>gTe~DWM4fy9-d) > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-red.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-red.png >new file mode 100644 >index 0000000000000000000000000000000000000000..823f125b8e4a60f780f00443c9c9a10b9fa1f447 >GIT binary patch >literal 217 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzuQ<1cFzubXBk|nMYCC>S|xv6<249-QVi6yBi3gww4 >z84B*6z5(HleBwYwZk{fVAsP4Ho@3->VBlchkp2JMEhm9(EUQo2%VrV@UNUpX$1;`+ >Ty_~-WXd;8BtDnm{r-UW|v1>m& > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/README b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/README >new file mode 100644 >index 0000000000000000000000000000000000000000..2e5f2ad0738c58dfdf7b368d1fff7aca4f797156 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/README >@@ -0,0 +1,28 @@ >+CSS Global Support Directory >+============================ >+ >+This directory contains common support files (such as images and external >+style sheets). These are sync'ed into the support directories of all our >+test suites. If you have test-suite-specific support files, please add >+them to the appropriate test-suite-specific support/ directory. >+ >+If you add to a support/ directory, please run the tools/supportprop.py >+script from the top of the repository to cascade support files into the >+lower-level support directories. >+ >+Description of the Common Support File Collection >+------------------------------------------------- >+ >+The 1x1-* images are all exactly one pixel. >+ >+The swatch-* images all use 15x15 cells. >+ >+The square-* images all use 15x15 cells with one pixel borders. >+ >+The pattern-* images use cells of various sizes: >+ >+ pattern-grg-rgr-grg.png 20x20 >+ pattern-rgr-grg-rgr.png 20x20 >+ pattern-tr.png 15x15 >+ pattern-grg-rrg-rgg.png 15x15 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/a-green.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/a-green.css >new file mode 100644 >index 0000000000000000000000000000000000000000..b0dbb071d5b05d1c574cd5c9a660f1e3d62c573b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/a-green.css >@@ -0,0 +1 @@ >+.a { color: green; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/b-green.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/b-green.css >new file mode 100644 >index 0000000000000000000000000000000000000000..a0473f5ca26652c1229290bbf1f81eabc1e37280 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/b-green.css >@@ -0,0 +1 @@ >+.b { color: green; } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/c-red.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/c-red.css >new file mode 100644 >index 0000000000000000000000000000000000000000..d4ba5c64e95406f541e2f8cc19e192e9f521ed6b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/c-red.css >@@ -0,0 +1 @@ >+.c { color: red; } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/cat.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/cat.png >new file mode 100644 >index 0000000000000000000000000000000000000000..85dd7324815b8f8ef1a1d0496224c1a0661db9d8 >GIT binary patch >literal 1883 >zcmV-h2c-CkP)<h;3K|Lk000e1NJLTq003eD003hM0ssI3n4EHI0000LbVXQnLvm$d >zbZKvHAXI5>WdH}z3>gRm8%$Aad;kCd2XskIMF-Ff83-yN8ye1400009a7bBm000id >z000id0mpBsWB>pL*-1n}RCwC$Tnn<>HVmXZK1a^ho3&SK4-(g{9GN13#R7t8y*I%m >zZ)BMw!6g9VLwR{T9*v;e^Z&9e>xbnR^*7(`)-M11{_j7xFNSfJ@$>S&(_i1@5GH@m >zhpeXC{afFEKhVJCt^WWpLj3iQEg77_JYJnk79anUvL0gx`(AYZ27s0x;q_WRcJD`A >zg+R7jBu}y@4l@kFdQJ7DGoh@H-xD(&>S?#kV5MJwAHN8ovs16uEnknmyyLJw3_Dz} >z-2t_1y-WcyWmd+)eVZDoh>C$4rk3Oju)y$mQ#%^)+P>PB74gM`GN6$$a17nlNge7- >z3RmB|dPjb|$p?mh6-(D?ThB@WuYf>+sj1twj=G%GFkj5O!mZqLtqotF8cC*N$ri;H >z2HQ+$17ses$k7#RTbJz}gD2-`@wiB%W8DFRH7rLV$VR8C-{$0BU^7QA)6xcOPkeLG >zIC+y8#pH<ZE4DkLuB$eJu=YD09p6saU_=3B*q=j^t+sjfsKzKVsF6<N*#6N`(<ECy >zIXKz+z9s_>H3S(N>pr`5y87*;bv|b^HW*-n7#c-VH5l06wfM%K8tMv%QYu1VMJ&`q >zXuT9g-DjG%ok+2IhK&G~#M;r0zu4sf-`3+KmoX<0eCv7>JZuYAQ4+JlXds3Yz$`iq >zO!pQ9wr}Yor1)n9bJP~%@)tD+crwU7nJ%PeORd0)1m4F<)qG~XO2nT^iMivEf)z-D >zBxjR-YQ3Q3>4*f>(%TkH;D#Ki*aVYot>nkyxLr9zV62-PtQAsVZ<)M&ROZ`q=r-yb >zxV0FojhaWJa00$t-zE`xTYXArX#ra%P+dk^apt~h+vO{<A@@#@ZFd70kl?YRKP5&g >zb`j&Qn9|8fN_S*$P|_f3a(aM4y>N9i$&>6i;Se`Xu#!Aka_7=8lY{bL`gE8-D*^)! >zY7!?ohKiqcXDjd>0jZICXBl_KZ$6sC00LyW54V5*dj5-!>hm-t>Ht(52LoWuR*1xE >z2G*{@twTZxdhmIo{825j6wMk`;$*SKGZc>R!t=-#&gkXa<yH8pw79M3dp_ikAFn&8 >zlrN9ORLOJsca5=ic6o}b2pc1mIER3bjmUh7pG>kkRkQfHYSKVRo~#WuBph;XemDuD >z6qUJ989evMeRwkDj)54kU$UA#IGU-IZHnWTVRA#9kA1APN3ZjwA2_hn2Ug_Nvo#=1 >zvdA6|8~BUnoI@62w{|P|2@lwrchE#7bJ6Kq6kBhZllSFE87tja$&a^Vsv9DzjxZA* >zQVOrQc2nyJWb8G&wn4GZFkUv;Z=ATnxIprXHN_9;9UHeyvrlY2*kxbFPXGYML&r3) >zen%FSp5K}|`|V@N#w>xf>JHCqGnQ($o1mTz0Za^NSrBZ!onF6dnw<3&y(VH1bndXf >z391*{FlywkRueb2`q*Y`c5i|#c-`R1y$R0#>_jShsA?F))d087sWd*L&RJQPVgO6z >zuKDv)`2I=hc!ut73ss<T4Sc(1p2frAo70eTGSQX~W-TmJr(%YaR!iQ`4Ur=@=?jjU >zfTygMe0q~vry0lFm|`8tJ+roq*(WDI6R9%w#!|-Y#%eR(ke!N@^4>>?(GbUMv>AFu >zU<y*Z1YJ38rx1Sr_(M)_9Tc=-h}Yr*n2uA=E}I+loFj7auyHJrfHI|Po@I%y`4tj7 >zZ|2XgMqBeQS(s^b?xD;O6`XX77pU2u-JQEex9#}uQe_K^?kYOxRi<VJVwG%9W16&C >zB}3F3+z%GVHY()dth0|pcjvht>SWGaq^ijA)f<0KH8%k6{9y7l%|MvpgU?6jsh(M$ >z5N*sz^783ghS!jcq!BDms81L*G}VLWyHB!u>=8qC&htH>PmP{A<v#~L#&MqpRv4yG >zw4r_l@+VBe#^s0kwg9GF@{ms(MG=X;Z*q>HB})c5>>6kFjvP9zMaPHfq~YhEr7DrH >zD;~lup<3-juf%_Prr9Z-V4nORxcT&~FF{{2Nk&bqG}pd>$n(1*n4sj(w0;RH6sT{j >zbhUJqyjT6iN>h5jrHP`lGXxi;LI(=%bR`2^fsT95-&yGjH)}sb@TGCA(mUti&QX<4 >z{U$^U=I18hwKL%pN^cWLwM6MtTI+-Up~5fcjt@Bxe*M77{d?${Py^67eTt4eFFZ)l >zh8I~nmB}UQ_u%EtP`CsPA88ZuaO!(Y>9V^z>txmUh$SjH&7r>5XT86X<2m!DSg2-= >z-<rS@<i5Y4N=-ro_(K1~{gF<l7M3R7QZPDFa>~W*e9lSUNASn#NOM-@)>-Im^e@d- >V<q-+yJ<<RG002ovPDHLkV1mLWjBEe^ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-charset.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-charset.css >new file mode 100644 >index 0000000000000000000000000000000000000000..9f44090c94a7945c3adbf850da3290c85a60a0ab >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-charset.css >@@ -0,0 +1 @@ >+@charset "UTF-8"; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-green.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-green.css >new file mode 100644 >index 0000000000000000000000000000000000000000..537104e663364492c6ef388e4afce190e9c5bc58 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-green.css >@@ -0,0 +1 @@ >+.import { color: green; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-red.css b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-red.css >new file mode 100644 >index 0000000000000000000000000000000000000000..9945ef47114c2841a746c99a2fb1e93e050aac8b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-red.css >@@ -0,0 +1 @@ >+.import { color: red; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rgr-grg.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rgr-grg.png >new file mode 100644 >index 0000000000000000000000000000000000000000..9b88fbd81149891234185f54f8b4a0431759f181 >GIT binary patch >literal 222 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg44gppHg^c>jqd=iJPZ!6KjC*fy >z8gelx@Gu{^HvM;TY)zwU$c{IS(wnBFeYtT?qh#}i+>eP179zlX|30sumufTRE+B#Q >jJePWx&kbz|5I0kznWOaej?gzin;1M@{an^LB{Ts59-mW( > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rrg-rgg.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rrg-rgg.png >new file mode 100644 >index 0000000000000000000000000000000000000000..fcf4f3fd7d95431b8cd1bc5f5129fcb724c5e40f >GIT binary patch >literal 231 >zcmeAS@N?(olHy`uVBq!ia0vp^x**KK#K6FKsNOXi$XVy<;uunK>uuO>p#}vW?s@X} >z?5{Vn@(E1fdg>#_p5-zBiX+1VA%+4b26mx2|7={&ovNQ>6SXtcysBl-)c><WmS!Y( >zv7BNEzPH=%x{1!KjWd@lmbz(awP;VviDQ{7SW3K#guH|K-#!i8$dVG=UlQ?2Ho)uu >z>9DyExiv#HMbsD$XX>p~Q&Z4f6DV?h!MD37E_}{<nz@wk)ekYNY^%>svR6Ky{&{h` >fDhG(UQO-Q~pMsNotNvM_%Naaf{an^LB{Ts5h3Hy_ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-rgr-grg-rgr.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-rgr-grg-rgr.png >new file mode 100644 >index 0000000000000000000000000000000000000000..d454e3a630cd98146c241537dbb3d4cef313f465 >GIT binary patch >literal 223 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg44gppHg^c>jqd=i}PZ!6KjC*fy >z8gelx@Gu{^HvM;TY>lI9$c{Iy(wkbIbyRJ-o`3vUZZ|(OF9Q6nGtzszXKw9ExeG`j >k-E5KlqACYx1X%C$w4CD$N64zrK&u!$UHx3vIVCg!00%}%YybcN > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-tr.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-tr.png >new file mode 100644 >index 0000000000000000000000000000000000000000..8b4b25364e0ffbe09e563e13b567fa57330e48d5 >GIT binary patch >literal 137 >zcmeAS@N?(olHy`uVBq!ia0vp^azM<_!N$PA*s|9jBoW~0;uunKD><d1=|2z8e@O`m >zi5U_X7?eM1T?jqI(8f2(=fLXOHJ)xxeNNw5J?)fkN19wc<FT&3eZzeBMQLtcCc<9q >mCdFSHSg)@*x>)QnGsEKzd}=q=PizO8&EV<k=d#Wzp$Pzi&n><H > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50%.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50%.png >new file mode 100644 >index 0000000000000000000000000000000000000000..cf2eea6b438a11503a89414cbb2f9f1fde55df0c >GIT binary patch >literal 691 >zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq0077U001%w0ssI3;WRTK0007dNkl<Zc-rlq >zy{h6s7=~wbiC|&k#KzV}uoP2RSPBY)sHIn;ot@^CYHeD*0k6SU@&o=<wt~SzQP6LT >z+1+9bIY?G>_PkGJCLw%0c_-t<Byu8R0TE%rfqnf#2=STCc!0-|BNJiWm+$+t+3XF+ >zG01&|R6WZ2a%FMO8DoZFSe6xdSs{%)dLqg~Sttu-y|XONIp^Fk491wQ>y1Vu;JWBp >zVzJoqc$A+V$Du&M;PW30)i^&u7Gwd)f-J~_EXabafA}Ss^LRYITrL@7hr_}5ea4uo >zs-EXfr_-?8qSw;z_hYfxZnq<%d_G?&6l8n7UMHeNA~7D1DXd_+^X%M^b1Xhu#0egw >zA!I?;mp#FUr6!IGxafwE1t1HuAPce}3$g%YK^9~|*6&HOysvn(*(i##-EJ9UsZ`3c >zEZerjZtKO@{G-umsZ=7OWHL!ax~|LH&Qw+HcDr($*H`sP-cZ*0d?q4I(}+k2AsaiL >zj;3j@>xNm@j~53yo6Tl2nfZLaSS%Dp@jOqqx7+P>I$bK2_WONkdm(-b!)ORuq3(u{ >zuZ3eR);?H^UI=h{2M87b0ALRNMpGQFFcbm=3m{kkAXosw0tglW2o^xF0D=Vof&~yP >zfM5aey@Mqmboq;Vy>6Q3^?Ef;v)OFQ#$+;S+qUC4@()R>)vA0j20RIU1AN~f3<kMe >zPA*0wk^B8lM7P^58jZ@v;czH~5JH%ySu7Suqmd9o*Y(L{67t7~@KDnmXti3a)#`LQ >z^?JQ>xhxxNwc21XxLhtDA0P5nd4E{1*Of{|zC6!y9M^SKRYkDydOv{gSOCES0Ko#G >Z;3u}YJM}AuyWao+002ovPDHLkV1h`wI+p+d > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50px.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50px.png >new file mode 100644 >index 0000000000000000000000000000000000000000..9f46583665ca6471075227f9e2244f1ba1ffece0 >GIT binary patch >literal 671 >zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq0074T001%w0ssI35I<<G0007JNkl<Zc-rlq >zv8v)g6oyYUj*(OvJMF|<*xQPQHX;gQ=Q9YtMk4qIcD_Uk3p+s&EW|>6gP<0o<3OBS >z1j1$6y@J=>jmiI2W)i~T^Pfp3CPtA`(u;`E>xkCAIOm38{A6Fs3%^GNnFzqX(&;o2 >zDT)%hOaxRt$_h?dilXdxyZwIuAIl18<k1sR7Ro|dDC@73<(+Ub#)4IrH|Pr?i0E>; >z;NbHP*$SvFj1Q0nSpc#i3$h>!vLNd#s;X8h6(Y)HGDMWkW{IfR>*e!#BI@`1L^K!- >zq999sxJ98*&~=@N=JPpYY_r)A(Q>)W<#PTuuIolY7N$GT%2E_8{&5kbJC1`e1yhkZ >z{QWZiAyepm0H$CHreF%DU<$w#Ou-aPy%*}kd9U|DN?9(KiD<D{L{ydh79vWeQmfTU >zN_jXOj>n_dsO!3I+fqu~wx`pn*C<1c`p_d0X`044S5?*jCFXoSGsc7vhGD3xigAie >z)6_I=x7!g>wOXy$>t1^zkyx+So-)UAqG0No%Wt8-X!kNxI7<M}X6pN1hP7CW{s%Cs >z1EdN70HQYojOJV%M?e6ODu7f0qzV9}3LsSgsR9700!S4=ssK_208$0QoT}fxKB3)i >zTb3n+uq><7>A-U2c*&C|r_;$a%~Gl4EyiN8`~5DZbX_+dkNXem%w{vr`D8LF7K>iv >z?RKlxYUA;^)oKYL{4FJTXMQ?Xb-Uf|cFP#!ocsSC*Jw0`!=VsjG#WLVO@HH$j}Ibp >z9OvtMgBWAUWb%5w;_jEw@bB(q!d+8H6#$q60;CFrn@_JUXnGtsT_OMg002ovPDHLk >FV1h+lHID!Q > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-100px.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-100px.png >new file mode 100644 >index 0000000000000000000000000000000000000000..a837eca2225082917dc952efd5c689e1b51d7bbd >GIT binary patch >literal 760 >zcmeAS@N?(olHy`uVBq!ia0vp^MnHU=gNcEGaWU)iTMP_L`#oJ8Ln>~)opsRfQGkd; >ze)kq>afh25lNKiW9??&5?NHJA%O>=XS@{0}+4zG^EwY_?F_M#iv9}3z1aeiSUzA*K >zu(aV(kHK?2k3BK|`KL4QXWugp33W=8Xj?T)Nc8vQ(%9`GT4(2eudkH7c2+NL?u$dR >z-nKS2Z~j`Y^K+f^ZT|OzL59~vJ9g=>@?L(q?{UxZ$KUny^7DVzuDt!h?mmN?plfyf >zmG|FWk8IKrjGUqMkB_(Yd8N`MAGQ3vyhA@<bgG)GyNbMZyBKBu{M65@X^X#_xz|N( >zNI2NE)qRbRnzGW(oG=%g^U{3n2NQ}bDsH?iaanTtWy$WlscV`SSj{;6?RV|zP4C{l >zb6FCjH+xxSZLO}-<dZ7%&v$p^-rjt(=cAyQ4#>1ywbzy(%Ux#+<}|T#gG9?_n$GnL >zUK#SiePsyOw7;>}x9Vgku7B`~<KEgPU54g^2R_?``Yyk`>Xk*`s(JJ0KQFQj%{7r) >zbt}iL)bq?nx5a@6yp{&7nsqXz>CffMm(RcYnakO|rl9#~(#I!HTteT!e?R%;lGnRd >zMQMom`TO7h&1I+D{M{YwHHiH{KeA^3UX!~oKff$N`Q3$OHK!M>^?md}Ue5YP`;WJ` >zoGPcdSKa}V$916$caR7I{lB!WCtmR1qOjFlqjc|ok6s(LH?H5a&h2Na;zQo04{aAN >z%iOnj@5)!NUuP>#?C|XJSbx2`vNCh~ZFhHf$0DPdQ%*l!y?XWL&Bph?D}P^q>`h+m >zFXb?;somY&_rL4w>#x3=<rC!6*Wd5@<m1PSg>$|yNsZi=Yj1B~pCFjW&0YS{yFmW8 >z{%3D_dwKh-9vNpof7j<_ShMfbl=P&-N7}Xp$UV*Eei}Fr#*lj&2u6iKLAmWf*~0AY >cw|+4$pP;3B^U*VLV7g}TboFyt=akR{0G}~+v;Y7A > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-50px.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-50px.png >new file mode 100644 >index 0000000000000000000000000000000000000000..84141028020b7e8cdf2412acbca3c799ba50a534 >GIT binary patch >literal 757 >zcmeAS@N?(olHy`uVBq!ia0vp^MnHU=gNcEGaWU)iTMP_LdpunnLn>~)o#p7Q6)4em >z{$d*2BG*@!Lc3jVdA+?Q+2PW(<&`<hUq0SH>~H^wHaWhIaoO!ruE(m{QKE2v_l)kA >z-e(KKcYm$vKGDDac}?&6nKO$m!Y2I`xEAGUC@i-6WK{O=zyHpiJNNeO+xv#s?=j!Z >zxcM?)V^6`#D~}&Pp5?A$`q-&{Ubpelh>!(auZC((&D%cv^wS>0zQ+>Dv(7%_|5v|q >zao)lohkkPybSa7E=I2W%vo$wv-F7j<M5=efqK_3hJ(iZ1hR5E#eOo#2c)7cvt4QFM >zmy258?Tg>%?^YeP{?keR*WWj6TXu)LZemGAMMlrg{rmeFE-(LJ<A3S&Y482_`L|4a >zV$ruGZ1vX<9}HH``Sp4I^9xs8BD45(?Git7i|IscNI2NU%6%<AQFrUQr?(D+*uNsK >z-AeFYem8ITy4x>H79F(9J8|Uk$H$M8Jv&{Tg0!YiDk&_S=(k)oHZIO<*REZcdS={{ >zuBxt{yk+-pZOxfJY$vZ@zkcEDg32{MYQY*JDz>(^mVKA=wyUOYzPWhuV$b-4=Px{% >z$%e2T?g|j&pZPVd@7osh<~-+>HNJ0@q3xBETkz(j;nVk5#ZE1@IrSJs=KbBV&8b#r >zs@K)5tKa`-ZH>~KK0UlH?2I+Pa;AYqh}P8R=H>^<I%3lO$0yypfB*5vA5Q|#-o1Ob >zz+%ny*S~-Nb}TZHdiwe2?Afz7Z#KUF-I?$98QU)7&slTl&$qX?-@VRShVSyrk_kFu >z-9WGGdw)G^>*dRrJqy()8y@>owKqh|)N|Lm*OhSvei_W#^M7W~=v`a$@8~4GJx?va >z-#4{oh}c&&{rS;0ap_x5l~b1MPI0e<Gk|OmIt~)N1C)g`AmVT`zVHuY?mGL;&f7B= >Q0uwcZr>mdKI;Vst0OKlsf&c&j > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-purple.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-purple.png >new file mode 100644 >index 0000000000000000000000000000000000000000..0f522d78728417b0f74b694e2e47cd41c00359d1 >GIT binary patch >literal 92 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pu3?vyBU)>3$*aCb)TpJh~{xkePDssRFB<<<q >n7*cU7`N#kLjg3MaSNIuL+z|fjF-g!1D9PaI>gTe~DWM4f*isp& > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-teal.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-teal.png >new file mode 100644 >index 0000000000000000000000000000000000000000..e567f51b91bbe40754cb0e0cae066201219cbb4a >GIT binary patch >literal 92 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pu3?vyBU)>3$*aCb)Tp1b~82<lv|F?D~NZQlI >nF{I*F@{j-f8ykf<uJALgxFP)4W0Ig3P?EvZ)z4*}Q$iB}@>Uv7 > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-white.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-white.png >new file mode 100644 >index 0000000000000000000000000000000000000000..5853cbb238cb2d4aba3dd49af3f2ba64d6c7a2de >GIT binary patch >literal 78 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{NRBpBq_B-DVEsHcl#NX4yWiv~UkzCZ4)$}udm >Z3=C_{1@!OB{@4Xl=;`X`vd$@?2>|f05A6T| > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/README b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/README >new file mode 100644 >index 0000000000000000000000000000000000000000..ea8cb9ef357d0174bf7c598f9b1b1ab04a1f35de >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/README >@@ -0,0 +1,4 @@ >+The swatch-green.png file in this directory is really a RED swatch, >+and the swatch-red.png file is really a green swatch. >+ >+This directory is used to test relative URIs. >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-green.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-green.png >new file mode 100644 >index 0000000000000000000000000000000000000000..1caf25c992aa8e23483cddb3334b5f51ec967f4a >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>wg9Y$w!>#KrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>=8a4uJpw > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-red.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-red.png >new file mode 100644 >index 0000000000000000000000000000000000000000..0aa79b0c86bd72c2220ecce39b9553e2cd3605b9 >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD?<aroS#c40=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIBjB50U@? > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..3339ce4408c19a6a8b0fcde1a24339a2b3701b99 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/w3c-import.log >@@ -0,0 +1,19 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/README >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-green.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/support/swatch-red.png >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-blue.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-blue.png >new file mode 100644 >index 0000000000000000000000000000000000000000..bf2759634d45dbe3df13868341eddb7e4bf24172 >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD+9y-u8K?HKrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>>P$4{-nh > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-green.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-green.png >new file mode 100644 >index 0000000000000000000000000000000000000000..0aa79b0c86bd72c2220ecce39b9553e2cd3605b9 >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD?<aroS#c40=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIBjB50U@? > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-lime.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-lime.png >new file mode 100644 >index 0000000000000000000000000000000000000000..55fd7fdaedfc1ed505b111f20fabbca568c68fa5 >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XE5m;VlehybfLtC=7srr_ >dTgeFuj6j|)1LJQkVJ#qw!PC{xWt~$(6968w4?q9_ > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-orange.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-orange.png >new file mode 100644 >index 0000000000000000000000000000000000000000..d3cd498b52bd88ea6c991f050f1ecb1cfdd136bb >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>;I(;rzSbh26A~kT^vIy >dZY3uuFamkH42-|EgtdSy22WQ%mvv4FO#nq@5F-Ep > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-red.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-red.png >new file mode 100644 >index 0000000000000000000000000000000000000000..1caf25c992aa8e23483cddb3334b5f51ec967f4a >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>wg9Y$w!>#KrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>=8a4uJpw > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-teal.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-teal.png >new file mode 100644 >index 0000000000000000000000000000000000000000..0293ce89dea5c9413e4c829cc83a4e39d8f23300 >GIT binary patch >literal 156 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K11|+SoP4xm&jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg4R#65`cCM1`H9#R5PZ!4!jq}MV >s85uv$JE$cjEnw)$lDlfNN|Kv_A+(E0c5RvdE}%LFPgg&ebxsLQ0IVw~FaQ7m > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-white.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-white.png >new file mode 100644 >index 0000000000000000000000000000000000000000..1a7d4323d77287d8eb03a89c635b09d099d94869 >GIT binary patch >literal 85 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<H-Bp8I(u6Pcln3BBRT^Jbeb_p*5^7uSm978H@ >gCI9%}-<ZL|Fh5TA$_Ah94}dZZp00i_>zopr0Qo5vZ~y=R > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-yellow.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-yellow.png >new file mode 100644 >index 0000000000000000000000000000000000000000..1591aa0e2e274854ed836cf582235ea0202f9c8e >GIT binary patch >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>;L}@UB|w-0=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIDbL5Y7Mq > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-bl.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-bl.png >new file mode 100644 >index 0000000000000000000000000000000000000000..904e24e996a3e5da93bef89e10c49e24c07d0ed2 >GIT binary patch >literal 1368 >zcmV-e1*iInP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUQ%1J~)RCwC$mrHKsHV}qI#0OA$)CUNV+0PNC >z5z>1FDgrZWOHO<59>534BKsDgp7p3B>I7zAF2$Eby&QX;;i_BGr>dV-tSTkfVYNIl >zi$7l1mTrsB_C8C-i#4X^3LaLG>jn4e0?941+dy=QV9i9xkG(@4H;@(~ogt^a`43yj >z^`**Zh^{Td#Pj%+Qr%fKN-5`g;nYOF+LzqmXhmO+m0gFk>gfe#F-NRAhUdXXT_P3& >z5hZ>zhPowUE`a<#=%qb^0(KmTs?O^A;`TX0ocz1q{qO362uJ`J02e5qdmo1g`RwHP >z!A7z7fk;yZJFK4j+J<J_!!kFwGv}DTl*m6N!y-fSp;zS$vG4R+^f3f3FkDp6`iZB@ >z9Rq0{yOh5|GFgnv$G$b5jmSNW@=3{zpgZ``cV=57#LB;M$gx-;>{j+R-gEgot3{VQ >zT_EJMJvHm{U-0*2vCJ(xH5>9<9E?yX{cn>?Cg7{`b(@FBIAj4b8LLlxUA}&DNX9v( >z3NQA_a4!BS*5!`~%BqqjA5Y&4uFEHnEyD3&j#zU)o^f5S%cniIzr|OZ3i>ow5`DiR >zKV-E(ZYQ3EdZkb6@<UeNeUB?iBFq`D*X2*MI!I#{X}9FZS$$Qmwt_`|Y{-wZnqKV6 >z1blp+IyR9XXEjwg7bU<2vXH;?C)8Cq%49XyvL(Ou3A1w<`?`EvZGvCF2-_3drF_v3 >zWsvc|O+gEO*$ta$@sA0cmcFE8)2I`NWRx;N{9|`#gBRBOOq5lHKJ|AG{lc-r?c}4) >zL-$z5Md6GLEg?qSW3G#N#pKN%xTocLj)Y#BeKpr}_iC1cFHVHGREV^M$HW)&`;U1U >zqa(S7SZ8*J-qhDnFUE@G8)EF3n+2Q$s`7)uute1_k<QgF7t5n>rGpW1SV4To*jSQh >zlcG$a4=ps-GU>1C2_a&@$I%?>7`aa!VnfzdIeZ#?+sUD|PY~B%U0^7GO|Nu@sDsJ# >z@KlWWEXlsO1AjC<{IhGw<M`A>1$M}i5N36xL4oHW;3LYQL{&USeE7rWXggil@q+qy >zcqZ;IV<F)o1Yw4G7>JjWW`PLt<%)`T&`L8>V}>Oa<kn^+iI7n5LHubaqvh(*WJr7^ >z)T>O$2em@zx|mEC771}cDVqgE!@z!yT>QYv82lFP(%@F<5;wl4TqknAA$72YTMI-# >zh4f`KPMMiy>XyGdc~Of)_A<zfoj!JJF(=#0d7SY)+PJ~38KUdBOaRb$*jPKdJK=EV >zrkm0Z8xVG(YE0}Yt@-e>+14L1KJ#R!khI&B)WtXi&X5b{lL3*@ZkLC@MvW|+A?7gN >zW^9D0T;2*9*?`>~p)-$sKP@gC`DhvB0@0TW$+>vr68OLZ|AFHIA?8UIVp5VL8#iJF >zp>x%gNY!OhEyLo1uORl+--}g*Wst2R?yDkOfv7^I8;JRK;rXg-$rj?i69C?WTvb<5 >z-Ama!5K|d3=PQC<K{RE8uwP1VM##=LEUkC!&4^ZAZE86{8mYSe$D&=JS`K8398A-< >zAkI6YxS&bnwNTEyqw<esfq5o26J~CRQnjl~iN@O75YIKX+q?rYE}CZZF2t>$$WP>d >ai~I`(b4pM507-ZN0000<MNUMnLSTZUYM}!F > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-br.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-br.png >new file mode 100644 >index 0000000000000000000000000000000000000000..f413ff5c1a0f2ad9f9a345d3e07be57a59a82207 >GIT binary patch >literal 1045 >zcmV+w1nT>VP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUPhe<?1RCwC$ms@V5FcgLlnk;}*nH@}b&;=9; >z`W^{0$~+gU<h>dx3m9n@P^7faO%<|&!sf>KZm^B!d3qut2z>beeU2{xp@)&j(02`` >zTY^Y(yls!8j-g6{#iqXUOZZmq^{tQRnwIpYptOGKE#wg=geU|udB&pePc3cOueFKs >zvzd?t6~fN!7xtH~ecHeFR|~mNE=(hU<zcj=XW{%Yp6UJ6N@ftUzmC!P5cbt`?6jy? >zkn>j9-;D~v`nZNntt8~9LC7xNOec_RZz1(-9N|5dP=m0v9-_#(n4W^-V2~txiYhzj >z!i$YK*$mpxEQDn<+Gk7q?5d2K>8gc&fN~c@-gEJg62@yGi)KdJFKsVL7OffK1s(gk >zuDvn5Y{BU<F%-%e((qKG8u5Ul%idy$ct({KxR(KBlCq)lwQ%n=>I*USjd;i%YrdEb >z{Sn*_^roe9hCXX0U8@*Tm5}W<;uM1)L8qv|EjeFw?$DQBbYc7Y_+{2Z;0_;OA3x6W >z0PY|Sr^RF&+^N9lo^nJde+0T>e|Q%!CAxA~?GMkwJ^q*@L1D^DW{@@e8aZfW&HlL( >zh^h58`-7ZbHV<zaS+W1w2>0aSI!6vcWNu~EzD%TLWzD`y<i?s$R_yCU8Y@az$o?{s >ztJ8(Yy+rUffV?jfsir=p{xwOCNIQ`VxeF})mt`W=%)g=j#qveyLfcAweUa7TT2Y9% >zj|Z80xYL7JBN#v$SuMm7!T-APcUV_RUG7#w6p(kTFo<b#?tbL$mc9)MbD|J81-xCa >zu1iy(+!eIf8G_WOYv>wDV7Xr)zJ+r5pkj?+g<rb&*<VHdwnQ#%k*B`?n)b<=Z)r8M >z*w%Y?pY@=}iIK&e%yly-p3Gaau$<qAqFp+%WF>S_u|SWDG`g}53&gW~H?kPATZn)^ >z{pHpDF0f_Yc)Al>7VPVTai^XiPQR;MAxJ&d2ec|FrET5HXc}tCS~{7gaV(KcTp<oc >zQD|B7>QZ^Z1TjZ~gu`3RQzOf}P2=}cU|fp)kR|{zS!z=9ML<>z3CM~dAz5JrL$V?W >z4Q^@!)=5xS07+PK!ylVGm5`=3ktPvYvS1MHR5ItZK3>BJtE{TnlF}3mey44O;Kkq6 >ztd@0Ivcj%UvClb}M#-r)(X{Qa==a|U(_!d)YlyiY`vK(N;tTmg{#)cPVxOudoeJ1E >P00000NkvXXu0mjfoHYWE > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-inner-half-size.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-inner-half-size.png >new file mode 100644 >index 0000000000000000000000000000000000000000..e473bf80efc66766cb32ec2cc60244ed37dc1157 >GIT binary patch >literal 180 >zcmV;l089UgP)<h;3K|Lk000e1NJLTq0015U001%w1^@s7JXu?L0001cNkl<Zc-rli >z!4AM62t%pa|Nk<(E?zL=Fq+2^X)3e<nYr61nsxC@Ld$8rPiTZTB&ja&s6as%ZJL|M >z=rOcU${2vp2YUvrojv1iz<}=oKePMm#BU3e)Gz&dnG;ue53v^M#Hf!LH5!*`jH~Z= >iHN+4@%ynW{5626)ITymFxuX~W0000<MNUMnLSTZVu1667 > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-outer.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-outer.png >new file mode 100644 >index 0000000000000000000000000000000000000000..82eeace7fc0c4202f79610978ab423e62abf8939 >GIT binary patch >literal 2412 >zcmZ{mdpOg78^=c{EOMMh4qF~6Bd3rFi9{I*a|(^Nvdq~?QjT*?4xw_Itd@FmT1%@; >zkHai-Y6->Aa{4*!H%&eKiag(`-yhHQT+j9WT%Y^CzTeON{@nNL{(P?Mo9&Krl9f@D >z0f9iW&L<o^0NV)yNkF9}fteqx$p(R>O`RQ%dM1nrDqQhOXQ7#ug?V#Sa2fmTSTTg# >zq5n>b3YP6~G}vwrp{7((H(F%s9=vs(d(vdsw5S`*{!`K=^0e|Hs;%}@ZAe9;YhM#o >z_ToaBZbi>ZoPth;c~{8~-g5bm@{$}EyaCQ}|KNtGC?`*cg`T-jp?`3qQTBgZTv?v{ >zsdiqg_=L}TaeDHp)WEMH?m}9l;@m~8p=7pF>!36@MZO>-W1E4=+P#fwf=QndMcXv7 >z8Z8-fF2Q7mdllSkqq$$v5O4Max@#iK>)>}|J2%opy`et}FlLkY$|k=MPb|h-F&GS# >z`yPH&Q53dkQkZ<87kdVuoRE+pLOXW`h4H>u8uuqXC&Rob*li9oo;cl8K)zjxUvIBg >z$)w}LH2k-=iDKc?$`Kh8{tr6}PB1uTuEZnV2}8sH8=6vc={^tU1@E=j4k~YXOGQ|X >zkJ7bc);}A=x!>Q|ZjgqKn<q^%>txci{z1vOpT5iHp(Eo0q?hU&McH@xcJuaJ!&r=t >z?vM4Ew=lmncbCv<w<by^%~!2EMkjjnd54&X#Od#j14r-;{%H*anvq+xT4z&^R~p5` >z!xS#*RhyBq#-3+TSq9ZKkNp)WoXPH4H-m1)g6J1}?lL8tMqKR^6?)~97d2-4DhB+5 >zUdGN1RJ+xB<5yKLk0NkP^&6b`?>%iQg%g%g!y>UhwjyyUTO+MrE;m#Qlfbq|*dc(4 >zZC|6qC(sSHP6V-iNf|!edmH+^^*p7Z*`Fr|qZ;SsTT5vuq{VfH<xT}KU7pO%=gQ-v >zpl}EV2Ej;R3K*TfdooFmy;Lk8A$M$3@V7ALWqa%n93N4h!H9%#CFmf!JRkt3OVQHb >z4OBETnat*91Ne0G$7cc;8XW%MV(Eh}E-|2Hw!aen*h^t9zNtCIQK#4?o8<B4NzKA= >zJ-KtNi74c~C_F{C-09RZX5o7;K}%g#V~>E_u(9E~{{7oy($sRI!r_#kERyw=)upx! >zFkJKpcdtUCXezrquiN45{@FUmzL;55Wac?m%0{3=Y46O}udzZQvI2GYkbbEmgW{O# >zB*tP_1EQvt8AEX}i1ucwo7Do-=J@@}d(C-#{nOcUixx3CVB}<e`Lw}_xWS0LbrOGg >z-0$$Y+G<jqNui?4Zdoxsu$TaOYd=pOXKWEl=;Q$~#Yp}}11wlrY@mF@rT&tjQx2Kc >z;EdG(+Qw=(0gQccTmb_LX#GO@-=ToE{*}o1S&Q<qR$oGG$H$7QsF?VyQgL%mGamZB >zN8AN0>yfx&o9U9a{k9oC*L+CRvNc6NGmAaSr-%G%isWSVX*Ri;gJFYDY61-RZMJ9s >z-`z?*?sVx<BY`>k?ebatm>?cmkvn8n>~gVoVD9PAWg?M?$DhQ9`wq>_JP04nEs0as >zGCYyp$>C%Uz4Sbg-8nx$KQdBELKqs3JZpaXR0kdt6C;QpRUl$8ZN2BT1ay8+QeDwI >zu62>#lKkWL24UmrHRFc%C7-=lR_WXembP{E_3D{)24gRLd3m`56V=JI3W>Gc@|ghD >zM4FnK`Yo)lucxJLsZJ~`ENt|1#h-mVSROoe^Uf(EVVw0btkFTIuq)O|12?%MoRDpA >z2yb%N3pEM(Fd#*y6-Dy|)=~4^T7Ra;qxZn6bJQv8eU-G*cUmx99|SwF1S^VO>?Mcy >ziKu&}Y5&7fzUR%+PBa2D*ec=Nds+$#Hi85rKsnpQ4u~Tuc0eH#V&@ut(`oSm91zDY >za+r0m+14Xz`N-u=du{O&XwC%ls)q~AieIs$nYA?j`i;>+?lE4qb*u__4g0>Wic&zo >zR+V36^t{R_-%yv8wr}-_^1lgZWPfdu3O$yvqYW912-Zu#GoWhgovH3+iIzI{A=E)V >zcQydV*I><E=u_da(q7DH+)<GXMo3AvA=y+6U6e})iPP3*DUDxWlG~X9WJt}Yx1=aW >z9f9!2A{3*A+uM>n-slX6bO6zsU?5t4944(oUP5)GKA$4KLQ4haDC`}{Ps+Ey(|x}` >zyBd9~%hyJlk{^d?Lo)0)dE5l)3+)ni{3Zg_i0Xi|wj6^6BU*ew>BPGjg>hpsG84#F >zFtJR+%|k#s!XCqF_ng1k)XQe2ZTWsnZZ|ncg`BfZy2~e>2r%0X?)0(asHJc|7s;{V >zAyLed^iYKNI1KWOw{~cQNG_eYN!$n`KQ1lw1ky25mK1-sOUN<}du0+Jm-|WOJ}UZk >z;MD^*RM{7)%54F<f89d$AT43&eEZMXjD>{-bX|b)&Pma9Hxh~L<9I*zLO^8O^&sR* >z+Z4@)s8v757MByxkbSog24S(-^4S*wgp`yZd~#%@yPop)OUea1c4?kMp-^sa!(oST >zlOoZRWmaIl?bWsCD++LG;;LvBull2<z%AUo%!0tXV5Zh=aOTXJiC4)n)<ylZJ1#8> >zTKN2P=4FEB_A-kIhbh4*)5)gT&@Gq#)33|s%4+1d`N2!(NL$;9utxEAWYvRMlM?)J >zUGmy09Ze5xzD#Sp`sH(nNMyos$)$75^*zJVnHX>A58rdx9N!z~iBj0<W}FS}{WTSS >zYe(Kh?$^;NgZyZ(TL-Pc;QQJ0!or2b!LYc9i2f%v0)ZgFaP|`7cK3seBhSK1u{4h_ >z@XA$Y?)2*bv%CGWDk&;eV+0`iroein?E{ZT1m@$$KVz-tVqdPbjg5@~%n0G(y?uRF >z>IU6@K0Y6KJQh(%2_L<F(zQbdtgfyO+|gmbe_i?OiRXdC>Z+=$Xf!%}G|=DQ-_LJ; >z{R@v*PI@{ju&;VMdI8E|v)OrCwr%pJojwJ7oSpnX!a|OIC{+5t7cWF27_n5j0g~u3 >VAD}`@1i=3k$k`F)P-h>U`X3Goc2EES > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tl.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tl.png >new file mode 100644 >index 0000000000000000000000000000000000000000..f6ac0ef7e8f6e192c9c26239884bf92b13cf67b8 >GIT binary patch >literal 1025 >zcmV+c1pfPpP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUPb4f%&RCwC$mQ8M}Fc5&T!~r@I9HIMngrJ)4 >zQ(^kjbwEn?FN@yb9iWkt>{9_J2)W!F@R;Dg)Lp$zS!5CX;rV991JU){SM-DYAV0|e >zM%uPHwukYjIUJ7B*Q=ZTu2z>QMR^bD+hKK83n7YJaQrDaUiXl8N2@a^ART^^rwFp> >z9#IKgok0Td0KkTyXt?~yXZ<2qM=a7Vzey#Q*6RDnL2!78qHiE=Ex4QTA^lz~J%kTw >zstmq|U|5-t@E~V@SRUkpVNEL-i@q);x>HzkHGJJLeJv;~hO4ub=d-q4IFZka!eTMc >zu`{buHGh%+at79akO>1WhSi7Zh!q^12-bv5K>WppZFh6@Am?f!<BIe8<ZyJvwWFFq >zUcMXE0yolD)G8oeTdi8;=!mNz`J_B*yPwI?M)m~}`KHs5imGL+R7;7ZWotYNJV;A* >zWckKOJq2tdq{0$$(*LL3ZKU7Jv@p{|rJmVH#VIZ=UDrmLfQ3*?VqE$rdu3uFswG*f >z%lCCbgf){JI*%YWuFdgL!bDU{f?kyVyi~}>KvZ5Be|6^zTf#t8UO;S(JZAKN+3ASN >z3j@6)uNUz|&Al}d$_w_F78jlrimN;suUD0qIN$0jWDohucq6MjSV#Rh_J5@Pc!G3f >z_wwM3t6xj|WYw9-AC(uqCDDE%<9fTAh~QL5JzvTmP~Jf3VT_w`oktbsK$-$vb-dY+ >zEip&>4?ZIC^U;m)Hw&SbOn!F;BHM*_pCjsYrK_unjA?=AlYvYnPPY~!(~?^V6%rmz >z<RXVlV(+q3UGZ)qa4U<3RPu9z8&h()Lr7;MvMclhIow%G<k?0tDQT)8vXJ#M5t59J >znRmOBS}sb`n8kPXi@9Ww{-vOHwGp3wv!1nUm_EL5ha0)Qi>kimBF|Bjt{e!>7aIY` >z$e-!kZF!dZ$<~h?Ekqu$Hyc?mW_>Y3_Tv~aU&L~krJRVP<{Xh@#O3lKU&e81AT)VW >z+l8Kn<$pJj%%^`<NBnV^?sG(rO721gjrZ5ir7vt3{7A{<<H{~jA7`ID<MD7X!t_;S >zAdaE>s>@+0W|%%6zicXInEvpcG8HpS|5i+Fr$GIwnD~MX)K@9PlerDlpNfeu>p=af >vm<;kz{V6gHxvP)gcJytThUyO|QzGyW8di!g0nvTM00000NkvXXu0mjfqXF-V > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tr.png b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tr.png >new file mode 100644 >index 0000000000000000000000000000000000000000..59843ae54b64f6ce4f7e616d4be491c911ea84cf >GIT binary patch >literal 1235 >zcmV;^1T6cBP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUQMM*?KRCwC$mrYXRI26aFnjFBd+de=qdOt_N >zRTBGjNv4=J5|!QqHQb;NfD32Vom9jLqFiod>%)>Qhp^}!Di#F%(|iB->7dhx5Bfwt >zkx%50BC1n|tx|6vK%_mLQWqnX6K;;U`FDFEg`lc|)m4wlpBK4@05B8)B_V|J%_Vlw >za4<$t6qwQ5?fVe&2b-UQ(B}DF=TLGmWzFWjfTsuoBj{dz2tgQl^A0mb5R|kzAGjHU >zzt-QIvk5};13=E&LB-q-)byMklsg#6^|GA>1kTt&3kTTsQcmN$3rJ$UlvDpmfxi-B >zs(OsZVotq*l2F1pfdVHvT}FC0ny!_MGKlO{^1lTH|7D!$)SEgOs2&9Y@Lbr2kd{<# >zhySTga0aoQC4`TSr6hxqDd{GMq~)Oxf{zHUHg7p3EkeB)qa9pj)F50=N<;4i33kkV >z+Zkfqoh0ngavtIa&CE4aHM11QcA(<ZnS*i}9_-kZ;*#IbkX(ZM7}U-VnO=(WZJ}O6 >zN?{sklqJk*eYL?f(2HA43tsrLxw#P83GW(do-aa9$Cseyd*a!d^}6HVyqYAe5u#PP >zW%Z*kP*_6LlYHvTg7zzOR0H&%9HKkXNYMzhoi|%+O@~02w{IClNzOR!w=8e?lQnb@ >z%pq|-dqh2QW;SdM6#?$Yk>1_eQZqwfj_k!6`W4$RXtT;($sb=Vf=Ltr<fHQ=Orru; >zUn;qEfp&3@JVRc|I^G&)9Ni4A9mSQOHEM$Fe1C)nz8+lD!g*#oEk#T?Ym^*pUDLa@ >zP0fmiPIHK0vlU}q+Y5`}FTpe9;sq1LWPGS!Et$V!6C--}V}{^za7DM=t4WauJA@K$ >zMP={GAs~J}TSO4+Obz2!!c-2PJ^BD}6(L7%qhFFWlm_w*{A_jB&gyf79BgCs?>w9n >z=2B#u(Pr7sL0tWekex*^{dF&8!>RY)KGWH*ffTXTQc}}ioq82%jI{MEgls^5+h<%O >z^>H1Z@tJtBVk*~XX#88aM!5hI=gDs?hBhOj+jXMvWV-~H?(^Z!I&l*r!fNriI&I;K >z<Iv6+Vk^Q0%(qeN5a+0NAxn^9#sT%s+L9uce-sc;vjLIT_kg$%QSX=-v{o_lKqih2 >zSFAju?}mC>UB`|wTQ4r~E*vl-*0C6Qu@PH2eTrR0Wf{T~%Xbknf3wf*S&<+a`6o9M >zz*S7^KKgFY$UnJ0HVgZg8jXfF%*c<rs4-Jtxk{$Dr$zap4viTq<*Snt>L({(KZLbt >zzRNL^s?W;zZP~w5L&>g+M15Ai**#&3n|Wb>4eGP<`;PGlMsC0muRbf^cs3p5##&fh >zIr(FkMaZ}vrt)1Swj2@$kLqXgyORsRw`3xZBX}-f+RL=$<nPGNDtben%J*+U`~KZM >xFqlMZdn&(j3r#(mcWQ87&CEBe=q+_3|9^_Lp+#u>Ntgft002ovPDHLkV1lbeOeO#T > >literal 0 >HcmV?d00001 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..11b5168acb5cd471f0d98dc727214a7502720755 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/w3c-import.log >@@ -0,0 +1,59 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-green.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-lime.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-maroon.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-navy.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-red.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/1x1-white.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-gg-rr.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-green.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/60x60-red.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/README >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/a-green.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/b-green.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/c-red.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/cat.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-charset.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-green.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/import-red.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rgr-grg.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-grg-rrg-rgg.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-rgr-grg-rgr.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/pattern-tr.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50%.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-h-50px.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-100px.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/ruler-v-50px.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-purple.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-teal.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/square-white.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-blue.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-green.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-lime.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-orange.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-red.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-teal.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-white.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/swatch-yellow.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-bl.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-br.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-inner-half-size.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-outer.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tl.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/test-tr.png >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/xmlss-pi.xhtml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/xmlss-pi.xhtml b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/xmlss-pi.xhtml >new file mode 100644 >index 0000000000000000000000000000000000000000..8e22b50b25a5458d832e31bb3c61e0ed881fb59c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/support/xmlss-pi.xhtml >@@ -0,0 +1 @@ >+<?xml-stylesheet href='data:text/css,'?><html xmlns='http://www.w3.org/1999/xhtml'/> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..bcf4b947450d2a714aae9ba4c0b18bc2e3426edf >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count-expected.txt >@@ -0,0 +1,5 @@ >+ >+PASS stylesheet.css should be loaded and styleSheets.length === 1 >+PASS stylesheet.css should be unloaded and styleSheets.length === 0 >+FAIL stylesheet-1.css should be loaded and styleSheets.length === 1 assert_equals: styleSheets.length is incorrect: expected 1 but got 0 >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count.html >new file mode 100644 >index 0000000000000000000000000000000000000000..24c5dcd7c289ee8c77b71eb8b41c123a163a9ae9 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count.html >@@ -0,0 +1,61 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSSOM - Extensions to the Document Interface: StyleSheetList length reflects dynamically loaded and unloaded sheets</title> >+ <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheet-collections"> >+ <link rel="stylesheet" href="stylesheet.css" type="text/css"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="The styleSheets length attribute must reflect the number of sheets at page load and after dynamically"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+ <div id="log"></div> >+ <script> >+ >+ // Get the Document's styleSheets attribute >+ var styleSheets = document.styleSheets; >+ >+ // Verify that the styleSheets list length is 1 due to "stylesheet.css" loaded in head section >+ test(function() { >+ assert_equals(styleSheets.length, 1, "styleSheets.length is incorrect:"); >+ }, "stylesheet.css should be loaded and styleSheets.length === 1"); >+ >+ // Verify that the styleSheets list length is 0 after removing the loaded sheet from the DOM >+ test(function() { >+ >+ // get the one and only sheet loaded >+ var sheet = styleSheets.item(0); >+ >+ // remove the sheet from the DOM >+ sheet.ownerNode.parentNode.removeChild(sheet.ownerNode) >+ >+ // assert that there are 0 styleSheets in the styleSheets property >+ assert_equals(styleSheets.length, 0, "styleSheets.length is incorrect:"); >+ >+ }, "stylesheet.css should be unloaded and styleSheets.length === 0"); >+ >+ // Verify that the styleSheets list length is back to 1 after loading a new sheet >+ test(function() { >+ >+ // create a css file reference >+ var fileReference = document.createElement("link"); >+ fileReference.setAttribute("rel", "stylesheet"); >+ fileReference.setAttribute("type", "text/css"); >+ fileReference.setAttribute("href", "stylesheet-1.css"); >+ >+ // load the css file reference into the head section >+ var head = document.getElementsByTagName("HEAD")[0]; >+ head.appendChild(fileReference); >+ >+ // assert that there is 1 styleSheet in the styleSheets property >+ assert_equals(styleSheets.length, 1, "styleSheets.length is incorrect:"); >+ >+ }, "stylesheet-1.css should be loaded and styleSheets.length === 1"); >+ >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..80391760c1bc8907fb2dc99905193eccc4806d2c >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL styleSheets.length must be 5 assert_equals: styleSheets.length is incorrect: expected 5 but got 1 >+PASS styleSheets item 0 title must be aaa >+FAIL styleSheets item 1 title must be zebra null is not an object (evaluating 'styleSheets.item(1).title') >+FAIL styleSheets item 0 title must be kilo null is not an object (evaluating 'styleSheets.item(2).title') >+FAIL styleSheets item 0 title must be alpha null is not an object (evaluating 'styleSheets.item(3).title') >+FAIL styleSheets item 0 title must be zebra null is not an object (evaluating 'styleSheets.item(4).title') >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order.html >new file mode 100644 >index 0000000000000000000000000000000000000000..8ea75099b83f325fe8ebe0c27f65dafa3696fe5a >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order.html >@@ -0,0 +1,56 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSSOM - Extensions to the Document Interface: Stylesheet header load order</title> >+ <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheet-collections"> >+ <style title="aaa" type="text/css"> >+ H1 {border-width: 1; border: solid; text-align: center} >+ </style> >+ <link title="zebra" rel="stylesheet" href="zebra.css" type="text/css"> >+ <link title="kilo" rel="stylesheet" href="kilo.css" type="text/css"> >+ <link title="alpha" rel="stylesheet" href="alpha.css" type="text/css"> >+ <link title="zebra" rel="stylesheet" href="/directory01/zebra.css" type="text/css"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="Document's style sheets created from HTTP Link headers are first in list and loaded in header order"> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+ <div id="log"></div> >+ <script> >+ >+ // Get the Document's styleSheets attribute >+ var styleSheets = document.styleSheets; >+ >+ // Verify that the styleSheets list length is 5 >+ test(function() { >+ assert_equals(styleSheets.length, 5, "styleSheets.length is incorrect:"); >+ }, "styleSheets.length must be 5"); >+ >+ // Verify that titles of loaded sheets are as expected (in the correct order) >+ test(function() { >+ assert_equals(styleSheets.item(0).title, "aaa", "title for item 1 is incorrect:"); >+ }, "styleSheets item 0 title must be aaa"); >+ // Verify that titles of loaded sheets are as expected (in the correct order) >+ test(function() { >+ assert_equals(styleSheets.item(1).title, "zebra", "title for item 1 is incorrect:"); >+ }, "styleSheets item 1 title must be zebra"); >+ // Verify that titles of loaded sheets are as expected (in the correct order) >+ test(function() { >+ assert_equals(styleSheets.item(2).title, "kilo", "title for item 1 is incorrect:"); >+ }, "styleSheets item 0 title must be kilo"); >+ // Verify that titles of loaded sheets are as expected (in the correct order) >+ test(function() { >+ assert_equals(styleSheets.item(3).title, "alpha", "title for item 1 is incorrect:"); >+ }, "styleSheets item 0 title must be alpha"); >+ // Verify that titles of loaded sheets are as expected (in the correct order) >+ test(function() { >+ assert_equals(styleSheets.item(4).title, "zebra", "title for item 1 is incorrect:"); >+ }, "styleSheets item 0 title must be zebra"); >+ >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..ee4857c4bfd7c2996783e789c1cb3bdda5812820 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension-expected.txt >@@ -0,0 +1,3 @@ >+ >+PASS CSSOM - Extensions to the Document Interface: StyleSheetList length is 0 when no sheets loaded >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension.html >new file mode 100644 >index 0000000000000000000000000000000000000000..33260ac5070505d0e52c8ef04bcdbe96cbd3f040 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension.html >@@ -0,0 +1,25 @@ >+<!DOCTYPE html> >+<html> >+<head> >+ <title>CSSOM - Extensions to the Document Interface: StyleSheetList length is 0 when no sheets loaded</title> >+ <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >+ <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >+ <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >+ <meta name="flags" content="dom"> >+ <meta name="assert" content="The styleSheets attribute must return a StyleSheetList sequence representing the document style sheets."> >+ <script src="../../../../../resources/testharness.js"></script> >+ <script src="../../../../../resources/testharnessreport.js"></script> >+</head> >+<body> >+ <div id="log"></div> >+ <script> >+ // Get the Document's styleSheets attribute >+ var styleSheets = document.styleSheets; >+ // Verify that the styleSheets list length is 0 because no stylesheets have been loaded >+ test(function() { >+ assert_equals(styleSheets.length, 0, "styleSheets.length is incorrect:"); >+ }) >+ </script> >+</body> >+</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..5bfc003c47fe7f1ab2fe89484b007480e34211d7 >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names-expected.txt >@@ -0,0 +1,8 @@ >+ >+FAIL custom property '--a' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >+FAIL custom property '--a;b' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 >+FAIL custom property '---' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >+FAIL custom property '--\' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 >+FAIL custom property '--ab' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >+FAIL custom property '--0' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >+ >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names.html b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names.html >new file mode 100644 >index 0000000000000000000000000000000000000000..50f60ea322dea1dd8023ddb14c44af6ac0fef50b >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names.html >@@ -0,0 +1,48 @@ >+<!DOCTYPE html> >+<meta charset="utf-8"> >+<title>Tests for handling of CSS Custom Property names</title> >+<link rel="help" href="https://drafts.csswg.org/css-variables/#serializing-custom-props"> >+<meta name="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au"> >+<script src="../../../../../resources/testharness.js"></script> >+<script src="../../../../../resources/testharnessreport.js"></script> >+<div id="log"></div> >+<script> >+ >+// Valid custom property names, before and after CSS escaping. >+var valid_names = [ >+ ["--a", "--a"], >+ ["--a;b", "--a\\;b"], >+ ["---", "---"], >+ ["--\\", "--\\\\"], >+ ["--ab", "--\\61 b"], >+ ["--0", "--\\30 "], >+]; >+ >+valid_names.forEach(function(t) { >+ var name = t[0]; >+ var escaped_name = t[1]; >+ >+ test(function() { >+ var e = document.createElement("span"); >+ e.style = escaped_name + ":value"; >+ >+ for (var after_refeeding = 0; after_refeeding <= 1; ++after_refeeding) { >+ var desc_suffix = (after_refeeding ? " (after " : " (before ") + >+ "serialization/re-parsing)"; >+ >+ assert_equals(e.style.length, 1, >+ "appears on specified style" + desc_suffix); >+ >+ assert_equals(e.style[0], name, >+ "name returned correctly from specified " + >+ "style indexed getter" + desc_suffix); >+ >+ assert_equals(e.style.getPropertyValue(name), "value", >+ "property value returned correctly from " + >+ "specified style getPropertyValue" + desc_suffix); >+ >+ e.style = e.style.cssText; >+ } >+ }, "custom property '" + name + "'"); >+}); >+</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/w3c-import.log >new file mode 100644 >index 0000000000000000000000000000000000000000..8997dcfd2a2abb1fb5cb982b41ac5fe282e3623e >--- /dev/null >+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/w3c-import.log >@@ -0,0 +1,97 @@ >+The tests in this directory were imported from the W3C repository. >+Do NOT modify these tests directly in WebKit. >+Instead, create a pull request on the WPT github: >+ https://github.com/w3c/web-platform-tests >+ >+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >+ >+Do NOT modify or remove this file. >+ >+------------------------------------------------------------------------ >+Properties requiring vendor prefixes: >+None >+Property values requiring vendor prefixes: >+None >+------------------------------------------------------------------------ >+List of files: >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSS.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframeRule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSKeyframesRule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSNamespaceRule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSRuleList.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText-namespace.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule-set-selectorText.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleRule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/MediaList2.xhtml >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/OWNERS >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/StyleSheetList.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-002.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-003.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/computed-style-004.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attribute-modifications.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-declaration-modifications.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-reparse.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssimportrule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssText-serialize.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-cssstyledeclaration-set.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule-constructors.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-fontfacerule.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-ruleTypeAndOrder.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssom-setProperty-shorthand.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-final-delimiter.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-important.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutability.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-002.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-003.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-mutationrecord-004.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-setter-order.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/escape.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/font-shorthand-serialization.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-dynamic-subdoc.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/historical.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/inline-style-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-charset-no-index.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-import-no-index.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-namespace-no-index.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-no-index.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/insertRule-syntax-error-01.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/interfaces.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001-expected.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-dynamic-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-002.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-003.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/medialist-interfaces-004.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/overflow-serialization.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-order.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/preferred-stylesheet-reversed-order.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorSerialize.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001-expected.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/selectorText-modification-restyle-002.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialization-CSSDeclaration-with-important.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-namespaced-type-selectors.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-variable-reference.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/setproperty-null-undefined.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-serialization.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-001.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/style-sheet-interfaces-002.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic-expected.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-replacedata-dynamic.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.css >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/stylesheet-title.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-count.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-doc-ext-load-tree-order.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/ttwf-cssom-document-extension.html >+/LayoutTests/imported/w3c/web-platform-tests/css/cssom/variable-names.html >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS-expected.txt >deleted file mode 100644 >index 3bafa7b190130e6f54b820f3078bd06e8f135f7a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS CSS.escape >-PASS CSS.supports, one argument form >-FAIL CSS.supports, two argument form assert_equals: CSS.supports: two argument form succeeds for custom property expected true but got false >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS.html >deleted file mode 100644 >index 1bbecbfa3ba4e323c8307c5b06a5cbca2472f450..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS.html >+++ /dev/null >@@ -1,37 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title>CSSOM - CSS interface</title> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<script> >- test(function () { >- // https://drafts.csswg.org/cssom/#dom-css-escape >- // https://drafts.csswg.org/cssom/#serialize-an-identifier >- assert_equals(CSS.escape("hello world"), "hello\\ world", "CSS.escape: spaces get escaped with backslashes"); >- assert_equals(CSS.escape("hello\0world"), "hello\u{FFFD}world", "CSS.escape: NULL get replaced with U+FFFD REPLACEMENT CHARACTER"); >- assert_equals(CSS.escape("hello0world"), "hello0world", "CSS.escape: Numbers within string preserved"); >- assert_equals(CSS.escape("hello\x10world"), "hello\\10 world", "CSS.escape: Values between \\x01 and \\x1f are unicode escaped"); >- assert_equals(CSS.escape("hello\\world"), "hello\\\\world", "CSS.escape: Backslashes get backslash-escaped"); >- assert_equals(CSS.escape("hello\u{1234}world"), "hello\u{1234}world", "CSS.escape: Code points greater than U+0080 are preserved"); >- assert_equals(CSS.escape("hello\x7Fworld"), "hello\\7f world", "CSS.escape: Some code points less than U+0080 are unicode-escaped"); >- assert_equals(CSS.escape("-"), "\\-", "CSS.escape: Single dash escaped"); >- assert_equals(CSS.escape("0foo"), "\\30 foo", "CSS.escape: Numbers at the beginning of an ident get unicode escaped"); >- assert_equals(CSS.escape("-0foo"), "-\\30 foo", "CSS.escape: Numbers at the beginning of an ident after single hyphen get unicode escaped"); >- assert_equals(CSS.escape("--0foo"), "--0foo", "CSS.escape: Numbers at the beginning of an ident after multiple hyphens do not get unicode escaped"); >- }, "CSS.escape"); >- test(function () { >- // https://drafts.csswg.org/css-conditional/#dom-css-supports >- // https://drafts.csswg.org/css-conditional/#typedef-supports-condition >- assert_equals(CSS.supports("color: red"), true, "CSS.supports: Single-argument form allows for declarations without enclosing parentheses"); >- assert_equals(CSS.supports("(color: red) and (color: blue)"), true, "CSS.supports: Complex conditions allowed"); >- assert_equals(CSS.supports("not (foobar)"), true, "CSS.supports: general_enclosed still parses"); >- }, "CSS.supports, one argument form"); >- test(function () { >- // https://drafts.csswg.org/css-conditional/#dom-css-supports >- // https://drafts.csswg.org/css-conditional/#dfn-support >- assert_equals(CSS.supports("color", "red"), true, "CSS.supports: two argument form succeeds for known property"); >- assert_equals(CSS.supports("unknownproperty", "blah"), false, "CSS.supports: two argument form fails for unknown property"); >- assert_equals(CSS.supports("width", "blah"), false, "CSS.supports: two argument form fails for invalid value"); >- assert_equals(CSS.supports("--foo", "blah"), true, "CSS.supports: two argument form succeeds for custom property"); >- }, "CSS.supports, two argument form"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule-expected.txt >deleted file mode 100644 >index cbeab2be49c6ce70e5e15f342959d9bd6b009dce..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS CSSKeyframeRule: style property >-PASS CSSKeyframeRule: style property has [PutForwards] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html >deleted file mode 100644 >index 532aa6fa91086805971e25d6d4a9c2f55ac75af6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html >+++ /dev/null >@@ -1,51 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title></title> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<style type="text/css" id="styleElement"> >- div { animation: 3s slidein; } >- @keyframes slidein { >- from { >- margin-left: 100%; >- width: 300%; >- } >- >- to { >- margin-left: 0%; >- width: 100%; >- } >- } >-</style> >-<script> >- var styleSheet = document.getElementById("styleElement").sheet; >- var keyframesRule = styleSheet.cssRules[1]; >- var fromRule = keyframesRule.cssRules[0]; >- var toRule = keyframesRule.cssRules[1]; >- >- test(function() { >- assert_equals(keyframesRule.name, "slidein"); >- assert_equals(typeof fromRule.style, "object"); >- assert_equals(fromRule.style.marginLeft, "100%"); >- assert_equals(fromRule.style.width, "300%"); >- >- assert_equals(typeof toRule.style, "object"); >- assert_equals(toRule.style.marginLeft, "0%"); >- assert_equals(toRule.style.width, "100%"); >- >- toRule.style.marginLeft = "-5%"; >- toRule.style.width = "50%"; >- >- assert_equals(fromRule.style.marginLeft, "100%"); >- assert_equals(fromRule.style.width, "300%"); >- assert_equals(toRule.style.marginLeft, "-5%"); >- assert_equals(toRule.style.width, "50%"); >- }, "CSSKeyframeRule: style property"); >- >- test(function() { >- fromRule.style = "margin-left: 50%; width: 100%;"; >- >- assert_equals(fromRule.style.marginLeft, "50%", "margin-left"); >- assert_equals(fromRule.style.width, "100%", "width"); >- }, "CSSKeyframeRule: style property has [PutForwards]"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule-expected.txt >deleted file mode 100644 >index 7f1e99ed4557574a5cfc200f6021fdbdc8d33d8a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-FAIL CSSOM - CSSKeyframesRule interface assert_equals: CSSKeyframesRule cssText attribute expected "@keyframesbar{}" but got "@-webkit-keyframesbar{}" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule.html >deleted file mode 100644 >index 68453498767ca78073b22204fde0d8720298d90c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule.html >+++ /dev/null >@@ -1,73 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - CSSKeyframesRule interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- @keyframes foo { >- 0% { top: 0px; } >- 100% { top: 200px; } >- } >- @keyframes empty {} >- </style> >- >- <script> >- test(function () { >- var keyframe = document.styleSheets[0].cssRules[0]; >- assert_equals(keyframe.name, "foo", "CSSKeyframesRule name attribute"); >- assert_equals(keyframe.cssRules.length, 2, "CSSKeyframesRule cssRule length attribute"); >- assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute"); >- assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute"); >- >- keyframe.appendRule("50% { top: 100px; }"); >- assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after appendRule function"); >- assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- assert_equals(keyframe.cssRules[2].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- >- keyframe.appendRule("0% { top: 50px; }"); >- assert_equals(keyframe.cssRules.length, 4, "CSSKeyframesRule cssRule length attribute after appendRule function"); >- assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- assert_equals(keyframe.cssRules[1].cssText, "100% { top: 200px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- assert_equals(keyframe.cssRules[2].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- assert_equals(keyframe.cssRules[3].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after appendRule function"); >- >- var find1 = keyframe.findRule("50%"); >- assert_equals(find1.cssText, "50% { top: 100px; }", "CSSKeyframesRule findRule function"); >- var find2 = keyframe.findRule("0%"); >- assert_equals(find2.cssText, "0% { top: 50px; }", "CSSKeyframesRule findRule function"); >- var find3 = keyframe.findRule("70%"); >- assert_equals(find3, null, "CSSKeyframesRule findRule function"); >- >- keyframe.deleteRule("100%"); >- assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[1].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[2].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[3], undefined, "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- >- keyframe.deleteRule("80%"); >- assert_equals(keyframe.cssRules.length, 3, "CSSKeyframesRule cssRule length attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[0].cssText, "0% { top: 0px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[1].cssText, "50% { top: 100px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[2].cssText, "0% { top: 50px; }", "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- assert_equals(keyframe.cssRules[3], undefined, "CSSKeyframesRule cssRule cssText attribute after deleteRule function"); >- >- var empty = document.styleSheets[0].cssRules[1]; >- empty.name = "bar"; >- assert_equals(empty.name, "bar", "CSSKeyframesRule name setter"); >- assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframesbar{}", "CSSKeyframesRule cssText attribute"); >- >- empty.name = "initial"; >- assert_equals(empty.name, "initial", "CSSKeyframesRule name setter, CSS-wide keyword"); >- assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframes\"initial\"{}", "CSSKeyframesRule cssText attribute with CSS-wide keyword name"); >- >- empty.name = "none"; >- assert_equals(empty.name, "none", "CSSKeyframesRule name setter, 'none'"); >- assert_equals(empty.cssText.replace(/\s/g, ""), "@keyframes\"none\"{}", "CSSKeyframesRule cssText attribute with 'none' name"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule-expected.txt >deleted file mode 100644 >index 2b892a2e4492375ef77f9e366e4fe80f451a9929..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - CSSNamespaceRule interface >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule.html >deleted file mode 100644 >index 64ed94b6e7f9e8d125f9ba4a39c63fefee4102bb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule.html >+++ /dev/null >@@ -1,31 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - CSSNamespaceRule interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- @namespace svg url(http://servo); >- @namespace url(http://servo1); >- @namespace svg url("http://servo2"); >- </style> >- >- <script> >- test(function () { >- var rules = document.styleSheets[0].cssRules; >- assert_equals(rules[0].prefix, "svg", "CSSNamespaceRule prefix attribute"); >- assert_equals(rules[0].namespaceURI, "http://servo", "CSSNamespaceRule namespaceURI attribute"); >- assert_equals(rules[0].cssText, "@namespace svg url(\"http://servo\");", "CSSNamespaceRule cssText attribute"); >- >- assert_equals(rules[1].prefix, "", "CSSNamespaceRule prefix attribute"); >- assert_equals(rules[1].namespaceURI, "http://servo1", "CSSNamespaceRule namespaceURI attribute"); >- assert_equals(rules[1].cssText, "@namespace url(\"http://servo1\");", "CSSNamespaceRule cssText attribute"); >- >- assert_equals(rules[2].prefix, "svg", "CSSNamespaceRule prefix attribute"); >- assert_equals(rules[2].namespaceURI, "http://servo2", "CSSNamespaceRule namespaceURI attribute"); >- assert_equals(rules[2].cssText, "@namespace svg url(\"http://servo2\");", "CSSNamespaceRule cssText attribute"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList-expected.txt >deleted file mode 100644 >index 0709a8c09d146be4108dcc77e2b7e39d92cdb0b3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - CSSRuleList interface >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList.html >deleted file mode 100644 >index a394779617dd68c6982934fc1242edb3cf8c5e1f..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList.html >+++ /dev/null >@@ -1,26 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - CSSRuleList interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- body { width: 50%; } >- #foo { height: 100px; } >- </style> >- >- <script> >- test(function () { >- var ruleList = document.styleSheets[0].cssRules; >- assert_equals(ruleList.length, 2, "CSSRuleList length attribute"); >- assert_equals(ruleList[0].cssText, "body { width: 50%; }", "CSSRuleList indexed getter"); >- assert_equals(ruleList[1].cssText, "#foo { height: 100px; }", "CSSRuleList indexed getter"); >- assert_equals(ruleList[2], undefined, "CSSRuleList indexed getter"); >- assert_equals(ruleList.item(0).cssText, "body { width: 50%; }", "CSSRuleList item function"); >- assert_equals(ruleList.item(1).cssText, "#foo { height: 100px; }", "CSSRuleList item function"); >- assert_equals(ruleList.item(2), null, "CSSRuleList item function"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule-expected.txt >deleted file mode 100644 >index 3cb92f443a5b1e49ad6a4f11e009c2a78bc08ed0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule-expected.txt >+++ /dev/null >@@ -1,12 +0,0 @@ >- >-PASS CSSRule and CSSStyleRule types >-PASS Type of CSSRule#type and constant values >-PASS Existence of CSSRule attributes >-PASS Writability of CSSRule attributes >-PASS Values of CSSRule attributes >-PASS Existence and type of CSSStyleRule attributes >-PASS Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object >-PASS Values of CSSStyleRule attributes >-PASS Mutability of CSSStyleRule's style attribute >-PASS CSSStyleRule's style has [PutForwards] >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html >deleted file mode 100644 >index 3acdfb12852356ac28e91af25c82052d45864b0e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html >+++ /dev/null >@@ -1,113 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSSOM CSSRule CSSStyleRule interface</title> >- <link rel="author" title="Letitia Lew" href="mailto:lew.letitia@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-rules"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstylerule-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="All properties for this CSSStyleRule instance of CSSRule are initialized correctly"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- >- <style id="styleElement" type="text/css"> >- div { margin: 10px; padding: 0px; } >- </style> >-</head> >-<body> >- <div id="log"></div> >- >- <script type="text/javascript"> >- var rule; >- setup(function() { >- var styleSheet = document.getElementById("styleElement").sheet; >- var ruleList = styleSheet.cssRules; >- rule = ruleList[0]; >- }); >- >- test(function() { >- assert_true(rule instanceof CSSRule); >- assert_true(rule instanceof CSSStyleRule); >- }, "CSSRule and CSSStyleRule types"); >- >- test(function() { >- assert_equals(rule.STYLE_RULE, 1); >- assert_equals(rule.IMPORT_RULE, 3); >- assert_equals(rule.MEDIA_RULE, 4); >- assert_equals(rule.FONT_FACE_RULE, 5); >- assert_equals(rule.PAGE_RULE, 6); >- assert_equals(rule.NAMESPACE_RULE, 10); >- assert_idl_attribute(rule, "type"); >- assert_equals(typeof rule.type, "number"); >- }, "Type of CSSRule#type and constant values"); >- >- test(function() { >- assert_true(rule instanceof CSSRule); >- assert_idl_attribute(rule, "cssText"); >- assert_idl_attribute(rule, "parentRule"); >- assert_idl_attribute(rule, "parentStyleSheet"); >- }, "Existence of CSSRule attributes"); >- >- test(function() { >- assert_readonly(rule, "type"); >- assert_readonly(rule, "parentRule"); >- assert_readonly(rule, "parentStyleSheet"); >- }, "Writability of CSSRule attributes"); >- >- test(function() { >- assert_equals(rule.type, rule.STYLE_RULE); >- assert_equals(typeof rule.cssText, "string"); >- assert_equals(rule.cssText, "div { margin: 10px; padding: 0px; }"); >- assert_equals(rule.parentRule, null); >- assert_true(rule.parentStyleSheet instanceof CSSStyleSheet); >- }, "Values of CSSRule attributes"); >- >- test(function() { >- assert_idl_attribute(rule, "selectorText"); >- assert_equals(typeof rule.selectorText, "string"); >- assert_idl_attribute(rule, "style"); >- }, "Existence and type of CSSStyleRule attributes"); >- >- test(function() { >- // CSSStyleRule.style has PutForwards=cssText and SameObject. >- var initial = rule.style.cssText; >- var style = rule.style; >- >- rule.style = ""; >- assert_equals(rule.style.cssText, ""); >- assert_equals(rule.style, style); >- >- rule.style = "margin: 42px;"; >- assert_equals(rule.style.margin, "42px"); >- assert_equals(rule.style, style); >- >- rule.style = initial; >- assert_equals(rule.style, style); >- }, "Assigning to CSSStyleRule.style assigns to cssText; CSSStyleRule.style returns the same object"); >- >- test(function() { >- assert_equals(rule.selectorText, "div"); >- assert_true(rule.style instanceof CSSStyleDeclaration); >- }, "Values of CSSStyleRule attributes"); >- >- test(function() { >- assert_equals(rule.style.margin, "10px"); >- assert_equals(rule.style.padding, "0px"); >- >- rule.style.padding = "5px"; >- rule.style.border = "1px solid"; >- >- assert_equals(rule.style.padding, "5px"); >- assert_equals(rule.style.border, "1px solid"); >- }, "Mutability of CSSStyleRule's style attribute"); >- >- test(function() { >- rule.style = "margin: 15px; padding: 2px;"; >- >- assert_equals(rule.style.margin, "15px", "margin"); >- assert_equals(rule.style.padding, "2px", "padding"); >- }, "CSSStyleRule's style has [PutForwards]"); >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet-expected.txt >deleted file mode 100644 >index 58f3208da61ba697e28c20a7d8846a7d08ce2b38..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - CSSStyleSheet interface >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html >deleted file mode 100644 >index 62ad133d5f60ab12ad85182091d45e2a88d3e63a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html >+++ /dev/null >@@ -1,43 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - CSSStyleSheet interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style id="my-stylesheet"> >- body { width: 50%; } >- #foo { height: 100px; } >- </style> >- >- <script> >- test(function () { >- var styleSheet = document.styleSheets[0]; >- styleSheet.cssRules[0].randomProperty = 1; >- styleSheet.cssRules[1].randomProperty = 2; >- >- assert_equals(styleSheet, document.getElementById("my-stylesheet").sheet, "CSSStyleSheet and LinkStyle's sheet attribute"); >- assert_equals(styleSheet.cssRules.length, 2, "CSSStyleSheet cssRules attribute"); >- assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute"); >- assert_equals(styleSheet.cssRules[1].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute"); >- assert_equals(styleSheet.cssRules[2], undefined, "CSSStyleSheet cssRules attribute"); >- >- styleSheet.insertRule("#bar { margin: 10px; }", 1); >- assert_equals(styleSheet.cssRules.length, 3, "CSSStyleSheet cssRules attribute after insertRule function"); >- assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute"); >- assert_equals(styleSheet.cssRules[1].cssText, "#bar { margin: 10px; }", "CSSStyleSheet cssRules attribute after insertRule function"); >- assert_equals(styleSheet.cssRules[2].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute after insertRule function"); >- assert_equals(styleSheet.cssRules[0].randomProperty, 1, "[SameObject] cssRules attribute after insertRule function"); >- assert_equals(styleSheet.cssRules[2].randomProperty, 2, "[SameObject] cssRules attribute after insertRule function"); >- >- styleSheet.deleteRule(1); >- assert_equals(styleSheet.cssRules.length, 2, "CSSStyleSheet cssRules attribute after deleteRule function"); >- assert_equals(styleSheet.cssRules[0].cssText, "body { width: 50%; }", "CSSStyleSheet cssRules attribute after deleteRule function"); >- assert_equals(styleSheet.cssRules[1].cssText, "#foo { height: 100px; }", "CSSStyleSheet cssRules attribute after deleteRule function"); >- assert_equals(styleSheet.cssRules[2], undefined, "CSSStyleSheet cssRules attribute after deleteRule function"); >- assert_equals(styleSheet.cssRules[0].randomProperty, 1, "[SameObject] cssRules attribute after deleteRule function"); >- assert_equals(styleSheet.cssRules[1].randomProperty, 2, "[SameObject] cssRules attribute after deleteRule function"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect-expected.txt >deleted file mode 100644 >index 035475afd6ee9652b50eed2ec5efdc97518aad7c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >-FOO >- >-PASS getBoundingClientRect >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect.html >deleted file mode 100644 >index 6ab5e4c9b3fdaea837ead09d95da5f1d9c4831f0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect.html >+++ /dev/null >@@ -1,30 +0,0 @@ >-<!doctype html> >-<html> >- <head> >- <meta charset="utf-8"> >- <title>getBoundingClientRect</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- >- <style> >- #foo { >- margin: 0px 0px 0px 5px; >- transform: translate(10px, 200px); >- position: fixed; >- left: 5px; >- background-color: red; >- } >- </style> >- </head> >- <body> >- <div id="foo"> >- FOO >- </div> >- <script> >- test(function () { >- var foo = document.getElementById("foo").getBoundingClientRect(); >- assert_equals(foo.left, 20); >- }); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList-expected.txt >deleted file mode 100644 >index 19c716db578706ca72d810c131590de2891a46b9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - MediaList interface >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html >deleted file mode 100644 >index b39fb20478e6798ef723ea56fa6dee49d366fd59..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html >+++ /dev/null >@@ -1,43 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - MediaList interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- @media screen and (min-width: 480px), print, projection {} >- </style> >- >- <script> >- test(function () { >- var media = document.styleSheets[0].cssRules[0].media; >- assert_equals(media.length, 3, "MediaList length attribute"); >- assert_equals(media.mediaText, "screen and (min-width: 480px), print, projection", "MediaList mediaText attribute"); >- assert_equals(media[0], "screen and (min-width: 480px)", "MediaList indexed getter"); >- assert_equals(media[1], "print", "MediaList indexed getter"); >- assert_equals(media[2], "projection", "MediaList indexed getter"); >- assert_equals(media[3], undefined, "MediaList indexed getter with out of range"); >- assert_equals(media.item(0), "screen and (min-width: 480px)", "MediaList item method"); >- assert_equals(media.item(3), null, "MediaList item method"); >- >- media.deleteMedium("print"); >- assert_equals(media.length, 2, "MediaList length attribute after delete method"); >- assert_equals(media.mediaText, "screen and (min-width: 480px), projection", "MediaList mediaText attribute after delete method"); >- assert_equals(media[1], "projection", "MediaList indexed getter after delete method"); >- assert_equals(media[2], undefined, "MediaList indexed getter with out of range after delete method"); >- assert_equals(media.item(1), "projection", "MediaList indexed getter after delete method"); >- assert_equals(media.item(2), null, "MediaList item method after delete method"); >- >- media.appendMedium("speech"); >- assert_equals(media.length, 3, "MediaList length attribute after append method"); >- assert_equals(media.mediaText, "screen and (min-width: 480px), projection, speech", "MediaList mediaText attribute after append method"); >- assert_equals(media[1], "projection", "MediaList indexed getter after append method"); >- assert_equals(media[2], "speech", "MediaList indexed getter after append method"); >- assert_equals(media[3], undefined, "MediaList indexed getter with out of range after append method"); >- assert_equals(media.item(2), "speech", "MediaList item method after append method"); >- assert_equals(media.item(3), null, "MediaList item method after append method"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2-expected.txt >deleted file mode 100644 >index 6b5d51d4bda56b6f5eb1c230d23dad5f5b11f27e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2-expected.txt >+++ /dev/null >@@ -1,7 +0,0 @@ >- >-PASS MediaList >-PASS MediaList.mediaText >-PASS MediaList.length >-PASS MediaList getter >-PASS MediaList.item >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml b/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml >deleted file mode 100644 >index fb1062cba87ab9684883fc2bffd46623c960b1de..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml >+++ /dev/null >@@ -1,54 +0,0 @@ >-<!DOCTYPE html> >-<html xmlns="http://www.w3.org/1999/xhtml"> >-<head> >-<title>CSS Test: the MediaList interface</title> >-<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"/> >-<link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"/> >-<link rel="help" href="http://dev.w3.org/2006/webapi/WebIDL/#getownproperty"/> >-<style media="screen, print" id="test-style"></style> >-<script src="/resources/testharness.js"/> >-<script src="/resources/testharnessreport.js"/> >-<script id="metadata_cache">/* >-{ >- "MediaList": {}, >- "MediaList.mediaText": {}, >- "MediaList.length": {}, >- "MediaList getter": {}, >- "MediaList.item": {} >-} >-*/</script> >-</head> >-<body> >-<div id="log"/> >-<script> >-test(function() { >- var ss = document.styleSheets[0]; >- assert_equals(ss.ownerNode.id, "test-style", "Got the wrong style element"); >- >- var media = ss.media; >- test(function() { >- // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17526 >- assert_equals(media.mediaText, "screen, print", "Serialization should be \"screen, print\""); >- }, "MediaList.mediaText"); >- >- test(function() { >- assert_equals(media.length, 2, "Got wrong number of media"); >- }, "MediaList.length"); >- >- test(function() { >- assert_equals(media[-1], undefined, "media[-1] should return undefined"); >- assert_equals(media[0], "screen", "media[0] should return \"screen\""); >- assert_equals(media[1], "print", "media[1] should return \"print\""); >- assert_equals(media[2], undefined, "media[2] should return undefined"); >- }, "MediaList getter"); >- >- test(function() { >- assert_equals(media.item(-1), null, "media.item(-1) should return null"); >- assert_equals(media.item(0), "screen", "media.item(0) should return \"screen\""); >- assert_equals(media.item(1), "print", "media.item(1) should return \"print\""); >- assert_equals(media.item(2), null, "media.item(2) should return null"); >- }, "MediaList.item"); >-}, "MediaList"); >-</script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS b/LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS >deleted file mode 100644 >index 607f8e85cc2dbc4c4dc35eb9d2c21b5ee4da8882..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS >+++ /dev/null >@@ -1,4 +0,0 @@ >-@dbaron >-@plinss >-@lilles >-@therealglazou >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList-expected.txt >deleted file mode 100644 >index 5dcc47a8ea2e04c810d8ae3b4da9ffe79aeb106e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - StyleSheetList interface >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html >deleted file mode 100644 >index 358264009a4ae4c205cf0ab3d3ffcf5c7a447ffb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html >+++ /dev/null >@@ -1,33 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - StyleSheetList interface</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- body { width: 50%; } >- </style> >- <style> >- #foo { width: 10%; } >- #bar { height: 100px; } >- </style> >- <script> >- test(function () { >- var styleSheets = document.styleSheets; >- assert_equals(styleSheets.length, 2, "StyleSheetList length attribute"); >- assert_equals(styleSheets[0].cssRules.length, 1, "StyleSheetList indexed getter length attribute"); >- assert_equals(styleSheets[1].cssRules.length, 2, "StyleSheetList indexed getter length attribute"); >- assert_equals(styleSheets[2], undefined, "StyleSheetList indexed getter length attribute"); >- assert_equals(styleSheets.item(0).cssRules.length, 1, "StyleSheetList item function length attribute"); >- assert_equals(styleSheets.item(1).cssRules.length, 2, "StyleSheetList item function length attribute"); >- assert_equals(styleSheets.item(2), null, "StyleSheetList item function length attribute"); >- >- styleSheets[0].randomProperty = 1; >- var style = document.createElement("style"); >- document.head.appendChild(style); >- assert_equals(styleSheets[0].randomProperty, 1, "[SameObject] StyleSheetList"); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001-expected.txt >deleted file mode 100644 >index 354e7730e29d663ff98061a14a24ca8db321f8e7..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001-expected.txt >+++ /dev/null >@@ -1,6 +0,0 @@ >- >-PASS read_only >-PASS property_values >-PASS inherited_property_values >-PASS relative_property_values >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html >deleted file mode 100644 >index 2cdfc9eb8b42a32efb10d38f637a07912d400c95..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html >+++ /dev/null >@@ -1,78 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: getComputedStyle</title> >- <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-window-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#resolved-values"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="getComputedStyle returns a readonly CSSStyleDeclaration with resolved values"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style> >- #outside { >- width: 200px; >- height: 200px; >- } >- #outside div { >- font-size: 100px; >- } >- #inside { >- width: 50%; >- height: 100px; >- } >- </style> >-<script id="metadata_cache">/* >-{ >- "read_only": { "assert": "do not allow modifications to a computed CSSStyleDeclaration" }, >- "property_values": { "assert": "Directly set properties are resolved" }, >- "inherited_property_values": { "assert": "Inherited properties are resolved" }, >- "relative_property_values": { "assert": "Relative properties are resolved" } >-} >-*/</script> >- </head> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <div id="outside"><div id="inside"></div></div> >- <script type="text/javascript"> >- var outer = document.getElementById("outside"); >- var inner = document.getElementById("inside"); >- var innerStyle; >- >- test(function() { >- innerStyle = window.getComputedStyle(inner); >- assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >- function() { innerStyle.cssText = "color: blue;"; }, >- "do not allow setting cssText on a readonly CSSStyleDeclaration"); >- assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >- function() { innerStyle.setProperty("color", "blue"); }, >- "do not allow calling setProperty on a readonly CSSStyleDeclaration"); >- assert_throws( "NO_MODIFICATION_ALLOWED_ERR", >- function() { innerStyle.color = "blue"; }, >- "do not allow setting a property on a readonly CSSStyleDeclaration"); >- }, "read_only", { >- assert: "do not allow modifications to a computed CSSStyleDeclaration" >- }); >- >- test(function() { >- assert_equals(innerStyle.getPropertyValue("height"), "100px"); >- }, "property_values", { >- assert: "Directly set properties are resolved" >- }); >- >- test(function() { >- assert_equals(innerStyle.getPropertyValue("font-size"), "100px"); >- }, "inherited_property_values", { >- assert: "Inherited properties are resolved" >- }); >- >- test(function() { >- assert_equals(innerStyle.getPropertyValue("width"), "100px"); >- }, "relative_property_values", { >- assert: "Relative properties are resolved" >- }); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications-expected.txt >deleted file mode 100644 >index fb8cfc3aa4285ea95ecde47950baacacdedc0f6c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS Mutating the style declaration doesn't remove the style attribute >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications.html >deleted file mode 100644 >index 6177c336d76ea8433f619a0a4b62b55c816c1d3a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications.html >+++ /dev/null >@@ -1,13 +0,0 @@ >-<!DOCTYPE html> >-<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:ecobos@igalia.com"> >-<link rel="help" href="https://drafts.csswg.org/cssom/#the-elementcssinlinestyle-interface"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<div id="test" style="color: red"></div> >-<script> >-test(function() { >- var el = document.getElementById("test"); >- el.style.color = ""; >- assert_true(el.hasAttribute("style")); >-}, "Mutating the style declaration doesn't remove the style attribute"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications-expected.txt >deleted file mode 100644 >index 096aa6e7e68ad172766e959e4746f6d9a1d7e73a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS Reading CSSStyleDeclaration initialized from a style element >-PASS Setting CSSStyleDeclaration#cssText >-PASS Calling CSSStyleDeclaration#setProperty >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications.html >deleted file mode 100644 >index 4db637d7de9edfa0b037fe434067a199784d36b8..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications.html >+++ /dev/null >@@ -1,63 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: CSSStyleDeclaration Interface</title> >- <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="CSSStyleDeclaration is properly initialized and can be modified through its interface"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement"> >- #test { color: green; } >- </style> >- </head> >- <body> >- <div id="log"></div> >- <div id="test"></div> >- <script type="text/javascript"> >- var declaration; >- setup(function() { >- var styleElement = document.getElementById("styleElement"); >- declaration = styleElement.sheet.cssRules.item(0).style; >- }); >- >- test(function() { >- assert_equals(declaration.cssText, "color: green;"); >- assert_equals(declaration.getPropertyValue("color"), "green"); >- }, "Reading CSSStyleDeclaration initialized from a style element"); >- >- test(function() { >- declaration.cssText = "margin-left:10px; padding-left:10px"; >- assert_equals(declaration.cssText, "margin-left: 10px; padding-left: 10px;"); >- assert_equals(declaration.length, 2); >- assert_equals(declaration.item(0), "margin-left"); >- assert_equals(declaration.item(1), "padding-left"); >- assert_equals(declaration.getPropertyValue("margin-left"), "10px"); >- assert_equals(declaration.getPropertyValue("padding-left"), "10px"); >- >- var computedStyle = window.getComputedStyle(document.getElementById("test")); >- assert_equals(computedStyle.getPropertyValue("margin-left"), "10px"); >- assert_equals(computedStyle.getPropertyValue("padding-left"), "10px"); >- }, "Setting CSSStyleDeclaration#cssText"); >- >- test(function() { >- while (declaration.length > 0) { >- declaration.removeProperty(declaration.item(0)); >- } >- declaration.setProperty("margin-left", "15px"); >- declaration.setProperty("padding-left", "15px"); >- >- assert_equals(declaration.length, 2); >- assert_equals(declaration.item(0), "margin-left"); >- assert_equals(declaration.item(1), "padding-left"); >- assert_equals(declaration.getPropertyValue("margin-left"), "15px"); >- assert_equals(declaration.getPropertyValue("padding-left"), "15px"); >- >- var computedStyle = window.getComputedStyle(document.getElementById("test")); >- assert_equals(computedStyle.getPropertyValue("margin-left"), "15px"); >- assert_equals(computedStyle.getPropertyValue("padding-left"), "15px"); >- }, "Calling CSSStyleDeclaration#setProperty"); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule-expected.txt >deleted file mode 100644 >index 25fc941da5544acd994b9652936b0b5b6a2b5aa6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule-expected.txt >+++ /dev/null >@@ -1,8 +0,0 @@ >- >-PASS CSSRule and CSSImportRule types >-PASS Type of CSSRule#type and constant values >-PASS Existence and writability of CSSRule attributes >-PASS Values of CSSRule attributes >-PASS Existence and writability of CSSImportRule attributes >-PASS Values of CSSImportRule attributes >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule.html >deleted file mode 100644 >index d4a3250e680739dddf490b54ae0deda792ef6999..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule.html >+++ /dev/null >@@ -1,88 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSSOM CSSRule CSSImportRule interface</title> >- <link rel="author" title="Letitia Lew" href="mailto:lew.letitia@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-rules"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssimportrule-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="All properties for this CSSImportRule instance of CSSRule are initialized correctly"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- >- <style id="styleElement" type="text/css"> >- @import url("support/a-green.css"); >- @import url("support/a-green.css") screen; >- </style> >-</head> >-<body> >- <div id="log"></div> >- >- <script type="text/javascript"> >- var rule, ruleWithMedia; >- setup(function() { >- var styleSheet = document.getElementById("styleElement").sheet; >- var ruleList = styleSheet.cssRules; >- rule = ruleList[0]; >- ruleWithMedia = ruleList[1]; >- }); >- >- test(function() { >- assert_true(rule instanceof CSSRule); >- assert_true(rule instanceof CSSImportRule); >- assert_true(ruleWithMedia instanceof CSSRule); >- assert_true(ruleWithMedia instanceof CSSImportRule); >- }, "CSSRule and CSSImportRule types"); >- >- test(function() { >- assert_equals(rule.STYLE_RULE, 1); >- assert_equals(rule.IMPORT_RULE, 3); >- assert_equals(rule.MEDIA_RULE, 4); >- assert_equals(rule.FONT_FACE_RULE, 5); >- assert_equals(rule.PAGE_RULE, 6); >- assert_equals(rule.NAMESPACE_RULE, 10); >- assert_idl_attribute(rule, "type"); >- assert_equals(typeof rule.type, "number"); >- }, "Type of CSSRule#type and constant values"); >- >- test(function() { >- assert_true(rule instanceof CSSRule); >- assert_idl_attribute(rule, "cssText"); >- assert_idl_attribute(rule, "parentRule"); >- assert_idl_attribute(rule, "parentStyleSheet"); >- >- assert_readonly(rule, "type"); >- assert_readonly(rule, "parentRule"); >- assert_readonly(rule, "parentStyleSheet"); >- }, "Existence and writability of CSSRule attributes"); >- >- test(function() { >- assert_equals(rule.type, rule.IMPORT_RULE); >- assert_equals(typeof rule.cssText, "string"); >- assert_equals(rule.cssText, '@import url("support/a-green.css");'); >- assert_equals(ruleWithMedia.cssText, '@import url("support/a-green.css") screen;'); >- assert_equals(rule.parentRule, null); >- assert_true(rule.parentStyleSheet instanceof CSSStyleSheet); >- }, "Values of CSSRule attributes"); >- >- test(function() { >- assert_idl_attribute(rule, "href"); >- assert_idl_attribute(rule, "media"); >- assert_idl_attribute(rule, "styleSheet"); >- >- assert_readonly(rule, "href"); >- assert_readonly(rule, "media"); >- assert_readonly(rule, "styleSheet"); >- }, "Existence and writability of CSSImportRule attributes"); >- >- test(function() { >- assert_equals(typeof rule.href, "string"); >- assert_true(rule.media instanceof MediaList); >- assert_true(rule.styleSheet instanceof CSSStyleSheet); >- assert_true(ruleWithMedia.media.length > 0); >- assert_equals(ruleWithMedia.media.mediaText, "screen"); >- }, "Values of CSSImportRule attributes"); >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize-expected.txt >deleted file mode 100644 >index 04e11aa7e9643e2b3b8f696e36b9fb9e396b7449..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSStyleDeclaration cssText serializes declaration blocks. >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize.html >deleted file mode 100644 >index 27479f026df6b9b2b419f86fcdc0da001ffcbe5b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize.html >+++ /dev/null >@@ -1,28 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Parsing Test: getting cssText must return the result of serializing the CSS declaration blocks.</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- >- <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssText-cache.html"> >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- <div id="box"></div> >- <script> >- test(function() { >- var style = document.getElementById('box').style; >- style.left = "10px"; >- assert_equals(style.cssText, "left: 10px;"); >- style.right = "20px"; >- assert_equals(style.cssText, "left: 10px; right: 20px;"); >- }, 'CSSStyleDeclaration cssText serializes declaration blocks.'); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt >deleted file mode 100644 >index c6c1f9611ca75912c071511c65c3035e4f0f04c6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSStyleDeclaration on HTMLElement represents inline style changes >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set.html >deleted file mode 100644 >index 1fb7ccd32499bb5ee55ce49e1189d6f073212a30..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set.html >+++ /dev/null >@@ -1,37 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM: CSSStyleDeclaration on HTMLElement represents inline style changes</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- >- <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssText-cache.html"> >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- >- <div id="box"></div> >- >- <script> >- >- var style = document.getElementById('box').style; >- >- test(function(){ >- >- style.left = "10px"; >- assert_equals(style.left, "10px", 'left property set on element\'s CSSStyleDeclaration Object'); >- style.left = "20px"; >- assert_equals(style.left, "20px", 'left property set on element\'s CSSStyleDeclaration Object'); >- >- }, 'CSSStyleDeclaration on HTMLElement represents inline style changes'); >- >- </script> >- >- >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt >deleted file mode 100644 >index 4107427a1d4de19b3478028778a2ab234544afd4..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS @font-face declarations are instances of CSSFontFaceRule >-PASS The style attribute must return a CSSStyleDeclaration block >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors.html >deleted file mode 100644 >index df47d1b24aaded5f44dbfe464f878512b63f34b3..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors.html >+++ /dev/null >@@ -1,63 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Parsing Test: @font-face rules toString() as valid interfaces</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-font-face-rule"> >- >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- >- >- <style id="teststyles"> >- @font-face { >- src: url(http://foo/bar/font.ttf); >- } >- @font-face { >- font-family: STIXGeneral; >- src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf); >- unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF; >- } >- @font-face { >- font-family: MainText; >- src: url(http://example.com/font.ttf); >- font-variant: oldstyle-nums proportional-nums styleset(1,3); >- } >- >- @font-face { >- font-family: BodyText; >- src: local("HiraMaruPro-W4"); >- font-variant: proportional-width; >- font-feature-settings: "ital"; /* Latin italics within CJK text feature */ >- } >- </style> >- >- >- <script> >- var validRules = document.getElementById('teststyles').sheet.cssRules; >- >- test(function(){ >- for (var i = 0; i < validRules.length; ++i) { >- assert_equals(validRules.item(i).toString(), '[object CSSFontFaceRule]'); >- } >- }, '@font-face declarations are instances of CSSFontFaceRule') >- >- >- test(function(){ >- for (var i = 0; i < validRules.length; ++i) { >- assert_equals(validRules.item(i).style.toString(), '[object CSSStyleDeclaration]'); >- } >- }, 'The style attribute must return a CSSStyleDeclaration block') >- >- </script> >- >- >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-expected.txt >deleted file mode 100644 >index a321a09d9db06fd78ce20ecc736b48c734194fe4..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSStyleDeclaration values are represented within CSSFontFaceRule >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule.html >deleted file mode 100644 >index 06209101c38a631ad82167943fa21782e31c8ba9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule.html >+++ /dev/null >@@ -1,58 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Parsing Test: @font-face rules parsed into CSSOM CSSFontFaceRules</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-font-face-rule"> >- >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- >- >- <style id="teststyles"> >- @font-face { >- src: url(http://foo/bar/font.ttf); >- } >- @font-face { >- font-family: STIXGeneral; >- src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf); >- unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF; >- } >- @font-face { >- font-family: MainText; >- src: url(http://example.com/font.ttf); >- font-variant: oldstyle-nums proportional-nums styleset(1,3); >- } >- >- @font-face { >- font-family: BodyText; >- src: local("HiraMaruPro-W4"); >- font-variant: proportional-width; >- font-feature-settings: "ital"; /* Latin italics within CJK text feature */ >- } >- </style> >- >- >- <script> >- var validRules = document.getElementById('teststyles').sheet.cssRules; >- >- test(function(){ >- >- assert_equals(validRules[0].style.src, 'url(http://foo/bar/font.ttf)'); >- assert_equals(validRules[1].style.fontFamily, 'STIXGeneral'); >- >- /* unimplemented @font-face properties are not represented in CSSOM */ >- >- }, 'CSSStyleDeclaration values are represented within CSSFontFaceRule') >- >- </script> >- >- >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder-expected.txt >deleted file mode 100644 >index c89a92434a195f6671bbf86f0cfea92714dad88b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder-expected.txt >+++ /dev/null >@@ -1,9 +0,0 @@ >- >-PASS Type of #s-0 is expected to be namespace rule >-PASS Type of #s-1 is expected to be @import rule >-PASS Type of #s-2 is expected to be style rule >-PASS Type of #s-3 is expected to be style rule >-PASS Type of #s-4 is expected to be @font-face rule >-PASS Type of #s-5 is expected to be media rule >-PASS Type of #s-6 is expected to be page rule >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder.html >deleted file mode 100644 >index 19aab35357ce1c52080c69dcba4cf2e885c36a1a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder.html >+++ /dev/null >@@ -1,75 +0,0 @@ >-<!doctype html> >-<head> >- <title>CSS OM: CSS Rule Types and Order</title> >- <link rel="help" href="https://drafts.csswg.org/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="Testing Serialization of Style Rules"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style id="s-0"> >- @namespace svg "http://www.w3.org/2000/svg"; >- </style> >- <style id="s-1"> >- @import url('main.css'); >- </style> >- <style id="s-2"> >- h1 { background: indianred; } >- </style> >- <style id="s-3"> >- @namespace svg "http://www.w3.org/2000/svg"; >- svg|a { color: white; } >- </style> >- <style id="s-4"> >- @font-face { >- font-family: 'Megalopolis'; >- src: url('fonts/megalopolisextra-webfont.eot'); >- src: url('fonts/megalopolisextra-webfont.eot?#iefix') format('embedded-opentype'), >- url('fonts/megalopolisextra-webfont.woff') format('woff'), >- url('fonts/megalopolisextra-webfont.ttf') format('truetype'), >- url('fonts/megalopolisextra-webfont.svg#MEgalopolisExtraRegular') format('svg'); >- font-weight: normal; >- font-style: normal; >- } >- </style> >- <style id="s-5"> >- @media (min-width: 200px) { >- h1 { background: aliceblue; } >- } >- </style> >- <style id="s-6"> >- @page :first { >- h1 { color: #444; } >- } >- </style> >-</head> >-<body> >- <div id="log"></div> >- <script type="text/javascript"> >- "use strict"; >- >- var stylesheets = document.styleSheets; >- >- var expectedOrderOfTypes = [10, 3, 1, 1, 5, 4, 6]; >- >- var typesText = { >- 1: 'style rule', >- 3: '@import rule', >- 4: 'media rule', >- 5: '@font-face rule', >- 6: 'page rule', >- 10: 'namespace rule' >- }; >- >- for (var i = 0; i < stylesheets.length; i++) { >- test( function () { >- if (i === 3) { >- var cssType = stylesheets[i].cssRules[1].type; >- } else { >- var cssType = stylesheets[i].cssRules[0].type; >- } >- assert_equals(typesText[cssType], typesText[expectedOrderOfTypes[i]]); >- }, 'Type of #s-' + i + ' is expected to be ' + typesText[expectedOrderOfTypes[i]]); >- } >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt >deleted file mode 100644 >index 97663b57a7e2742c329a59e09d84d91f05e7765c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand-expected.txt >+++ /dev/null >@@ -1,78 +0,0 @@ >- >-PASS shorthand font can be set with setProperty >-PASS shorthand font can be removed with removeProperty >-PASS shorthand font can be set with setProperty and priority !important >-PASS shorthand font can be removed with removeProperty even when set with !important >-PASS shorthand border-top can be set with setProperty >-PASS shorthand border-top can be removed with removeProperty >-PASS shorthand border-top can be set with setProperty and priority !important >-PASS shorthand border-top can be removed with removeProperty even when set with !important >-PASS shorthand border-right can be set with setProperty >-PASS shorthand border-right can be removed with removeProperty >-PASS shorthand border-right can be set with setProperty and priority !important >-PASS shorthand border-right can be removed with removeProperty even when set with !important >-PASS shorthand border-bottom can be set with setProperty >-PASS shorthand border-bottom can be removed with removeProperty >-PASS shorthand border-bottom can be set with setProperty and priority !important >-PASS shorthand border-bottom can be removed with removeProperty even when set with !important >-PASS shorthand border-left can be set with setProperty >-PASS shorthand border-left can be removed with removeProperty >-PASS shorthand border-left can be set with setProperty and priority !important >-PASS shorthand border-left can be removed with removeProperty even when set with !important >-PASS shorthand border can be set with setProperty >-PASS shorthand border can be removed with removeProperty >-PASS shorthand border can be set with setProperty and priority !important >-PASS shorthand border can be removed with removeProperty even when set with !important >-PASS shorthand border-color can be set with setProperty >-PASS shorthand border-color can be removed with removeProperty >-PASS shorthand border-color can be set with setProperty and priority !important >-PASS shorthand border-color can be removed with removeProperty even when set with !important >-PASS shorthand border-style can be set with setProperty >-PASS shorthand border-style can be removed with removeProperty >-PASS shorthand border-style can be set with setProperty and priority !important >-PASS shorthand border-style can be removed with removeProperty even when set with !important >-PASS shorthand border-width can be set with setProperty >-PASS shorthand border-width can be removed with removeProperty >-PASS shorthand border-width can be set with setProperty and priority !important >-PASS shorthand border-width can be removed with removeProperty even when set with !important >-PASS shorthand background-position can be set with setProperty >-PASS shorthand background-position can be removed with removeProperty >-PASS shorthand background-position can be set with setProperty and priority !important >-PASS shorthand background-position can be removed with removeProperty even when set with !important >-PASS shorthand background-repeat can be set with setProperty >-PASS shorthand background-repeat can be removed with removeProperty >-PASS shorthand background-repeat can be set with setProperty and priority !important >-PASS shorthand background-repeat can be removed with removeProperty even when set with !important >-PASS shorthand border-spacing can be set with setProperty >-PASS shorthand border-spacing can be removed with removeProperty >-PASS shorthand border-spacing can be set with setProperty and priority !important >-PASS shorthand border-spacing can be removed with removeProperty even when set with !important >-PASS shorthand list-style can be set with setProperty >-PASS shorthand list-style can be removed with removeProperty >-PASS shorthand list-style can be set with setProperty and priority !important >-PASS shorthand list-style can be removed with removeProperty even when set with !important >-PASS shorthand margin can be set with setProperty >-PASS shorthand margin can be removed with removeProperty >-PASS shorthand margin can be set with setProperty and priority !important >-PASS shorthand margin can be removed with removeProperty even when set with !important >-PASS shorthand outline can be set with setProperty >-PASS shorthand outline can be removed with removeProperty >-PASS shorthand outline can be set with setProperty and priority !important >-PASS shorthand outline can be removed with removeProperty even when set with !important >-PASS shorthand padding can be set with setProperty >-PASS shorthand padding can be removed with removeProperty >-PASS shorthand padding can be set with setProperty and priority !important >-PASS shorthand padding can be removed with removeProperty even when set with !important >-PASS shorthand background can be set with setProperty >-PASS shorthand background can be removed with removeProperty >-PASS shorthand background can be set with setProperty and priority !important >-PASS shorthand background can be removed with removeProperty even when set with !important >-PASS shorthand overflow can be set with setProperty >-PASS shorthand overflow can be removed with removeProperty >-PASS shorthand overflow can be set with setProperty and priority !important >-PASS shorthand overflow can be removed with removeProperty even when set with !important >-PASS shorthand border-radius can be set with setProperty >-PASS shorthand border-radius can be removed with removeProperty >-PASS shorthand border-radius can be set with setProperty and priority !important >-PASS shorthand border-radius can be removed with removeProperty even when set with !important >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand.html >deleted file mode 100644 >index 4c0f9a2f9392bd8e85c2d092db382fcc0cc06c2e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand.html >+++ /dev/null >@@ -1,77 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM: CSSStyleDeclaration (set|remove)PropertyValue sets/removes shorthand properties</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- >- <link rel="source" href="http://trac.webkit.org/export/120528/trunk/LayoutTests/fast/css/cssom-remove-shorthand-property.html"> >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- >- <div id="box"></div> >- >- <script> >- shorthandProperties = [ >- "font", >- "border-top", >- "border-right", >- "border-bottom", >- "border-left", >- "border", >- "border-color", >- "border-style", >- "border-width", >- "background-position", >- "background-repeat", >- "border-spacing", >- "list-style", >- "margin", >- "outline", >- "padding", >- "background", >- "overflow", >- "border-radius" >- ]; >- >- element = document.createElement('span'); >- >- function canSetProperty(propertyName, priority) { >- element.style.setProperty(propertyName, 'initial', priority); >- return element.style.getPropertyValue(propertyName) == 'initial'; >- } >- >- function canRemoveProperty(propertyName) { >- element.style.removeProperty(propertyName); >- return element.style.getPropertyValue(propertyName) != 'initial'; >- } >- >- for (i = 0; i < shorthandProperties.length; ++i) { >- var propertyName = shorthandProperties[i]; >- >- test(function(){ >- assert_true(canSetProperty(propertyName, ''), 'can setPropertyValue with shorthand'); >- }, 'shorthand ' + propertyName + ' can be set with setProperty'); >- >- test(function(){ >- assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); >- }, 'shorthand ' + propertyName + ' can be removed with removeProperty'); >- >- test(function(){ >- assert_true(canSetProperty(propertyName, 'important'), 'can setPropertyValue with shorthand'); >- }, 'shorthand ' + propertyName + ' can be set with setProperty and priority !important'); >- >- test(function(){ >- assert_true(canRemoveProperty(propertyName), 'can setPropertyValue with shorthand'); >- }, 'shorthand ' + propertyName + ' can be removed with removeProperty even when set with !important'); >- >- } >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt >deleted file mode 100644 >index 81e9efeb8ac663743caa1c77f38fdfb3c9f7d229..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext-expected.txt >+++ /dev/null >@@ -1,10 +0,0 @@ >- >-PASS uppercase property >-PASS uppercase value >-PASS overwriting with invalid value >-PASS use rgb >-PASS cssText order >-PASS another cssText order (non-alphabetical order) >-PASS whitespaces in value >-PASS invalid property does not appear >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext.html >deleted file mode 100644 >index c3ad37ae2a66a06a90ab713547cb58d60fd2f5e4..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext.html >+++ /dev/null >@@ -1,102 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Test: CSSStyleDeclaration.cssText Test</title> >- <link rel="author" title="kkoichi" href="mailto:coarse.ground@gmail.com"> >- <link rel="reviewer" title="Simon Pieters" href="mailto:simonp@opera.com"><!-- 06-27-2013 --> >- <link rel="help" href="https://drafts.csswg.org/cssom-1/#dom-cssstyledeclaration-csstext"> >- <meta name="assert" content="CSS declarations is serialized as expected"> >- <meta name="flags" content="dom"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- <body> >- <div id="log"></div> >- <script> >- function newElm() { >- return document.body.appendChild(document.createElement('div')); >- } >- >- test(function(){ >- var style = newElm().style; >- style.COLOR = 'red'; >- >- assert_equals(style.cssText, ''); >- >- }, 'uppercase property'); >- >- test(function(){ >- var style = newElm().style; >- style.color = 'RED'; >- >- // https://www.w3.org/Bugs/Public/show_bug.cgi?id=29317 >- assert_any(assert_equals, style.cssText, ['color: red;', 'color: RED;']); >- >- }, 'uppercase value'); >- >- test(function(){ >- var style = newElm().style; >- >- style.color = 'red'; >- >- style.color = 'unknown color'; >- >- assert_equals(style.cssText, 'color: red;'); >- >- }, 'overwriting with invalid value'); >- >- test(function(){ >- var style = newElm().style; >- style.color = 'rgb(255, 0, 0)'; >- >- assert_equals(style.cssText, 'color: rgb(255, 0, 0);'); >- >- }, 'use rgb'); >- >- test(function(){ >- var e = newElm(); >- var style = e.style; >- >- style.color = 'red'; >- style.fontSize = '10pt'; >- style.fontWeight = 'bold'; >- >- assert_equals(style.cssText, 'color: red; font-size: 10pt; font-weight: bold;'); >- >- }, 'cssText order'); >- >- test(function(){ >- var e = newElm(); >- var style = e.style; >- >- style.fontWeight = 'bold'; >- style.color = 'red'; >- style.fontSize = '10pt'; >- >- assert_equals(style.cssText, 'font-weight: bold; color: red; font-size: 10pt;'); >- >- }, 'another cssText order (non-alphabetical order)'); >- >- test(function(){ >- var style = newElm().style; >- >- style.color = ' red'; >- style.fontSize = '10pt '; >- >- assert_equals(style.cssText, 'color: red; font-size: 10pt;'); >- >- }, 'whitespaces in value'); >- >- test(function(){ >- var style = newElm().style; >- >- style.color = 'red'; >- style.unknown = 'unknown'; >- style.fontSize = '10pt'; >- assert_equals(style.cssText, 'color: red; font-size: 10pt;'); >- >- }, 'invalid property does not appear'); >- >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt >deleted file mode 100644 >index c64766ad6509e1acc75e07a3e9705ea3f635bedf..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS HTMLElement's CSSStyleDeclaration is mutable >-PASS getComputedStyle's CSSStyleDeclaration is not mutable >-PASS StyleSheet's CSSStyleDeclaration is mutable >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability.html >deleted file mode 100644 >index 6b4c78f7190941a61904360f548003c6cc6c9ec4..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability.html >+++ /dev/null >@@ -1,69 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM: CSSStyleDeclaration is mutable and immutable in various settings</title> >- <link rel="author" title="Paul Irish" href="mailto:paul.irish@gmail.com"> >- <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstyledeclaration-interface"> >- >- <meta name="flags" content="dom"> >- >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- </head> >- >- <body> >- <div id="log"></div> >- <div id="box"></box> >- <div id="box2"></box> >- <style id="teststyles"> >- #box2 { width: 15px; } >- </style> >- <script> >- >- test(function(){ >- var elem = document.getElementById('box'); >- >- elem.style.width = '10px'; >- assert_equals(elem.style.width, '10px', 'setting via style property'); >- elem.style.width = ''; >- >- elem.style.cssText = 'width: 10px'; >- assert_equals(elem.style.width, '10px', 'setting via cssText'); >- elem.style.width = ''; >- >- }, 'HTMLElement\'s CSSStyleDeclaration is mutable') >- >- >- test(function(){ >- var elem = document.getElementById('box'); >- var style = getComputedStyle(elem, 'width'); >- >- assert_throws('NO_MODIFICATION_ALLOWED_ERR', function(){ >- style.width = '10px'; >- }); >- >- }, 'getComputedStyle\'s CSSStyleDeclaration is not mutable') >- >- >- test(function(){ >- >- var style = document.getElementById('teststyles').sheet.cssRules[0].style; >- >- assert_equals(style.width, '15px', 'width value is correct'); >- >- style.width = '25px'; >- >- assert_equals(style.width, '25px', 'width value is mutable'); >- >- var gCSstyle = getComputedStyle(document.getElementById('box2')); >- >- assert_equals(gCSstyle.width, '25px', 'styleSheet change is live and accesible via getComputedStyle'); >- >- }, 'StyleSheet\'s CSSStyleDeclaration is mutable'); >- >- >- </script> >- >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/escape-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/escape-expected.txt >deleted file mode 100644 >index 76ee47af3b06ba5398dd33d70e7313675ddd184b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/escape-expected.txt >+++ /dev/null >@@ -1,12 +0,0 @@ >- >-PASS Number of arguments >-PASS String conversion >-PASS Null bytes >-PASS Replacement character >-PASS Number prefix >-PASS Letter number prefix >-PASS Dash number prefix >-PASS Double dash prefix >-PASS Various tests >-PASS Surrogates >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/escape.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/escape.html >deleted file mode 100644 >index 115e2c86a9a0d8e1ea7465ecf5143a42e1104c85..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/escape.html >+++ /dev/null >@@ -1,98 +0,0 @@ >-<!doctype html> >-<meta charset=utf-8> >-<title>CSS#escape</title> >-<link rel=help href=https://drafts.csswg.org/cssom-1/#the-css.escape()-method> >-<script src=/resources/testharness.js></script> >-<script src=/resources/testharnessreport.js></script> >-<div id=log></div> >-<script> >-test(function() { >- assert_equals(CSS.escape.length, 1); >- assert_throws(new TypeError(), function() { CSS.escape(); }); >-}, "Number of arguments"); >- >-test(function() { >- assert_equals(CSS.escape(true), 'true'); >- assert_equals(CSS.escape(false), 'false'); >- assert_equals(CSS.escape(null), 'null'); >- assert_equals(CSS.escape(''), ''); >-}, "String conversion"); >- >-test(function() { >- assert_equals(CSS.escape('\0'), '\uFFFD'); >- assert_equals(CSS.escape('a\0'), 'a\uFFFD'); >- assert_equals(CSS.escape('\0b'), '\uFFFDb'); >- assert_equals(CSS.escape('a\0b'), 'a\uFFFDb'); >-}, "Null bytes"); >- >-test(function() { >- assert_equals(CSS.escape('\uFFFD'), '\uFFFD'); >- assert_equals(CSS.escape('a\uFFFD'), 'a\uFFFD'); >- assert_equals(CSS.escape('\uFFFDb'), '\uFFFDb'); >- assert_equals(CSS.escape('a\uFFFDb'), 'a\uFFFDb'); >-}, "Replacement character"); >- >-test(function() { >- assert_equals(CSS.escape('0a'), '\\30 a'); >- assert_equals(CSS.escape('1a'), '\\31 a'); >- assert_equals(CSS.escape('2a'), '\\32 a'); >- assert_equals(CSS.escape('3a'), '\\33 a'); >- assert_equals(CSS.escape('4a'), '\\34 a'); >- assert_equals(CSS.escape('5a'), '\\35 a'); >- assert_equals(CSS.escape('6a'), '\\36 a'); >- assert_equals(CSS.escape('7a'), '\\37 a'); >- assert_equals(CSS.escape('8a'), '\\38 a'); >- assert_equals(CSS.escape('9a'), '\\39 a'); >-}, "Number prefix"); >- >-test(function() { >- assert_equals(CSS.escape('a0b'), 'a0b'); >- assert_equals(CSS.escape('a1b'), 'a1b'); >- assert_equals(CSS.escape('a2b'), 'a2b'); >- assert_equals(CSS.escape('a3b'), 'a3b'); >- assert_equals(CSS.escape('a4b'), 'a4b'); >- assert_equals(CSS.escape('a5b'), 'a5b'); >- assert_equals(CSS.escape('a6b'), 'a6b'); >- assert_equals(CSS.escape('a7b'), 'a7b'); >- assert_equals(CSS.escape('a8b'), 'a8b'); >- assert_equals(CSS.escape('a9b'), 'a9b'); >-}, "Letter number prefix"); >- >-test(function() { >- assert_equals(CSS.escape('-0a'), '-\\30 a'); >- assert_equals(CSS.escape('-1a'), '-\\31 a'); >- assert_equals(CSS.escape('-2a'), '-\\32 a'); >- assert_equals(CSS.escape('-3a'), '-\\33 a'); >- assert_equals(CSS.escape('-4a'), '-\\34 a'); >- assert_equals(CSS.escape('-5a'), '-\\35 a'); >- assert_equals(CSS.escape('-6a'), '-\\36 a'); >- assert_equals(CSS.escape('-7a'), '-\\37 a'); >- assert_equals(CSS.escape('-8a'), '-\\38 a'); >- assert_equals(CSS.escape('-9a'), '-\\39 a'); >-}, "Dash number prefix"); >- >-test(function() { >- assert_equals(CSS.escape('--a'), '--a'); >-}, "Double dash prefix"); >- >-test(function() { >- assert_equals(CSS.escape('\x01\x02\x1E\x1F'), '\\1 \\2 \\1e \\1f '); >- >- assert_equals(CSS.escape('\x80\x2D\x5F\xA9'), '\x80\x2D\x5F\xA9'); >- assert_equals(CSS.escape('\x7F\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F'), '\\7f \x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F'); >- assert_equals(CSS.escape('\xA0\xA1\xA2'), '\xA0\xA1\xA2'); >- assert_equals(CSS.escape('a0123456789b'), 'a0123456789b'); >- assert_equals(CSS.escape('abcdefghijklmnopqrstuvwxyz'), 'abcdefghijklmnopqrstuvwxyz'); >- assert_equals(CSS.escape('ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'); >- >- assert_equals(CSS.escape('\x20\x21\x78\x79'), '\\ \\!xy'); >-}, "Various tests"); >- >-test(function() { >- // astral symbol (U+1D306 TETRAGRAM FOR CENTRE) >- assert_equals(CSS.escape('\uD834\uDF06'), '\uD834\uDF06'); >- // lone surrogates >- assert_equals(CSS.escape('\uDF06'), '\uDF06'); >- assert_equals(CSS.escape('\uD834'), '\uD834'); >-}, "Surrogates"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt >deleted file mode 100644 >index e68727308424386b9f59df5bc06d8c898238838a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt >+++ /dev/null >@@ -1,9 +0,0 @@ >- >-PASS Resolution of width is correct for ::before and ::after pseudo-elements >-PASS Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements >-PASS Resolution of nonexistent pseudo-element styles >-FAIL Resolution of pseudo-element styles in display: none elements assert_equals: Pseudo-styles of display: none elements should be correct expected "\"Foo\"" but got "Foo" >-PASS Item-based blockification of pseudo-elements >-FAIL Item-based blockification of nonexistent pseudo-elements assert_equals: Pseudo-styles of display: flex elements should get blockified expected "block" but got "inline" >-PASS display: contents on pseudo-elements >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html >deleted file mode 100644 >index ec7a863a94c072a975e97e56fd8299dd0a2219e0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html >+++ /dev/null >@@ -1,112 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title>CSSOM: Correct resolution of resolved value for display-affected pseudo-elements</title> >-<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> >-<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values"> >-<link rel="author" title="Emilio Cobos Ãlvarez" href="mailto:emilio@crisal.io"> >-<script src=/resources/testharness.js></script> >-<script src=/resources/testharnessreport.js></script> >-<style> >-#test { width: 100px; } >- >-#contents { >- display: contents; >- border: 10px solid red; >-} >- >-#test::before, >-#test::after, >-#contents::before, >-#contents::after, >-#flex::before, >-#flex::after { >- content: " "; >- width: 50%; >- height: 10px; >- display: block; >-} >-#none { >- display: none; >-} >-#none::before, >-#none::after { >- content: "Foo"; >-} >-#flex { >- display: flex; >-} >-#flex-no-pseudo { >- display: flex; >-} >-#contents-pseudos::before, >-#contents-pseudos::after { >- display: contents; >- content: "foo"; >- position: absolute; >-} >-</style> >-<div id="test"> >- <div id="contents"></div> >- <div id="none"></div> >- <div id="flex"></div> >- <div id="flex-no-pseudo"></div> >- <div id="contents-pseudos"></div> >-</div> >-<script> >-test(function() { >- var div = document.getElementById('test'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(div, pseudo).width, "50px"); >- }); >-}, "Resolution of width is correct for ::before and ::after pseudo-elements"); >-test(function() { >- var contents = document.getElementById('contents'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(contents, pseudo).width, "50px"); >- }); >-}, "Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements"); >-test(function() { >- var has_no_pseudos = document.body; >- has_no_pseudos.style.position = "relative"; >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(has_no_pseudos, pseudo).position, "static", >- "Nonexistent " + pseudo + " pseudo-element shouldn't claim to have " + >- "the same style as the originating element"); >- assert_equals(getComputedStyle(has_no_pseudos, pseudo).width, "auto", >- "Nonexistent " + pseudo + " pseudo-element shouldn't claim to have " + >- "definite size"); >- }); >-}, "Resolution of nonexistent pseudo-element styles"); >-test(function() { >- var none = document.getElementById('none'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(none, pseudo).content, "\"Foo\"", >- "Pseudo-styles of display: none elements should be correct"); >- }); >-}, "Resolution of pseudo-element styles in display: none elements"); >-test(function() { >- var flex = document.getElementById('flex'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(flex, pseudo).display, "block", >- "Pseudo-styles of display: flex elements should get blockified"); >- }); >-}, "Item-based blockification of pseudo-elements"); >-test(function() { >- var flexNoPseudo = document.getElementById('flex-no-pseudo'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(flexNoPseudo, pseudo).display, "block", >- "Pseudo-styles of display: flex elements should get blockified"); >- }); >-}, "Item-based blockification of nonexistent pseudo-elements"); >-test(function() { >- var contentsPseudos = document.getElementById('contents-pseudos'); >- [":before", ":after"].forEach(function(pseudo) { >- assert_equals(getComputedStyle(contentsPseudos, pseudo).display, "contents", >- "display: contents in " + pseudo + " should get reflected on CSSOM"); >- assert_equals(getComputedStyle(contentsPseudos, pseudo).width, "auto", >- pseudo + " with display: contents should have no box"); >- assert_equals(getComputedStyle(contentsPseudos, pseudo).position, "absolute", >- "display: contents in " + pseudo + " should reflect other non-inherited properties in CSSOM"); >- }); >-}, "display: contents on pseudo-elements"); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/historical-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/historical-expected.txt >deleted file mode 100644 >index f4341dea16ad0477ac703201003c8e04591742fe..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/historical-expected.txt >+++ /dev/null >@@ -1,13 +0,0 @@ >- >-PASS Historical Document member: selectedStyleSheetSet >-PASS Historical Document member: lastStyleSheetSet >-PASS Historical Document member: preferredStyleSheetSet >-PASS Historical Document member: styleSheetSets >-PASS Historical Document member: enableStyleSheetsForSet >-PASS Historical Document member: selectedStylesheetSet >-PASS Historical Document member: preferredStylesheetSet >-PASS Historical Element member: cascadedStyle >-PASS Historical Element member: defaultStyle >-PASS Historical Element member: rawComputedStyle >-PASS Historical Element member: usedStyle >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/historical.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/historical.html >deleted file mode 100644 >index ddd264c891957a91e5ad17cf9acdb414284f73c5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/historical.html >+++ /dev/null >@@ -1,36 +0,0 @@ >-<!DOCTYPE html> >-<title>Historical features</title> >-<link rel="help" href="https://drafts.csswg.org/cssom/#changes-from-5-december-2013"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<div id=log></div> >-<script> >-[ >- "selectedStyleSheetSet", >- "lastStyleSheetSet", >- "preferredStyleSheetSet", >- "styleSheetSets", >- "enableStyleSheetsForSet", >- "selectedStylesheetSet", >- "preferredStylesheetSet", >-].forEach(function(name) { >- test(function() { >- assert_false(name in document); >- >- var doc = document.implementation.createDocument(null, null, null); >- assert_false(name in doc); >- }, "Historical Document member: " + name); >-}); >- >-[ >- "cascadedStyle", >- "defaultStyle", >- "rawComputedStyle", >- "usedStyle", >-].forEach(function(name) { >- test(function() { >- assert_false(name in document.body); >- assert_false(name in document.createElement("test")); >- }, "Historical Element member: " + name); >-}); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001-expected.txt >deleted file mode 100644 >index f14c059a6ae2a563358f88951143b173e9266043..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS margin_20px_20px >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001.html >deleted file mode 100644 >index ca53e503297cdb7401c494d4f124ba33eec1eaa2..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001.html >+++ /dev/null >@@ -1,28 +0,0 @@ >-<!doctype html> >-<head> >- <title>CSS OM: CSS Values</title> >- <link rel="author" title="Divya Manian" href="mailto:manian@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-values"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="The style value should be serialized to margin: 20px;"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >-</head> >-<body> >- <div id="cssomtestElm"></div> >- <div id="log"></div> >- <script> >- var testElm = document.getElementById('cssomtestElm'); >- // Set the transform >- document.getElementById('cssomtestElm').style.margin = "20px 20px 20px 20px"; >- >- // Verify that the transform was set as expected >- test(function() {assert_equals( >- document.getElementById('cssomtestElm').style.cssText, //Actual >- "margin: 20px;", //Expected >- "Margin should be serialized as 'margin: 20px;'")}, //Description >- "margin_20px_20px"); //name >- </script> >- </body> >- </html> >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002-expected.txt >deleted file mode 100644 >index ba0a4e600e87f9853324191b7263f2abe5c28d76..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002-expected.txt >+++ /dev/null >@@ -1,21 +0,0 @@ >- >-PASS border is expected to be border: 1px; >-PASS border is expected to be border: 1px solid red; >-PASS border is expected to be border: 1px red; >-PASS border is expected to be border: red; >-PASS border is expected to be border: 1px; (#2) >-PASS border is expected to be border-width: 1px 2px 3px 4px; >-PASS border is expected to be border-width: 2px 1px 1px; >-PASS border is expected to be border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px !important; >-PASS border is expected to be border-width: 1px; border-top-color: red; >-PASS border is expected to be border: dotted; >-PASS border is expected to be border-width: 1px; >-FAIL overflow is expected to be overflow: scroll hidden; assert_equals: expected "overflow: scroll hidden;" but got "overflow-x: scroll; overflow-y: hidden;" >-PASS overflow is expected to be overflow: scroll; >-PASS outline is expected to be outline: blue dotted 2px; >-PASS margin is expected to be margin: 1px 2px 3px 4px; >-PASS list is expected to be list-style: circle inside; >-PASS list is expected to be list-style-type: lower-alpha; >-PASS font-family is expected to be font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold; >-PASS padding is expected to be padding: 1px 2px 3px 4px; >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002.html >deleted file mode 100644 >index 29ec3a90a11a9858bd91c09e6b11a75b02cd21b0..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002.html >+++ /dev/null >@@ -1,79 +0,0 @@ >-<!doctype html> >-<head> >- <title>CSS OM: CSS Values</title> >- <link rel="author" title="Divya Manian" href="mailto:manian@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-values"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="Testing Serialization of Shorthand Values"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >-</head> >-<body> >- <div id="cssomtestElm"></div> >- <div id="log"></div> >- <script> >- var tests = { >- 'border': [ >- ['border: 1px; border-top: 1px;', 'border: 1px;'], >- ['border: 1px solid red;', 'border: 1px solid red;'], >- ['border: 1px red;', 'border: 1px red;'], >- ['border: red;', 'border: red;'], >- ['border-top: 1px; border-right: 1px; border-bottom: 1px; border-left: 1px;', 'border: 1px;', ' (#2)'], >- ['border-top: 1px; border-right: 2px; border-bottom: 3px; border-left: 4px;', 'border-width: 1px 2px 3px 4px;'], >- ['border: 1px; border-top: 2px;', 'border-width: 2px 1px 1px;'], >- ['border: 1px; border-top: 1px !important;', >- 'border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px !important;'], >- >- ['border: 1px; border-top-color: red;', 'border-width: 1px; border-top-color: red;'], >- ['border: solid; border-style: dotted', 'border: dotted;'], >- ['border-width: 1px;', 'border-width: 1px;'] >- ], >- >- 'overflow': [ >- ['overflow-x: scroll; overflow-y: hidden;', 'overflow: scroll hidden;'], >- ['overflow-x: scroll; overflow-y: scroll;', 'overflow: scroll;'] >- ], >- 'outline': [ >- ['outline-width: 2px; outline-style: dotted; outline-color: blue;', 'outline: blue dotted 2px;'] >- ], >- 'margin': [ >- ['margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;', 'margin: 1px 2px 3px 4px;'] >- ], >- 'list': [ >- ['list-style-type: circle; list-style-position: inside; list-style-image: initial;', 'list-style: circle inside;'], >- ['list-style-type: lower-alpha;', 'list-style-type: lower-alpha;'] >- ], >- 'font-family': [ >- ['font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;', >- 'font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;'] >- ], >- 'padding': [ >- ['padding-top: 1px; padding-right: 2px; padding-bottom: 3px; padding-left: 4px;', 'padding: 1px 2px 3px 4px;'], >- ] >- } >- >- var results = {}; >- >- var testElm = document.getElementById('cssomtestElm'); >- for (var test in tests) { >- if(tests.hasOwnProperty(test)) { >- results[test] = []; >- var propertyTests = tests[test]; >- >- for (i = 0; i < propertyTests.length; i++) { >- document.getElementById('cssomtestElm').setAttribute('style', propertyTests[i][0]); >- var titleSuffix = propertyTests[i][2] || ""; >- results[test].push([ >- test + ' is expected to be ' + propertyTests[i][1] + titleSuffix, >- document.getElementById('cssomtestElm').style.cssText, >- propertyTests[i][1] >- ]); >- } >- >- generate_tests(assert_equals, results[test]); >- } >- } >- >- </script> >- </body> >- </html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001-expected.txt >deleted file mode 100644 >index 17509c87bdf6b818715e14ab1b428dff10e0031c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001-expected.txt >+++ /dev/null >@@ -1,7 +0,0 @@ >- >-FAIL CSSStyleDeclaration_accessible assert_own_property: expected property "style" missing >-FAIL read Can't find variable: declaration >-FAIL csstext_write Can't find variable: declaration >-FAIL property_write Can't find variable: declaration >-FAIL shorthand_properties Can't find variable: declaration >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001.html >deleted file mode 100644 >index 3a9eebf7e723322aa492eb1eb5f1f07c99460f4d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001.html >+++ /dev/null >@@ -1,100 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: Inline CSSStyleDeclaration</title> >- <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#elementcssinlinestyle"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="Inline CSSStyleDeclaration is properly initialized and can be modified through its interface"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- </head> >- <script id="metadata_cache">/* >-{ >- "CSSStyleDeclaration_accessible": { "assert": "Can access CSSStyleDeclaration through style property" }, >- "read": { "assert": "initial property values are correct" }, >- "csstext_write": { >- "assert": ["setting cssText adds new properties", >- "setting cssText removes existing properties", >- "properties set through cssText are reflected in the computed style"] >- }, >- "property_write": { >- "assert": ["setProperty adds new properties", >- "properties set through setProperty are reflected in the computed style"] >- }, >- "shorthand_properties": { "assert": "shorthand property is expanded" } >-} >-*/</script> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <div id="test" style="margin-left: 5px;"></div> >- <script type="text/javascript"> >- test(function() { >- var test = document.getElementById("test"); >- assert_own_property(test, "style"); >- assert_readonly(test, "style"); >- declaration = test.style; >- }, "CSSStyleDeclaration_accessible", { >- assert: "Can access CSSStyleDeclaration through style property" >- }); >- >- test(function() { >- assert_regexp_match(declaration.cssText, /margin-left: 5px;\s*/); >- assert_equals(declaration.getPropertyValue("margin-left"), "5px"); >- }, "read", { >- assert: "initial property values are correct" >- }); >- >- test(function() { >- declaration.cssText = "margin-left: 10px; padding-left: 10px;"; >- assert_regexp_match(declaration.cssText, /margin-left: 10px;\s+padding-left: 10px;\s+/); >- assert_equals(declaration.length, 2); >- assert_equals(declaration.item(0), "margin-left"); >- assert_equals(declaration.item(1), "padding-left"); >- assert_equals(declaration.getPropertyValue("margin-left"), "10px"); >- assert_equals(declaration.getPropertyValue("padding-left"), "10px"); >- >- var computedStyle = window.getComputedStyle(document.getElementById("test")); >- assert_equals(computedStyle.getPropertyValue("margin-left"), "10px"); >- assert_equals(computedStyle.getPropertyValue("padding-left"), "10px"); >- }, "csstext_write", { >- assert: [ "setting cssText adds new properties", >- "setting cssText removes existing properties", >- "properties set through cssText are reflected in the computed style"] >- }); >- >- test(function() { >- while(declaration.length > 0) >- declaration.removeProperty(declaration.item(0)); >- declaration.setProperty("margin-left", "15px"); >- declaration.setProperty("padding-left", "15px"); >- >- assert_equals(declaration.length, 2); >- assert_equals(declaration.item(0), "margin-left"); >- assert_equals(declaration.item(1), "padding-left"); >- assert_equals(declaration.getPropertyValue("margin-left"), "15px"); >- assert_equals(declaration.getPropertyValue("padding-left"), "15px"); >- >- var computedStyle = window.getComputedStyle(document.getElementById("test")); >- assert_equals(computedStyle.getPropertyValue("margin-left"), "15px"); >- assert_equals(computedStyle.getPropertyValue("padding-left"), "15px"); >- }, "property_write", { >- assert: [ "setProperty adds new properties", >- "properties set through setProperty are reflected in the computed style"] >- }); >- >- test(function() { >- while(declaration.length > 0) >- declaration.removeProperty(declaration.item(0)); >- declaration.cssText = "margin: 20px"; >- assert_equals(declaration.getPropertyValue("margin-top"), "20px"); >- assert_equals(declaration.getPropertyValue("margin-right"), "20px"); >- assert_equals(declaration.getPropertyValue("margin-bottom"), "20px"); >- assert_equals(declaration.getPropertyValue("margin-left"), "20px"); >- }, "shorthand_properties", { >- assert: "shorthand property is expanded" >- }); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index-expected.txt >deleted file mode 100644 >index c418eec7be3c481edd22a5086a723e274789f1a2..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS inserRule with charset and omitted index argument >-PASS insertRule with charset and undefined index argument >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html >deleted file mode 100644 >index b94dc11afae7c4d724415ca182c0f1136be74895..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html >+++ /dev/null >@@ -1,32 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM StyleSheet insertRule with charset and omitted second argument</title> >- <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >- <link rel="help" href="https://drafts.csswg.org/cssom/"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <link rel="stylesheet" type="text/css" href="support/import-charset.css" id="linkElement" > >-</head> >-<body> >-<div id="log"></div> >-<script type="text/javascript"> >- var sheet = document.getElementById("linkElement").sheet; >- test(function() { >- assert_equals(sheet.cssRules.length, 0); >- sheet.insertRule("p { color: green; }"); >- assert_equals(sheet.cssRules.length, 1); >- assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >- }, "inserRule with charset and omitted index argument"); >- >- test(function() { >- assert_equals(sheet.cssRules.length, 1); >- sheet.insertRule("p { color: yellow; }", undefined); >- assert_equals(sheet.cssRules.length, 2); >- assert_equals(sheet.cssRules.item(0).cssText, "p { color: yellow; }"); >- }, "insertRule with charset and undefined index argument"); >-</script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index-expected.txt >deleted file mode 100644 >index 3377dee2642c24a2a1d176550c457e0c88f562e9..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS inserRule with import and omitted index argument >-PASS insertRule with import and undefined index argument >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html >deleted file mode 100644 >index c97d3949487026b84c60cf5d3681813f4691a7e2..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html >+++ /dev/null >@@ -1,33 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM StyleSheet insertRule with import and omitted second argument</title> >- <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >- <link rel="help" href="https://drafts.csswg.org/cssom/"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement"> >- @import url("support/a-green.css"); >- </style> >-</head> >-<body> >-<div id="log"></div> >-<script type="text/javascript"> >- var sheet = document.getElementById("styleElement").sheet; >- test(function() { >- assert_equals(sheet.cssRules.length, 1); >- assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); }); >- assert_equals(sheet.cssRules.length, 1); >- }, "inserRule with import and omitted index argument"); >- >- test(function() { >- assert_equals(sheet.cssRules.length, 1); >- assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: yellow; }", undefined); }); >- assert_equals(sheet.cssRules.length, 1); >- assert_equals(sheet.cssRules.item(0).cssText, "@import url(\"support/a-green.css\");"); >- }, "insertRule with import and undefined index argument"); >-</script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt >deleted file mode 100644 >index b91fb4e5de93502265928af03684e9d3eb422808..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS inserRule with namespace and omitted index argument >-PASS insertRule with namespace and undefined index argument >-PASS inserRule with namespace and omitted index argument should insert import >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html >deleted file mode 100644 >index 8a3315d860611db3da89054e02dad9e0f4674dd2..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html >+++ /dev/null >@@ -1,40 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM StyleSheet insertRule with namespace and omitted second argument</title> >- <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >- <link rel="help" href="https://drafts.csswg.org/cssom/"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement"> >- @namespace svg url(http://servo); >- @namespace url(http://servo1); >- @namespace svg url("http://servo2"); >- </style> >-</head> >-<body> >-<div id="log"></div> >-<script type="text/javascript"> >- var sheet = document.getElementById("styleElement").sheet; >- test(function() { >- assert_equals(sheet.cssRules.length, 3); >- assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: green; }"); }); >- assert_equals(sheet.cssRules.length, 3); >- }, "inserRule with namespace and omitted index argument"); >- >- test(function() { >- assert_equals(sheet.cssRules.length, 3); >- assert_throws("HierarchyRequestError", function() { sheet.insertRule("p { color: yellow; }", undefined); }); >- assert_equals(sheet.cssRules.length, 3); >- }, "insertRule with namespace and undefined index argument"); >- >- test(function() { >- assert_equals(sheet.cssRules.length, 3); >- sheet.insertRule("@import url(\"support/a-green.css\");"); >- assert_equals(sheet.cssRules.length, 4); >- }, "inserRule with namespace and omitted index argument should insert import"); >-</script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index-expected.txt >deleted file mode 100644 >index b4107613a781629675dd60204b25acecb5044664..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS inserRule with omitted index argument >-PASS insertRule with undefined index argument >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index.html >deleted file mode 100644 >index c9704b7475a5fe2b9959e31c547a480928b956d5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index.html >+++ /dev/null >@@ -1,35 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM StyleSheet insertRule omitted second argument</title> >- <link rel="author" title="Sendil Kumar N" href="mailto:sendilkumarn.opensource@gmail.com"> >- <link rel="help" href="https://drafts.csswg.org/cssom/"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement"> >- /* An initial style rule to test where the new rule is inserted relative to this one */ >- nosuchelement { color: red; } >- </style> >-</head> >-<body> >-<div id="log"></div> >-<script type="text/javascript"> >- var sheet = document.getElementById("styleElement").sheet; >- test(function() { >- assert_equals(sheet.cssRules.length, 1); >- sheet.insertRule("p { color: green; }"); >- assert_equals(sheet.cssRules.length, 2); >- assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >- }, "inserRule with omitted index argument"); >- >- test(function() { >- assert_equals(sheet.cssRules.length, 2); >- sheet.insertRule("p { color: yellow; }", undefined); >- assert_equals(sheet.cssRules.length, 3); >- assert_equals(sheet.cssRules.item(0).cssText, "p { color: yellow; }"); >- }, "insertRule with undefined index argument"); >-</script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces-expected.txt >deleted file mode 100644 >index f78c8c728bfa80cbf8f0bfb3304eda6c02d0b70a..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces-expected.txt >+++ /dev/null >@@ -1,481 +0,0 @@ >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CONSOLE MESSAGE: line 331: callback not yet supported >-CSSOM IDL tests >- >- >-PASS Test driver >-PASS HTMLElement interface: attribute style >-PASS Unscopable handled correctly for style property on HTMLElement >-PASS HTMLElement interface: style_element must inherit property "style" with the proper type >-PASS HTMLElement interface: document.createElement('unknownelement') must inherit property "style" with the proper type >-PASS HTMLLinkElement interface: attribute sheet >-PASS Unscopable handled correctly for sheet property on HTMLLinkElement >-PASS HTMLStyleElement interface: attribute sheet >-PASS Unscopable handled correctly for sheet property on HTMLStyleElement >-PASS Window interface: operation getComputedStyle(Element, CSSOMString) >-PASS Unscopable handled correctly for getComputedStyle(Element, CSSOMString) on Window >-PASS Window interface: window must inherit property "getComputedStyle(Element, CSSOMString)" with the proper type >-PASS Window interface: calling getComputedStyle(Element, CSSOMString) on window with too few arguments must throw TypeError >-PASS WorkerGlobalScope interface: existence and properties of interface object >-PASS DedicatedWorkerGlobalScope interface: existence and properties of interface object >-PASS SharedWorkerGlobalScope interface: existence and properties of interface object >-PASS WorkerNavigator interface: existence and properties of interface object >-PASS WorkerLocation interface: existence and properties of interface object >-PASS Document interface: attribute styleSheets >-PASS Unscopable handled correctly for styleSheets property on Document >-PASS Document interface: document must inherit property "styleSheets" with the proper type >-PASS Document interface: new Document() must inherit property "styleSheets" with the proper type >-PASS ProcessingInstruction interface: attribute sheet >-PASS Unscopable handled correctly for sheet property on ProcessingInstruction >-PASS ProcessingInstruction interface: xmlss_pi must inherit property "sheet" with the proper type >-PASS SVGElement interface: attribute style >-PASS Unscopable handled correctly for style property on SVGElement >-PASS SVGElement interface: svg_element must inherit property "style" with the proper type >-PASS MediaList interface: existence and properties of interface object >-PASS MediaList interface object length >-PASS MediaList interface object name >-FAIL MediaList interface: existence and properties of interface prototype object assert_equals: prototype of MediaList.prototype is not Array.prototype expected [] but got object "[object Object]" >-PASS MediaList interface: existence and properties of interface prototype object's "constructor" property >-PASS MediaList interface: existence and properties of interface prototype object's @@unscopables property >-PASS MediaList interface: attribute mediaText >-PASS Unscopable handled correctly for mediaText property on MediaList >-FAIL MediaList interface: stringifier assert_own_property: interface prototype object missing non-static operation expected property "toString" missing >-PASS MediaList interface: attribute length >-PASS Unscopable handled correctly for length property on MediaList >-PASS MediaList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on MediaList >-PASS MediaList interface: operation appendMedium(CSSOMString) >-PASS Unscopable handled correctly for appendMedium(CSSOMString) on MediaList >-PASS MediaList interface: operation deleteMedium(CSSOMString) >-PASS Unscopable handled correctly for deleteMedium(CSSOMString) on MediaList >-PASS MediaList must be primary interface of style_element.sheet.media >-PASS Stringification of style_element.sheet.media >-PASS MediaList interface: style_element.sheet.media must inherit property "mediaText" with the proper type >-PASS MediaList interface: style_element.sheet.media must inherit property "length" with the proper type >-PASS MediaList interface: style_element.sheet.media must inherit property "item(unsigned long)" with the proper type >-PASS MediaList interface: calling item(unsigned long) on style_element.sheet.media with too few arguments must throw TypeError >-PASS MediaList interface: style_element.sheet.media must inherit property "appendMedium(CSSOMString)" with the proper type >-PASS MediaList interface: calling appendMedium(CSSOMString) on style_element.sheet.media with too few arguments must throw TypeError >-PASS MediaList interface: style_element.sheet.media must inherit property "deleteMedium(CSSOMString)" with the proper type >-PASS MediaList interface: calling deleteMedium(CSSOMString) on style_element.sheet.media with too few arguments must throw TypeError >-PASS StyleSheet interface: existence and properties of interface object >-PASS StyleSheet interface object length >-PASS StyleSheet interface object name >-PASS StyleSheet interface: existence and properties of interface prototype object >-PASS StyleSheet interface: existence and properties of interface prototype object's "constructor" property >-PASS StyleSheet interface: existence and properties of interface prototype object's @@unscopables property >-PASS StyleSheet interface: attribute type >-PASS Unscopable handled correctly for type property on StyleSheet >-PASS StyleSheet interface: attribute href >-PASS Unscopable handled correctly for href property on StyleSheet >-PASS StyleSheet interface: attribute ownerNode >-PASS Unscopable handled correctly for ownerNode property on StyleSheet >-PASS StyleSheet interface: attribute parentStyleSheet >-PASS Unscopable handled correctly for parentStyleSheet property on StyleSheet >-PASS StyleSheet interface: attribute title >-PASS Unscopable handled correctly for title property on StyleSheet >-FAIL StyleSheet interface: attribute media assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined" >-PASS Unscopable handled correctly for media property on StyleSheet >-PASS StyleSheet interface: attribute disabled >-PASS Unscopable handled correctly for disabled property on StyleSheet >-PASS CSSStyleSheet interface: existence and properties of interface object >-PASS CSSStyleSheet interface object length >-PASS CSSStyleSheet interface object name >-PASS CSSStyleSheet interface: existence and properties of interface prototype object >-PASS CSSStyleSheet interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSStyleSheet interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSStyleSheet interface: attribute ownerRule >-PASS Unscopable handled correctly for ownerRule property on CSSStyleSheet >-PASS CSSStyleSheet interface: attribute cssRules >-PASS Unscopable handled correctly for cssRules property on CSSStyleSheet >-PASS CSSStyleSheet interface: operation insertRule(CSSOMString, unsigned long) >-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSStyleSheet >-PASS CSSStyleSheet interface: operation deleteRule(unsigned long) >-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSStyleSheet >-PASS CSSStyleSheet must be primary interface of style_element.sheet >-PASS Stringification of style_element.sheet >-PASS CSSStyleSheet interface: style_element.sheet must inherit property "ownerRule" with the proper type >-PASS CSSStyleSheet interface: style_element.sheet must inherit property "cssRules" with the proper type >-PASS CSSStyleSheet interface: style_element.sheet must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type >-PASS CSSStyleSheet interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet with too few arguments must throw TypeError >-PASS CSSStyleSheet interface: style_element.sheet must inherit property "deleteRule(unsigned long)" with the proper type >-PASS CSSStyleSheet interface: calling deleteRule(unsigned long) on style_element.sheet with too few arguments must throw TypeError >-PASS StyleSheet interface: style_element.sheet must inherit property "type" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "href" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "ownerNode" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "parentStyleSheet" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "title" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "media" with the proper type >-PASS StyleSheet interface: style_element.sheet must inherit property "disabled" with the proper type >-PASS StyleSheetList interface: existence and properties of interface object >-PASS StyleSheetList interface object length >-PASS StyleSheetList interface object name >-FAIL StyleSheetList interface: existence and properties of interface prototype object assert_equals: prototype of StyleSheetList.prototype is not Array.prototype expected [] but got object "[object Object]" >-PASS StyleSheetList interface: existence and properties of interface prototype object's "constructor" property >-PASS StyleSheetList interface: existence and properties of interface prototype object's @@unscopables property >-PASS StyleSheetList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on StyleSheetList >-PASS StyleSheetList interface: attribute length >-PASS Unscopable handled correctly for length property on StyleSheetList >-PASS StyleSheetList must be primary interface of document.styleSheets >-PASS Stringification of document.styleSheets >-PASS StyleSheetList interface: document.styleSheets must inherit property "item(unsigned long)" with the proper type >-PASS StyleSheetList interface: calling item(unsigned long) on document.styleSheets with too few arguments must throw TypeError >-PASS StyleSheetList interface: document.styleSheets must inherit property "length" with the proper type >-PASS CSSRuleList interface: existence and properties of interface object >-PASS CSSRuleList interface object length >-PASS CSSRuleList interface object name >-FAIL CSSRuleList interface: existence and properties of interface prototype object assert_equals: prototype of CSSRuleList.prototype is not Array.prototype expected [] but got object "[object Object]" >-PASS CSSRuleList interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSRuleList interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSRuleList interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on CSSRuleList >-PASS CSSRuleList interface: attribute length >-PASS Unscopable handled correctly for length property on CSSRuleList >-PASS CSSRuleList must be primary interface of style_element.sheet.cssRules >-PASS Stringification of style_element.sheet.cssRules >-PASS CSSRuleList interface: style_element.sheet.cssRules must inherit property "item(unsigned long)" with the proper type >-PASS CSSRuleList interface: calling item(unsigned long) on style_element.sheet.cssRules with too few arguments must throw TypeError >-PASS CSSRuleList interface: style_element.sheet.cssRules must inherit property "length" with the proper type >-PASS CSSRule interface: existence and properties of interface object >-PASS CSSRule interface object length >-PASS CSSRule interface object name >-PASS CSSRule interface: existence and properties of interface prototype object >-PASS CSSRule interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSRule interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSRule interface: constant STYLE_RULE on interface object >-PASS CSSRule interface: constant STYLE_RULE on interface prototype object >-PASS CSSRule interface: constant CHARSET_RULE on interface object >-PASS CSSRule interface: constant CHARSET_RULE on interface prototype object >-PASS CSSRule interface: constant IMPORT_RULE on interface object >-PASS CSSRule interface: constant IMPORT_RULE on interface prototype object >-PASS CSSRule interface: constant MEDIA_RULE on interface object >-PASS CSSRule interface: constant MEDIA_RULE on interface prototype object >-PASS CSSRule interface: constant FONT_FACE_RULE on interface object >-PASS CSSRule interface: constant FONT_FACE_RULE on interface prototype object >-PASS CSSRule interface: constant PAGE_RULE on interface object >-PASS CSSRule interface: constant PAGE_RULE on interface prototype object >-FAIL CSSRule interface: constant MARGIN_RULE on interface object assert_own_property: expected property "MARGIN_RULE" missing >-FAIL CSSRule interface: constant MARGIN_RULE on interface prototype object assert_own_property: expected property "MARGIN_RULE" missing >-PASS CSSRule interface: constant NAMESPACE_RULE on interface object >-PASS CSSRule interface: constant NAMESPACE_RULE on interface prototype object >-PASS CSSRule interface: attribute type >-PASS Unscopable handled correctly for type property on CSSRule >-PASS CSSRule interface: attribute cssText >-PASS Unscopable handled correctly for cssText property on CSSRule >-PASS CSSRule interface: attribute parentRule >-PASS Unscopable handled correctly for parentRule property on CSSRule >-PASS CSSRule interface: attribute parentStyleSheet >-PASS Unscopable handled correctly for parentStyleSheet property on CSSRule >-PASS CSSStyleRule interface: existence and properties of interface object >-PASS CSSStyleRule interface object length >-PASS CSSStyleRule interface object name >-PASS CSSStyleRule interface: existence and properties of interface prototype object >-PASS CSSStyleRule interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSStyleRule interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSStyleRule interface: attribute selectorText >-PASS Unscopable handled correctly for selectorText property on CSSStyleRule >-PASS CSSStyleRule interface: attribute style >-PASS Unscopable handled correctly for style property on CSSStyleRule >-PASS CSSStyleRule must be primary interface of style_element.sheet.cssRules[4] >-PASS Stringification of style_element.sheet.cssRules[4] >-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "selectorText" with the proper type >-PASS CSSStyleRule interface: style_element.sheet.cssRules[4] must inherit property "style" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "STYLE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "CHARSET_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "IMPORT_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "MEDIA_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "FONT_FACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "PAGE_RULE" with the proper type >-FAIL CSSRule interface: style_element.sheet.cssRules[4] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "NAMESPACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "type" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "cssText" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentRule" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[4] must inherit property "parentStyleSheet" with the proper type >-PASS CSSImportRule interface: existence and properties of interface object >-PASS CSSImportRule interface object length >-PASS CSSImportRule interface object name >-PASS CSSImportRule interface: existence and properties of interface prototype object >-PASS CSSImportRule interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSImportRule interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSImportRule interface: attribute href >-PASS Unscopable handled correctly for href property on CSSImportRule >-FAIL CSSImportRule interface: attribute media assert_equals: setter must be function for PutForwards, Replaceable, or non-readonly attributes expected "function" but got "undefined" >-PASS Unscopable handled correctly for media property on CSSImportRule >-PASS CSSImportRule interface: attribute styleSheet >-PASS Unscopable handled correctly for styleSheet property on CSSImportRule >-PASS CSSImportRule must be primary interface of style_element.sheet.cssRules[0] >-PASS Stringification of style_element.sheet.cssRules[0] >-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "href" with the proper type >-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "media" with the proper type >-PASS CSSImportRule interface: style_element.sheet.cssRules[0] must inherit property "styleSheet" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "STYLE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "CHARSET_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "IMPORT_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "MEDIA_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "PAGE_RULE" with the proper type >-FAIL CSSRule interface: style_element.sheet.cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "type" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "cssText" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentRule" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[0] must inherit property "parentStyleSheet" with the proper type >-FAIL CSSGroupingRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface object length assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface object name assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-FAIL CSSGroupingRule interface: attribute cssRules assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-PASS Unscopable handled correctly for cssRules property on CSSGroupingRule >-FAIL CSSGroupingRule interface: operation insertRule(CSSOMString, unsigned long) assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-PASS Unscopable handled correctly for insertRule(CSSOMString, unsigned long) on CSSGroupingRule >-FAIL CSSGroupingRule interface: operation deleteRule(unsigned long) assert_own_property: self does not have own property "CSSGroupingRule" expected property "CSSGroupingRule" missing >-PASS Unscopable handled correctly for deleteRule(unsigned long) on CSSGroupingRule >-FAIL CSSPageRule interface: existence and properties of interface object assert_own_property: should inherit from CSSGroupingRule, but self has no such property expected property "CSSGroupingRule" missing >-PASS CSSPageRule interface object length >-PASS CSSPageRule interface object name >-FAIL CSSPageRule interface: existence and properties of interface prototype object assert_own_property: should inherit from CSSGroupingRule, but self has no such property expected property "CSSGroupingRule" missing >-PASS CSSPageRule interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSPageRule interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSPageRule interface: attribute selectorText >-PASS Unscopable handled correctly for selectorText property on CSSPageRule >-PASS CSSPageRule interface: attribute style >-PASS Unscopable handled correctly for style property on CSSPageRule >-PASS CSSPageRule must be primary interface of style_element.sheet.cssRules[2] >-PASS Stringification of style_element.sheet.cssRules[2] >-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "selectorText" with the proper type >-PASS CSSPageRule interface: style_element.sheet.cssRules[2] must inherit property "style" with the proper type >-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "cssRules" with the proper type assert_inherits: property "cssRules" not found in prototype chain >-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "insertRule(CSSOMString, unsigned long)" with the proper type assert_inherits: property "insertRule" not found in prototype chain >-FAIL CSSGroupingRule interface: calling insertRule(CSSOMString, unsigned long) on style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "insertRule" not found in prototype chain >-FAIL CSSGroupingRule interface: style_element.sheet.cssRules[2] must inherit property "deleteRule(unsigned long)" with the proper type assert_inherits: property "deleteRule" not found in prototype chain >-FAIL CSSGroupingRule interface: calling deleteRule(unsigned long) on style_element.sheet.cssRules[2] with too few arguments must throw TypeError assert_inherits: property "deleteRule" not found in prototype chain >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "STYLE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "CHARSET_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "IMPORT_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "MEDIA_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "FONT_FACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "PAGE_RULE" with the proper type >-FAIL CSSRule interface: style_element.sheet.cssRules[2] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "NAMESPACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "type" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "cssText" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentRule" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[2] must inherit property "parentStyleSheet" with the proper type >-FAIL CSSMarginRule interface: existence and properties of interface object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface object length assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface object name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-FAIL CSSMarginRule interface: attribute name assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-PASS Unscopable handled correctly for name property on CSSMarginRule >-FAIL CSSMarginRule interface: attribute style assert_own_property: self does not have own property "CSSMarginRule" expected property "CSSMarginRule" missing >-PASS Unscopable handled correctly for style property on CSSMarginRule >-FAIL CSSMarginRule must be primary interface of style_element.sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL Stringification of style_element.sheet.cssRules[2].cssRules[0] assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSMarginRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "name" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSMarginRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "style" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "STYLE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "CHARSET_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "IMPORT_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "MEDIA_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "FONT_FACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "PAGE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "MARGIN_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "NAMESPACE_RULE" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "type" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSRule interface: style_element.sheet.cssRules[2].cssRules[0] must inherit property "parentStyleSheet" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-PASS CSSNamespaceRule interface: existence and properties of interface object >-PASS CSSNamespaceRule interface object length >-PASS CSSNamespaceRule interface object name >-PASS CSSNamespaceRule interface: existence and properties of interface prototype object >-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSNamespaceRule interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSNamespaceRule interface: attribute namespaceURI >-PASS Unscopable handled correctly for namespaceURI property on CSSNamespaceRule >-PASS CSSNamespaceRule interface: attribute prefix >-PASS Unscopable handled correctly for prefix property on CSSNamespaceRule >-PASS CSSNamespaceRule must be primary interface of style_element.sheet.cssRules[1] >-PASS Stringification of style_element.sheet.cssRules[1] >-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "namespaceURI" with the proper type >-PASS CSSNamespaceRule interface: style_element.sheet.cssRules[1] must inherit property "prefix" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "STYLE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "CHARSET_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "IMPORT_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "MEDIA_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "FONT_FACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "PAGE_RULE" with the proper type >-FAIL CSSRule interface: style_element.sheet.cssRules[1] must inherit property "MARGIN_RULE" with the proper type assert_inherits: property "MARGIN_RULE" not found in prototype chain >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "NAMESPACE_RULE" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "type" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "cssText" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentRule" with the proper type >-PASS CSSRule interface: style_element.sheet.cssRules[1] must inherit property "parentStyleSheet" with the proper type >-PASS CSSStyleDeclaration interface: existence and properties of interface object >-PASS CSSStyleDeclaration interface object length >-PASS CSSStyleDeclaration interface object name >-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object >-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's "constructor" property >-PASS CSSStyleDeclaration interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSSStyleDeclaration interface: attribute cssText >-PASS Unscopable handled correctly for cssText property on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: attribute length >-PASS Unscopable handled correctly for length property on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: operation item(unsigned long) >-PASS Unscopable handled correctly for item(unsigned long) on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: operation getPropertyValue(CSSOMString) >-PASS Unscopable handled correctly for getPropertyValue(CSSOMString) on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: operation getPropertyPriority(CSSOMString) >-PASS Unscopable handled correctly for getPropertyPriority(CSSOMString) on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: operation setProperty(CSSOMString, CSSOMString, CSSOMString) >-PASS Unscopable handled correctly for setProperty(CSSOMString, CSSOMString, CSSOMString) on CSSStyleDeclaration >-FAIL CSSStyleDeclaration interface: operation setPropertyValue(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyValue" missing >-PASS Unscopable handled correctly for setPropertyValue(CSSOMString, CSSOMString) on CSSStyleDeclaration >-FAIL CSSStyleDeclaration interface: operation setPropertyPriority(CSSOMString, CSSOMString) assert_own_property: interface prototype object missing non-static operation expected property "setPropertyPriority" missing >-PASS Unscopable handled correctly for setPropertyPriority(CSSOMString, CSSOMString) on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: operation removeProperty(CSSOMString) >-PASS Unscopable handled correctly for removeProperty(CSSOMString) on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: attribute parentRule >-PASS Unscopable handled correctly for parentRule property on CSSStyleDeclaration >-PASS CSSStyleDeclaration interface: attribute cssFloat >-PASS Unscopable handled correctly for cssFloat property on CSSStyleDeclaration >-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[4].style >-PASS Stringification of style_element.sheet.cssRules[4].style >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssText" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "length" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "item(unsigned long)" with the proper type >-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyValue(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "removeProperty(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[4].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "parentRule" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[4].style must inherit property "cssFloat" with the proper type >-PASS CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[2].style >-PASS Stringification of style_element.sheet.cssRules[2].style >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssText" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "length" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "item(unsigned long)" with the proper type >-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyValue(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "removeProperty(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[2].style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "parentRule" with the proper type >-PASS CSSStyleDeclaration interface: style_element.sheet.cssRules[2].style must inherit property "cssFloat" with the proper type >-FAIL CSSStyleDeclaration must be primary interface of style_element.sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL Stringification of style_element.sheet.cssRules[2].cssRules[0].style assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "cssText" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "length" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "item(unsigned long)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling item(unsigned long) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyValue(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "getPropertyPriority(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "removeProperty(CSSOMString)" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.sheet.cssRules[2].cssRules[0].style with too few arguments must throw TypeError assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "parentRule" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-FAIL CSSStyleDeclaration interface: style_element.sheet.cssRules[2].cssRules[0].style must inherit property "cssFloat" with the proper type assert_equals: Unexpected exception when evaluating object expected null but got object "TypeError: undefined is not an object (evaluating 'style_element.sheet.cssRules[2].cssRules[0]')" >-PASS CSSStyleDeclaration must be primary interface of style_element.style >-PASS Stringification of style_element.style >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssText" with the proper type >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "length" with the proper type >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "item(unsigned long)" with the proper type >-PASS CSSStyleDeclaration interface: calling item(unsigned long) on style_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on style_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on style_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError >-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: style_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on style_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "removeProperty(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on style_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "parentRule" with the proper type >-PASS CSSStyleDeclaration interface: style_element.style must inherit property "cssFloat" with the proper type >-PASS CSSStyleDeclaration must be primary interface of svg_element.style >-PASS Stringification of svg_element.style >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssText" with the proper type >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "length" with the proper type >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "item(unsigned long)" with the proper type >-PASS CSSStyleDeclaration interface: calling item(unsigned long) on svg_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyValue(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on svg_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "getPropertyPriority(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on svg_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError >-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: svg_element.style must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on svg_element.style with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "removeProperty(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on svg_element.style with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "parentRule" with the proper type >-PASS CSSStyleDeclaration interface: svg_element.style must inherit property "cssFloat" with the proper type >-PASS CSSStyleDeclaration must be primary interface of getComputedStyle(svg_element) >-PASS Stringification of getComputedStyle(svg_element) >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssText" with the proper type >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "length" with the proper type >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "item(unsigned long)" with the proper type >-PASS CSSStyleDeclaration interface: calling item(unsigned long) on getComputedStyle(svg_element) with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyValue(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyValue(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "getPropertyPriority(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling getPropertyPriority(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setProperty(CSSOMString, CSSOMString, CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError >-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyValue(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyValue(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyValue" not found in prototype chain >-FAIL CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "setPropertyPriority(CSSOMString, CSSOMString)" with the proper type assert_inherits: property "setPropertyPriority" not found in prototype chain >-FAIL CSSStyleDeclaration interface: calling setPropertyPriority(CSSOMString, CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError assert_inherits: property "setPropertyPriority" not found in prototype chain >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "removeProperty(CSSOMString)" with the proper type >-PASS CSSStyleDeclaration interface: calling removeProperty(CSSOMString) on getComputedStyle(svg_element) with too few arguments must throw TypeError >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "parentRule" with the proper type >-PASS CSSStyleDeclaration interface: getComputedStyle(svg_element) must inherit property "cssFloat" with the proper type >-PASS CSS interface: existence and properties of interface object >-PASS CSS interface object length >-PASS CSS interface object name >-PASS CSS interface: existence and properties of interface prototype object >-PASS CSS interface: existence and properties of interface prototype object's "constructor" property >-PASS CSS interface: existence and properties of interface prototype object's @@unscopables property >-PASS CSS interface: operation escape(CSSOMString) >-PASS Unscopable handled correctly for escape(CSSOMString) on CSS >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces.html >deleted file mode 100644 >index e6f6bec7ac495241e2aeb27fc09889c445ec9ab6..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces.html >+++ /dev/null >@@ -1,89 +0,0 @@ >-<!doctype html> >-<meta charset=utf-8> >-<!-- WARNING: These tests are preliminary and probably partly incorrect. --> >-<title>CSSOM automated IDL tests</title> >-<link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"> >-<link rel="help" href="https://drafts.csswg.org/cssom-1/#idl-index"> >-<script src=/resources/testharness.js></script> >-<script src=/resources/testharnessreport.js></script> >-<script src=/resources/WebIDLParser.js></script> >-<script src=/resources/idlharness.js></script> >-<!-- >-Provide some objects to test. >-Use a non-empty style attribute to get a non-empty CSSStyleDeclaration. >- --> >-<style id="styleElement" style="z-index: 0;"> >-@import url("data:text/css,"); >-@namespace x "y"; >-@page { @top-left {} } >-@media all {} >-#test { color: green; } >-</style> >- >-<svg id="svgElement" style="height: 0;"></svg> >- >-<iframe id="xmlssPiIframe" src="support/xmlss-pi.xhtml" style="display: none;"></iframe> >- >-<h1>CSSOM IDL tests</h1> >-<div id=log></div> >- >-<script> >-"use strict"; >-var style_element, svg_element, xmlss_pi; >- >-function doTest([html, dom, cssom]) { >- style_element = document.getElementById('styleElement'); >- svg_element = document.getElementById('svgElement'); >- xmlss_pi = document.getElementById('xmlssPiIframe').contentDocument.firstChild; >- >- var idlArray = new IdlArray(); >- var svg = "interface SVGElement : Element {};"; >- idlArray.add_untested_idls(html + dom + svg); >- idlArray.add_idls(cssom); >- >- idlArray.add_objects({ >- "Document": ["document", "new Document()"], >- "StyleSheetList": ["document.styleSheets"], >- "CSSStyleSheet": ["style_element.sheet"], >- "MediaList": ["style_element.sheet.media"], >- "CSSRuleList": ["style_element.sheet.cssRules"], >- "CSSImportRule": ["style_element.sheet.cssRules[0]"], >- "CSSNamespaceRule": ["style_element.sheet.cssRules[1]"], >- "CSSPageRule": ["style_element.sheet.cssRules[2]"], >- "CSSMarginRule": ["style_element.sheet.cssRules[2].cssRules[0]"], >- "CSSMediaRule": ["style_element.sheet.cssRules[3]"], >- "CSSStyleRule": ["style_element.sheet.cssRules[4]"], >- "CSSStyleDeclaration": ["style_element.sheet.cssRules[4].style", // CSSStyleRule >- "style_element.sheet.cssRules[2].style", // CSSPageRule >- "style_element.sheet.cssRules[2].cssRules[0].style", // CSSMarginRule >- "style_element.style", // ElementCSSInlineStyle for HTMLElement >- "svg_element.style", // ElementCSSInlineStyle for SVGElement >- "getComputedStyle(svg_element)"], >- "ProcessingInstruction": ["xmlss_pi"], >- "Window": ["window"], >- "HTMLElement": ["style_element", "document.createElement('unknownelement')"], >- "SVGElement": ["svg_element"], >- }); >- idlArray.test(); >-}; >- >-function fetchData(url) { >- return fetch(url).then((response) => response.text()); >-} >- >-function waitForLoad() { >- return new Promise(function(resolve) { >- addEventListener("load", resolve); >- }); >-} >- >-promise_test(function() { >- // Have to wait for onload >- return Promise.all([fetchData("/interfaces/html.idl"), >- fetchData("/interfaces/dom.idl"), >- fetchData("/interfaces/cssom.idl"), >- waitForLoad()]) >- .then(doTest); >-}, "Test driver"); >- >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001-expected.txt >deleted file mode 100644 >index b35b400b5c0059bd3395b4acd9690b754f33790b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001-expected.txt >+++ /dev/null >@@ -1,6 +0,0 @@ >- >-PASS mediatest_medialist_serialize_element >-PASS mediatest_medialist_serialize_comma >-PASS mediatest_medialist_serialize_empty >-FAIL mediatest_medialist_serialize_lexicographical assert_equals: expected "all, print, screen" but got "all, screen, print" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001.html >deleted file mode 100644 >index ad95394d5c5e992b9235c8241936128ba3043463..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001.html >+++ /dev/null >@@ -1,110 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: CSSOM Media Query List Serialization</title> >- <link rel="author" title="Ben Sheldon" href="mailto:ben@codeforamerica.org"> >- <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="MediaLists are serialized according to the specification"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <script id="metadata_cache">/* >- { >- "mediatest_medialist_serialize_element": { >- "help": ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", >- "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- "assert": ["MediaList.mediaText equals the 'media' value of the initial 'style' element."] >- }, >- "mediatest_medialist_serialize_comma": { >- "help": ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", >- "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- "assert": ["To serialize a comma-separated list concatenate all items of the list in list order while separating them by \",\" (U+002C), followed by a space (U+0020)."] >- }, >- "mediatest_medialist_serialize_empty": { >- "help": ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", >- "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- "assert": ["If the media query list is empty return the empty string."] >- }, >- "mediatest_medialist_serialize_lexicographical": { >- "help": ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", >- "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- "assert": ["Each media query in the list of media queries should be sorted in lexicographical order."] >- } >- } >- */</script> >- </head> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <script type="text/javascript"> >- >- var styleElement; >- var styleSheet; >- var mediaList; >- >- // Setup >- function setup() { >- styleElement = document.getElementById("styleElement"); >- >- if (styleElement) { >- // teardown >- document.getElementsByTagName("head")[0].removeChild(styleElement); >- styleElement = undefined; >- styleSheet = undefined; >- mediaList = undefined; >- } >- >- styleElement = document.createElement("style"); >- styleElement.id = "styleElement"; >- styleElement.type = "text/css"; >- styleElement.media = "all"; >- document.getElementsByTagName("head")[0].appendChild(styleElement); >- styleSheet = styleElement.sheet; >- mediaList = styleSheet.media; >- } >- >- >- test(function() { >- setup(); >- >- assert_equals(mediaList.mediaText, "all"); >- >- }, "mediatest_medialist_serialize_element", >- { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- assert: ["MediaList.mediaText equals the 'media' value of the initial 'style' element."] }); >- >- test(function() { >- setup(); >- >- mediaList.appendMedium('screen'); >- assert_equals(mediaList.mediaText, "all, screen"); >- >- }, "mediatest_medialist_serialize_comma", >- { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- assert: ["To serialize a comma-separated list concatenate all items of the list in list order while separating them by \",\" (U+002C), followed by a space (U+0020)."] }); >- >- test(function() { >- setup(); >- >- mediaList.deleteMedium('all'); >- assert_equals(mediaList.mediaText, ""); >- >- }, "mediatest_medialist_serialize_empty", >- { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- assert: ["If the media query list is empty return the empty string."] }); >- >- test(function() { >- setup(); >- >- mediaList.appendMedium('screen'); >- mediaList.appendMedium('print'); >- assert_equals(mediaList.mediaText, "all, print, screen"); >- >- }, "mediatest_medialist_serialize_lexicographical", >- { help: ["http://www.w3.org/TR/cssom-1/#the-medialist-interface", "http://www.w3.org/TR/cssom-1/#serializing-media-queries"], >- assert: ["Each media query in the list of media queries should be sorted in lexicographical order."] }); >- >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002-expected.txt >deleted file mode 100644 >index 85506e305a6c4ffb005f57f6505d884113f3f95b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS deleteMedium_called_without_argument >-PASS deleteMedium_removes_correct_medium >-FAIL deleteMedium_no_matching_medium_to_remove The object can not be found here. >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002.html >deleted file mode 100644 >index 6ed93ad17c0559c0481d0019f31b3d1c8ed7b19d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002.html >+++ /dev/null >@@ -1,80 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM MediaList Interfaces</title> >- <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >- <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >- <link rel="help" href="https://drafts.csswg.org/cssom/#the-medialist-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="MediaList object has deleteMedium method and it functions properly."> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- >- <script id="metadata_cache">/* >- { >- "deleteMedium_called_without_argument": { "assert": "MediaList.deleteMedium called without argument throws error." }, >- "deleteMedium_removes_correct_medium": { "assert": "MediaList.deleteMedium removes correct medium and updates corresponding properties." }, >- "deleteMedium_no_matching_medium_to_remove": { "assert": "MediaList.deleteMedium doesn't modify MediaList when medium is not found." } >- } >-*/</script> >- >-</head> >- >-<body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- >- <script type="text/javascript"> >- function setup() { >- // Clean out any old style element >- var old_style_el = document.getElementById('test_style'); >- if (old_style_el) { >- document.head.removeChild(old_style_el); >- } >- >- // Create a fresh style element and return its media attribute >- var style_el = document.createElement('style'); >- style_el.setAttribute('id', 'test_style'); >- document.head.appendChild(style_el); >- return style_el.sheet.media; >- } >- </script> >- >- <script type="text/javascript"> >- >- test(function() { >- media_list = setup(); >- assert_throws(new TypeError, function() { media_list.deleteMedium(); }); >- }, "deleteMedium_called_without_argument", >- { assert: "MediaList.deleteMedium called without argument throws error." }); >- >- test(function() { >- media_list = setup(); >- >- media_list.appendMedium("screen"); >- media_list.appendMedium("all"); >- >- media_list.deleteMedium("screen"); >- >- assert_equals(media_list.length, 1); >- assert_equals(media_list.item(0), "all"); >- assert_equals(media_list.mediaText, "all"); >- }, "deleteMedium_removes_correct_medium", >- { assert: "MediaList.deleteMedium removes correct medium and updates corresponding properties." }); >- >- test(function() { >- media_list = setup(); >- >- media_list.appendMedium("all"); >- >- media_list.deleteMedium("screen"); >- >- assert_equals(media_list.length, 1); >- assert_equals(media_list.item(0), "all"); >- assert_equals(media_list.mediaText, "all"); >- }, "deleteMedium_no_matching_medium_to_remove", >- { assert: "MediaList.deleteMedium doesn't modify MediaList when medium is not found." }); >- >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003-expected.txt >deleted file mode 100644 >index 50651628444e3cd07a3685a8d21260ed06055094..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS mediatest_mediaquery_serialize_1 >-PASS mediatest_mediaquery_serialize_2 >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003.html >deleted file mode 100644 >index 717c39d618feb5b62b0f0bcf80184b6acbd6c53c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003.html >+++ /dev/null >@@ -1,72 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: CSSOM Media Query Serialization</title> >- <link rel="author" title="Ben Sheldon" href="mailto:ben@codeforamerica.org"> >- <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="Media Queries are serialized according to the specification"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- </head> >- <script id="metadata_cache">/* >- { >- "mediatest_mediaquery_serialize_1": { >- "assert": ["First explicit example input (first column) and output (second column) in specification."] >- }, >- "mediatest_mediaquery_serialize_2": { >- "assert": ["Second explicit example input (first column) and output (second column) in specification."] >- } >- } >- */</script> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <script type="text/javascript"> >- >- var styleElement; >- var styleSheet; >- var mediaList; >- >- // Setup - accepts media value for style element, e.g. <style media=???"> >- function setupMedia(media) { >- styleElement = document.getElementById("styleElement"); >- >- if (styleElement) { >- // teardown >- document.getElementsByTagName("head")[0].removeChild(styleElement); >- styleElement = undefined; >- styleSheet = undefined; >- mediaList = undefined; >- } >- >- styleElement = document.createElement("style"); >- styleElement.id = "styleElement"; >- styleElement.type = "text/css"; >- styleElement.media = media; >- document.getElementsByTagName("head")[0].appendChild(styleElement); >- styleSheet = styleElement.sheet; >- mediaList = styleSheet.media; >- } >- >- >- test(function() { >- setupMedia('not screen and (min-WIDTH:5px) AND (max-width:40px )'); >- >- assert_equals(mediaList.mediaText, "not screen and (max-width: 40px) and (min-width: 5px)"); >- >- }, "mediatest_mediaquery_serialize_1", >- { assert: ["First explicit example input (first column) and output (second column) in specification."] }); >- >- test(function() { >- setupMedia('all and (color) and (color) '); >- >- assert_equals(mediaList.mediaText, "(color)"); >- >- }, "mediatest_mediaquery_serialize_2", >- { assert: ["Second explicit example input (first column) and output (second column) in specification."] }); >- >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004-expected.txt >deleted file mode 100644 >index 765fd4fbc4113893a8e2c6b02135f8661f3ba5fb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS appendMedium_correctly_appends_medium_to_empty_MediaList >-FAIL appendMedium_correctly_appends_medium_to_nonempty_MediaList assert_equals: expected "all, screen" but got "screen, all" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html >deleted file mode 100644 >index 2fe6ff915d746d24619b04545c460f50278da44c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html >+++ /dev/null >@@ -1,72 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSS Test: CSSOM MediaList Interfaces</title> >- <link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-medialist-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="MediaList object has appendMedium method and it functions properly."> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- >- <script id="metadata_cache">/* >- { >- "appendMedium_correctly_appends_medium_to_empty_MediaList": { "assert": "MediaList.appendMedium correctly adds medium to empty MediaList." }, >- "appendMedium_correctly_appends_medium_to_nonempty_MediaList": { "assert": "MediaList.appendMedium correctly adds medium to a MediaList that already has a medium." } >- } >-*/</script> >- >-</head> >- >-<body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- >- <script type="text/javascript"> >- function setup() { >- // Clean out any old style element >- var old_style_el = document.getElementById('test_style'); >- if (old_style_el) { >- document.head.removeChild(old_style_el); >- } >- >- // Create a fresh style element and return its media attribute >- var style_el = document.createElement('style'); >- style_el.setAttribute('id', 'test_style'); >- document.head.appendChild(style_el); >- return style_el.sheet.media; >- } >- </script> >- >- <script type="text/javascript"> >- >- test(function() { >- media_list = setup(); >- >- media_list.appendMedium("all"); >- >- assert_equals(media_list.length, 1); >- assert_equals(media_list.item(0), "all"); >- assert_equals(media_list.mediaText, "all"); >- }, "appendMedium_correctly_appends_medium_to_empty_MediaList", >- { assert: "MediaList.appendMedium correctly adds medium to empty MediaList." }); >- >- test(function() { >- media_list = setup(); >- >- media_list.appendMedium("screen"); >- media_list.appendMedium("all"); >- >- // The ordering of array items should be different from that of the mediaText element. >- // "all" should be appended after "screen" in the array, but "mediaText" should be >- // "all, screen" due to lexicographical sorting. >- assert_equals(media_list.length, 2); >- assert_equals(media_list.item(0), "screen"); >- assert_equals(media_list.item(1), "all"); >- assert_equals(media_list.mediaText, "all, screen"); >- }, "appendMedium_correctly_appends_medium_to_nonempty_MediaList", >- { assert: "MediaList.appendMedium correctly adds medium to a MediaList that already has a medium." }); >- >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization-expected.txt >deleted file mode 100644 >index ee2f8324165ba36d119f0596e75218befdbb6999..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-FAIL CSSOM - Overlow property has different serialization than other shorthands. assert_equals: Overflow-x/y longhands with same CSS-wide keyword should serialize correctly. expected "overflow: initial;" but got "" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html >deleted file mode 100644 >index c350a1ac2119c1c1011be6f71270cf940414efea..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html >+++ /dev/null >@@ -1,48 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - Overlow property has different serialization than other shorthands.</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style> >- div { overflow: inherit; } >- div { overflow: hidden; } >- div { overflow-x: initial; overflow-y: initial; } >- div { overflow-x: scroll; overflow-y: scroll; } >- div { overflow-x: inherit; overflow-y: unset; } >- </style> >- >- <script> >- test(function () { >- var styleSheet = document.styleSheets[0]; >- >- assert_equals(styleSheet.cssRules[0].style.cssText, "overflow: inherit;", "Single value overflow with CSS-wide keyword should serialize correctly."); >- assert_equals(styleSheet.cssRules[1].style.cssText, "overflow: hidden;", "Single value overflow with non-CSS-wide keyword should serialize correctly."); >- assert_equals(styleSheet.cssRules[2].style.cssText, "overflow: initial;", "Overflow-x/y longhands with same CSS-wide keyword should serialize correctly."); >- assert_equals(styleSheet.cssRules[3].style.cssText, "overflow: scroll;", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly."); >- assert_equals(styleSheet.cssRules[4].style.cssText, "overflow-x: inherit; overflow-y: unset;", "Overflow-x/y longhands with different keywords should serialize correctly."); >- >- var div = document.createElement('div'); >- div.style.overflow = "inherit"; >- assert_equals(div.style.overflow, "inherit", "Single value overflow with CSS-wide keyword should serialize correctly."); >- >- div.style.overflow = "hidden"; >- assert_equals(div.style.overflow, "hidden", "Single value overflow with non-CSS-wide keyword should serialize correctly."); >- >- div.style.overflow = ""; >- div.style.overflowX = "initial"; >- div.style.overflowY = "initial"; >- assert_equals(div.style.overflow, "initial", "Overflow-x/y longhands with same CSS-wide keyword should serialize correctly."); >- >- div.style.overflowX = "scroll"; >- div.style.overflowY = "scroll"; >- assert_equals(div.style.overflow, "scroll", "Overflow-x/y longhands with same non-CSS-wide keyword should serialize correctly."); >- >- div.style.overflowX = "inherit"; >- div.style.overflowY = "unset"; >- assert_equals(div.style.overflow, "", "Overflow-x/y longhands with different keywords shouldn't serialize."); >- }); >- </script> >-</head> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize-expected.txt >deleted file mode 100644 >index 1021b15b82084153b756ef506f3c22cf16ef0c21..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize-expected.txt >+++ /dev/null >@@ -1,14 +0,0 @@ >- >-FAIL :nth-child serialization produces canonical form assert_equals: expected ":nth-child(3n)" but got ":nth-child(3n - 0)" >-PASS single universal selector shows '*' when serialized. >-PASS single type (simple) selector in the sequence of simple selectors that is not a universal selector >-PASS single class (simple) selector in the sequence of simple selectors that is not a universal selector >-PASS single id (simple) selector in the sequence of simple selectors that is not a universal selector >-PASS single pseudo (simple) selector which does not accept arguments in the sequence of simple selectors that is not a universal selector >-FAIL single pseudo (simple) selector "lang" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":lang(ja)" but got ":lang(\"ja\")" >-FAIL single pseudo (simple) selector "nth-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-child(2n)" but got ":nth-child(even)" >-FAIL single pseudo (simple) selector "nth-last-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-last-child(2n)" but got ":nth-last-child(even)" >-FAIL single pseudo (simple) selector "nth-of-child" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-of-type(2n)" but got ":nth-of-type(even)" >-FAIL single pseudo (simple) selector ":nth-last-of-type" which accepts arguments in the sequence of simple selectors that is not a universal selector assert_equals: expected ":nth-last-of-type(2n)" but got ":nth-last-of-type(even)" >-PASS single pseudo (simple) selector ":not" which accepts arguments in the sequence of simple selectors that is not a universal selector >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html >deleted file mode 100644 >index fc9445ca96a43254c5bb3d88b7bbcfa170236614..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html >+++ /dev/null >@@ -1,107 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Test: test serialized selector which is only one simple selector in the sequence of simple selectors</title> >- <link rel="author" title="T.Nishitani" href="mailto:lequinharay@gmail.com"> >- <link rel="reviewer" title="L. David Baron" href="https://dbaron.org/"> >- <link rel="help" href="https://drafts.csswg.org/cssom-1/#serializing-selectors"> >- <meta name="flags" content="dom"> >- <meta charset="utf-8"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style id="teststyles"> >- </style> >- </head> >- <body> >- <div id="log"></div> >- <script> >- function assert_selector_serializes_to(source, expected_result) { >- var style_element = document.getElementById("teststyles"); >- style_element.firstChild.data = source + "{ font-size: 1em; }"; >- var sheet = style_element.sheet; >- assert_equals(sheet.cssRules[0].selectorText, expected_result); >- } >- >- function run_tests_on_anplusb_selector(source) { >- assert_selector_serializes_to(source + '( even )', source + '(2n)'); >- assert_selector_serializes_to(source + '( odd )', source + '(2n+1)'); >- assert_selector_serializes_to(source + '( +10 )', source + '(10)'); >- assert_selector_serializes_to(source + '( -10 )', source + '(-10)'); >- assert_selector_serializes_to(source + '( +4n )', source + '(4n)'); >- assert_selector_serializes_to(source + '( -3n )', source + '(-3n)'); >- assert_selector_serializes_to(source + '( 1n + 5 )', source + '(n+5)'); >- assert_selector_serializes_to(source + '( -1n + 5 )', source + '(-n+5)'); >- assert_selector_serializes_to(source + '( -1n - 5 )', source + '(-n-5)'); >- } >- >- test(function() { >- assert_selector_serializes_to(":nth-child( 3n - 0)", ":nth-child(3n)"); >- assert_selector_serializes_to(":nth-child( 1n - 0)", ":nth-child(n)"); >- }, ":nth-child serialization produces canonical form"); >- >- >- /* for universal selecter with default namespace */ >- test(function(){ >- /* this is single universal selector */ >- assert_selector_serializes_to('*', '*'); >- assert_selector_serializes_to(' * ', '*'); >- }, 'single universal selector shows \'*\' when serialized.') >- >- test(function(){ >- assert_selector_serializes_to('div', 'div'); >- assert_selector_serializes_to(' div ', 'div'); >- }, 'single type (simple) selector in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- assert_selector_serializes_to('.class', '.class'); >- assert_selector_serializes_to(' .class ', '.class'); >- }, 'single class (simple) selector in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- assert_selector_serializes_to('#id', '#id'); >- assert_selector_serializes_to(' #id ', '#id'); >- }, 'single id (simple) selector in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- assert_selector_serializes_to(':hover', ':hover'); >- assert_selector_serializes_to(' :hover ', ':hover'); >- }, 'single pseudo (simple) selector which does not accept arguments in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- assert_selector_serializes_to(':lang(ja)', ':lang(ja)'); >- assert_selector_serializes_to(':lang( ja )', ':lang(ja)'); >- }, 'single pseudo (simple) selector "lang" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- >- >- >- test(function(){ >- run_tests_on_anplusb_selector(':nth-child'); >- }, 'single pseudo (simple) selector "nth-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- run_tests_on_anplusb_selector(':nth-last-child'); >- }, 'single pseudo (simple) selector "nth-last-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- run_tests_on_anplusb_selector(':nth-of-type'); >- }, 'single pseudo (simple) selector "nth-of-child" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- run_tests_on_anplusb_selector(':nth-last-of-type'); >- }, 'single pseudo (simple) selector ":nth-last-of-type" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- test(function(){ >- assert_selector_serializes_to(' :not( abc ) ', ':not(abc)'); >- assert_selector_serializes_to(' :not( .head ) ', ':not(.head)'); >- assert_selector_serializes_to(' :not( #head ) ', ':not(#head)'); >- assert_selector_serializes_to(' :not( :hover ) ', ':not(:hover)'); >- }, 'single pseudo (simple) selector ":not" which accepts arguments in the sequence of simple selectors that is not a universal selector') >- >- >- >- >- >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html >deleted file mode 100644 >index 74e580747083b3e9ff8d48876c08b83ddaa8d5cb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html >+++ /dev/null >@@ -1,13 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title>(Ref #1) CSSOM - CSSStyleRule.selectorText Modification Restyle - Reference #1</title> >- >-<style> >-div { >- color: green; >-} >-</style> >- >-<body> >-<div>I should be green.</div> >-</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html >deleted file mode 100644 >index 681d32f1865452d5896f29bfdf0d555b56e3ae57..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html >+++ /dev/null >@@ -1,21 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title>(Test #1) CSSOM - CSSStyleRule.selectorText Modification Restyle - Test #1</title> >-<link rel="match" href="selectorText-modification-restyle-001-ref.html"> >- >-<style> >-@namespace bogus url(http://example.com/bogus); >- >-bogus|div { >- color: green; >-} >-</style> >- >-<body> >-<div>I should be green.</div> >-<script> >-// Remove the "bogus" namespace--now it should apply to the div above. >-// We also expect to see a restyle. >-document.querySelector("style").sheet.cssRules[1].selectorText = "div"; >-</script> >-</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt >deleted file mode 100644 >index 3a82c9e37815254223cce8799797db64734d76b1..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important-expected.txt >+++ /dev/null >@@ -1,6 +0,0 @@ >- >-PASS Inline style declaration without whitespace between '!' and 'important'. >-PASS Inline style declaration with whitespace between '!' and 'important'. >-PASS Style set dynamically via cssText without whitespace between '!' and 'important'. >-PASS Style set dynamically via cssText with whitespace between '!' and 'important'. >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html >deleted file mode 100644 >index 0f165ae0cd29faa5a6aec78b75da623b2c73916b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html >+++ /dev/null >@@ -1,31 +0,0 @@ >-<!doctype html> >-<meta charset=utf-8> >-<title>cssom - Serialization of CSS declaration with "important" flag</title> >-<script src=/resources/testharness.js></script> >-<script src=/resources/testharnessreport.js></script> >-<div id="noWhitespace" style="display: inline !important;"></div> >-<div id="whitespace" style="background-color: blue !important; color: red ! important;"></div> >-<div id="dinamicallyStyle"></div> >-<script> >- test(function () { >- var css_style = document.querySelector('#noWhitespace').style.cssText; >- assert_equals(css_style, "display: inline !important;"); >- }, "Inline style declaration without whitespace between '!' and 'important'."); >- >- test(function () { >- var css_style = document.querySelector('#whitespace').style.cssText; >- assert_equals(css_style, "background-color: blue !important; color: red !important;"); >- }, "Inline style declaration with whitespace between '!' and 'important'."); >- >- test(function () { >- document.querySelector('#dinamicallyStyle').style.cssText = "color: black !important;"; >- var css_style = document.querySelector('#dinamicallyStyle').style.cssText; >- assert_equals(css_style, "color: black !important;"); >- }, "Style set dynamically via cssText without whitespace between '!' and 'important'."); >- >- test(function () { >- document.querySelector('#dinamicallyStyle').style.cssText = "color: black ! important;"; >- var css_style = document.querySelector('#dinamicallyStyle').style.cssText; >- assert_equals(css_style, "color: black !important;"); >- }, "Style set dynamically via cssText with whitespace between '!' and 'important'."); >-</script> >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt >deleted file mode 100644 >index 30840a89404cdf762cc1501f0b083e951fb136eb..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors-expected.txt >+++ /dev/null >@@ -1,62 +0,0 @@ >- >-PASS Simple type selector >-PASS Type selector without a namespace >-PASS Type selector with any namespace >-PASS Universal selector >-PASS Universal selector without a namespace >-PASS Universal selector in any namespace >-PASS Type selector with namespace >-PASS Universal selector with namespace >-PASS Simple type selector followed by class >-PASS Simple type selector followed by id >-PASS Simple type selector followed by pseudo class >-PASS Simple type selector followed by pseudo element >-PASS Simple type selector followed by atttribute selector >-PASS Type selector without a namespace followed by class >-PASS Type selector without a namespace followed by id >-PASS Type selector without a namespace followed by pseudo class >-PASS Type selector without a namespace followed by pseudo element >-PASS Type selector without a namespace followed by attribute selector >-PASS Type selector with any namespace followed by class >-PASS Type selector with any namespace followed by id >-PASS Type selector with any namespace followed by pseudo class >-PASS Type selector with any namespace followed by pseudo element >-PASS Type selector with any namespace followed by attribute selector >-PASS Universal selector followed by class >-PASS Universal selector followed by id >-PASS Universal selector followed by pseudo class >-PASS Universal selector followed by pseudo element >-PASS Universal selector followed by attribute selector >-PASS Universal selector without a namespace followed by class >-PASS Universal selector without a namespace followed by id >-PASS Universal selector without a namespace followed by pseudo class >-PASS Universal selector without a namespace followed by pseudo element >-PASS Universal selector without a namespace followed by attribute selector >-PASS Universal selector in any namespace followed by class >-PASS Universal selector in any namespace followed by id >-PASS Universal selector in any namespace followed by pseudo class >-PASS Universal selector in any namespace followed by pseudo element >-PASS Universal selector in any namespace followed by attribute selector >-PASS Type selector with namespace followed by class >-PASS Type selector with namespace followed by id >-PASS Type selector with namespace followed by pseudo class >-PASS Type selector with namespace followed by pseudo element >-PASS Type selector with namespace followed by attribute selector >-PASS Universal selector with namespace followed by class >-PASS Universal selector with namespace followed by id >-PASS Universal selector with namespace followed by pseudo class >-PASS Universal selector with namespace followed by pseudo element >-PASS Universal selector with namespace followed by attribute selector >-PASS Type selector with namespace equal to default namespace >-PASS Universal selector with namespace equal to default namespace >-PASS Type selector with namespace equal to default namespace followed by class >-PASS Type selector with namespace equal to default namespace followed by id >-PASS Type selector with namespace equal to default namespace followed by pseudo class >-PASS Type selector with namespace equal to default namespace followed by pseudo element >-PASS Type selector with namespace equal to default namespace followed by attribute selector >-PASS Universal selector with namespace equal to default namespace followed by class >-PASS Universal selector with namespace equal to default namespace followed by id >-PASS Universal selector with namespace equal to default namespace followed by pseudo class >-PASS Universal selector with namespace equal to default namespace followed by pseudo element >-PASS Universal selector with namespace equal to default namespace followed by attribute selector >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html >deleted file mode 100644 >index 600008c7a9eb7351b15ede25b870525882b32a0c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html >+++ /dev/null >@@ -1,257 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSSOM Test: test serialization of type selectors and namespace prefixes</title> >- <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com"> >- <link rel="help" href="https://drafts.csswg.org/cssom-1/#serializing-selectors"> >- <meta name="flags" content="dom"> >- <meta charset="utf-8"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <style id="teststyles"> >- </style> >- </head> >- <body> >- <div id="log"></div> >- <script> >- var ns_rule = "@namespace ns url(ns);"; >- var default_ns_rules = "@namespace url(default_ns); @namespace nsdefault url(default_ns);" + ns_rule; >- >- function assert_selector_serializes_to(source, expected_result) { >- var style_element = document.getElementById("teststyles"); >- style_element.firstChild.data = source + "{ font-size: 1em; }"; >- var sheet = style_element.sheet; >- assert_equals(sheet.cssRules[sheet.cssRules.length - 1].selectorText, expected_result); >- } >- test(function() { >- assert_selector_serializes_to(ns_rule + "e", "e"); >- assert_selector_serializes_to(default_ns_rules + "e", "e"); >- }, "Simple type selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e", "|e"); >- assert_selector_serializes_to(default_ns_rules + "|e", "|e"); >- }, "Type selector without a namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e", "e"); >- assert_selector_serializes_to(default_ns_rules + "*|e", "*|e"); >- }, "Type selector with any namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*", "*"); >- assert_selector_serializes_to(default_ns_rules + "*", "*"); >- }, "Universal selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*", "|*"); >- assert_selector_serializes_to(default_ns_rules + "|*", "|*"); >- }, "Universal selector without a namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*", "*"); >- assert_selector_serializes_to(default_ns_rules + "*|*", "*|*"); >- }, "Universal selector in any namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e", "ns|e"); >- assert_selector_serializes_to(default_ns_rules + "ns|e", "ns|e"); >- }, "Type selector with namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*", "ns|*"); >- assert_selector_serializes_to(default_ns_rules + "ns|*", "ns|*"); >- }, "Universal selector with namespace"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "e.c", "e.c"); >- assert_selector_serializes_to(default_ns_rules + "e.c", "e.c"); >- }, "Simple type selector followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "e#i", "e#i"); >- assert_selector_serializes_to(default_ns_rules + "e#i", "e#i"); >- }, "Simple type selector followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "e:hover", "e:hover"); >- assert_selector_serializes_to(default_ns_rules + "e:hover", "e:hover"); >- }, "Simple type selector followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "e::before", "e::before"); >- assert_selector_serializes_to(default_ns_rules + "e::before", "e::before"); >- }, "Simple type selector followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "e[attr]", "e[attr]"); >- assert_selector_serializes_to(default_ns_rules + "e[attr]", "e[attr]"); >- }, "Simple type selector followed by atttribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e.c", "|e.c"); >- assert_selector_serializes_to(default_ns_rules + "|e.c", "|e.c"); >- }, "Type selector without a namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e#i", "|e#i"); >- assert_selector_serializes_to(default_ns_rules + "|e#i", "|e#i"); >- }, "Type selector without a namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e:hover", "|e:hover"); >- assert_selector_serializes_to(default_ns_rules + "|e:hover", "|e:hover"); >- }, "Type selector without a namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e::before", "|e::before"); >- assert_selector_serializes_to(default_ns_rules + "|e::before", "|e::before"); >- }, "Type selector without a namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|e[attr]", "|e[attr]"); >- assert_selector_serializes_to(default_ns_rules + "|e[attr]", "|e[attr]"); >- }, "Type selector without a namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e.c", "e.c"); >- assert_selector_serializes_to(default_ns_rules + "*|e.c", "*|e.c"); >- }, "Type selector with any namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e#id", "e#id"); >- assert_selector_serializes_to(default_ns_rules + "*|e#id", "*|e#id"); >- }, "Type selector with any namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e:hover", "e:hover"); >- assert_selector_serializes_to(default_ns_rules + "*|e:hover", "*|e:hover"); >- }, "Type selector with any namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e::before", "e::before"); >- assert_selector_serializes_to(default_ns_rules + "*|e::before", "*|e::before"); >- }, "Type selector with any namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|e[attr]", "e[attr]"); >- assert_selector_serializes_to(default_ns_rules + "*|e[attr]", "*|e[attr]"); >- }, "Type selector with any namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*.c", ".c"); >- assert_selector_serializes_to(default_ns_rules + "*.c", ".c"); >- }, "Universal selector followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*#i", "#i"); >- assert_selector_serializes_to(default_ns_rules + "*#i", "#i"); >- }, "Universal selector followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*:hover", ":hover"); >- assert_selector_serializes_to(default_ns_rules + "*:hover", ":hover"); >- }, "Universal selector followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*::before", "::before"); >- assert_selector_serializes_to(default_ns_rules + "*::before", "::before"); >- }, "Universal selector followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*[attr]", "[attr]"); >- assert_selector_serializes_to(default_ns_rules + "*[attr]", "[attr]"); >- }, "Universal selector followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*.c", "|*.c"); >- assert_selector_serializes_to(default_ns_rules + "|*.c", "|*.c"); >- }, "Universal selector without a namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*#i", "|*#i"); >- assert_selector_serializes_to(default_ns_rules + "|*#i", "|*#i"); >- }, "Universal selector without a namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*:hover", "|*:hover"); >- assert_selector_serializes_to(default_ns_rules + "|*:hover", "|*:hover"); >- }, "Universal selector without a namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*::before", "|*::before"); >- assert_selector_serializes_to(default_ns_rules + "|*::before", "|*::before"); >- }, "Universal selector without a namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "|*[attr]", "|*[attr]"); >- assert_selector_serializes_to(default_ns_rules + "|*[attr]", "|*[attr]"); >- }, "Universal selector without a namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*.c", ".c"); >- assert_selector_serializes_to(default_ns_rules + "*|*.c", "*|*.c"); >- }, "Universal selector in any namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*#id", "#id"); >- assert_selector_serializes_to(default_ns_rules + "*|*#id", "*|*#id"); >- }, "Universal selector in any namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*:hover", ":hover"); >- assert_selector_serializes_to(default_ns_rules + "*|*:hover", "*|*:hover"); >- }, "Universal selector in any namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*::before", "::before"); >- assert_selector_serializes_to(default_ns_rules + "*|*::before", "*|*::before"); >- }, "Universal selector in any namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "*|*[attr]", "[attr]"); >- assert_selector_serializes_to(default_ns_rules + "*|*[attr]", "*|*[attr]"); >- }, "Universal selector in any namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e.c", "ns|e.c"); >- assert_selector_serializes_to(default_ns_rules + "ns|e.c", "ns|e.c"); >- }, "Type selector with namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e#i", "ns|e#i"); >- assert_selector_serializes_to(default_ns_rules + "ns|e#i", "ns|e#i"); >- }, "Type selector with namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e:hover", "ns|e:hover"); >- assert_selector_serializes_to(default_ns_rules + "ns|e:hover", "ns|e:hover"); >- }, "Type selector with namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e::before", "ns|e::before"); >- assert_selector_serializes_to(default_ns_rules + "ns|e::before", "ns|e::before"); >- }, "Type selector with namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|e[attr]", "ns|e[attr]"); >- assert_selector_serializes_to(default_ns_rules + "ns|e[attr]", "ns|e[attr]"); >- }, "Type selector with namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*.c", "ns|*.c"); >- assert_selector_serializes_to(default_ns_rules + "ns|*.c", "ns|*.c"); >- }, "Universal selector with namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*#i", "ns|*#i"); >- assert_selector_serializes_to(default_ns_rules + "ns|*#i", "ns|*#i"); >- }, "Universal selector with namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*:hover", "ns|*:hover"); >- assert_selector_serializes_to(default_ns_rules + "ns|*:hover", "ns|*:hover"); >- }, "Universal selector with namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*::before", "ns|*::before"); >- assert_selector_serializes_to(default_ns_rules + "ns|*::before", "ns|*::before"); >- }, "Universal selector with namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(ns_rule + "ns|*[attr]", "ns|*[attr]"); >- assert_selector_serializes_to(default_ns_rules + "ns|*[attr]", "ns|*[attr]"); >- }, "Universal selector with namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e", "e"); >- }, "Type selector with namespace equal to default namespace"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*", "*"); >- }, "Universal selector with namespace equal to default namespace"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e.c", "e.c"); >- }, "Type selector with namespace equal to default namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e#i", "e#i"); >- }, "Type selector with namespace equal to default namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e:hover", "e:hover"); >- }, "Type selector with namespace equal to default namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e::before", "e::before"); >- }, "Type selector with namespace equal to default namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|e[attr]", "e[attr]"); >- }, "Type selector with namespace equal to default namespace followed by attribute selector"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*.c", ".c"); >- }, "Universal selector with namespace equal to default namespace followed by class"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*#i", "#i"); >- }, "Universal selector with namespace equal to default namespace followed by id"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*:hover", ":hover"); >- }, "Universal selector with namespace equal to default namespace followed by pseudo class"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*::before", "::before"); >- }, "Universal selector with namespace equal to default namespace followed by pseudo element"); >- test(function() { >- assert_selector_serializes_to(default_ns_rules + "nsdefault|*[attr]", "[attr]"); >- }, "Universal selector with namespace equal to default namespace followed by attribute selector"); >- </script> >- </body> >-</html> >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values-expected.txt >deleted file mode 100644 >index c4cf77abf695cac7ea90ca47bdd4feea782b1ac5..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values-expected.txt >+++ /dev/null >@@ -1,679 +0,0 @@ >- >-PASS background-attachment: scroll >-PASS background-attachment: fixed >-PASS background-attachment: inherit >-PASS background-color: black >-PASS background-color: red >-PASS background-color: rgb(50, 75, 100) >-FAIL background-color: rgba(5, 7, 10, 0.5) assert_equals: background-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS background-color: transparent >-PASS background-color: inherit >-PASS background-image: url("http://localhost/") >-PASS background-image: url(http://localhost/) >-PASS background-image: none >-PASS background-image: inherit >-PASS background-position: 5% 5% >-PASS background-position: 5% .5% >-PASS background-position: 5% -5% >-PASS background-position: 5% -.5% >-PASS background-position: 5% 0px >-PASS background-position: 5% 1px >-PASS background-position: 5% .1em >-PASS background-position: 5% -0px >-PASS background-position: 5% -1px >-PASS background-position: 5% -.1em >-PASS background-position: 5% top >-PASS background-position: 5% center >-PASS background-position: 5% bottom >-PASS background-position: .5% 5% >-PASS background-position: .5% .5% >-PASS background-position: .5% -5% >-PASS background-position: .5% -.5% >-PASS background-position: .5% 0px >-PASS background-position: .5% 1px >-PASS background-position: .5% .1em >-PASS background-position: .5% -0px >-PASS background-position: .5% -1px >-PASS background-position: .5% -.1em >-PASS background-position: .5% top >-PASS background-position: .5% center >-PASS background-position: .5% bottom >-PASS background-position: -5% 5% >-PASS background-position: -5% .5% >-PASS background-position: -5% -5% >-PASS background-position: -5% -.5% >-PASS background-position: -5% 0px >-PASS background-position: -5% 1px >-PASS background-position: -5% .1em >-PASS background-position: -5% -0px >-PASS background-position: -5% -1px >-PASS background-position: -5% -.1em >-PASS background-position: -5% top >-PASS background-position: -5% center >-PASS background-position: -5% bottom >-PASS background-position: -.5% 5% >-PASS background-position: -.5% .5% >-PASS background-position: -.5% -5% >-PASS background-position: -.5% -.5% >-PASS background-position: -.5% 0px >-PASS background-position: -.5% 1px >-PASS background-position: -.5% .1em >-PASS background-position: -.5% -0px >-PASS background-position: -.5% -1px >-PASS background-position: -.5% -.1em >-PASS background-position: -.5% top >-PASS background-position: -.5% center >-PASS background-position: -.5% bottom >-PASS background-position: 0px 5% >-PASS background-position: 0px .5% >-PASS background-position: 0px -5% >-PASS background-position: 0px -.5% >-PASS background-position: 0px 0px >-PASS background-position: 0px 1px >-PASS background-position: 0px .1em >-PASS background-position: 0px -0px >-PASS background-position: 0px -1px >-PASS background-position: 0px -.1em >-PASS background-position: 0px top >-PASS background-position: 0px center >-PASS background-position: 0px bottom >-PASS background-position: 1px 5% >-PASS background-position: 1px .5% >-PASS background-position: 1px -5% >-PASS background-position: 1px -.5% >-PASS background-position: 1px 0px >-PASS background-position: 1px 1px >-PASS background-position: 1px .1em >-PASS background-position: 1px -0px >-PASS background-position: 1px -1px >-PASS background-position: 1px -.1em >-PASS background-position: 1px top >-PASS background-position: 1px center >-PASS background-position: 1px bottom >-PASS background-position: .1em 5% >-PASS background-position: .1em .5% >-PASS background-position: .1em -5% >-PASS background-position: .1em -.5% >-PASS background-position: .1em 0px >-PASS background-position: .1em 1px >-PASS background-position: .1em .1em >-PASS background-position: .1em -0px >-PASS background-position: .1em -1px >-PASS background-position: .1em -.1em >-PASS background-position: .1em top >-PASS background-position: .1em center >-PASS background-position: .1em bottom >-PASS background-position: -0px 5% >-PASS background-position: -0px .5% >-PASS background-position: -0px -5% >-PASS background-position: -0px -.5% >-PASS background-position: -0px 0px >-PASS background-position: -0px 1px >-PASS background-position: -0px .1em >-PASS background-position: -0px -0px >-PASS background-position: -0px -1px >-PASS background-position: -0px -.1em >-PASS background-position: -0px top >-PASS background-position: -0px center >-PASS background-position: -0px bottom >-PASS background-position: -1px 5% >-PASS background-position: -1px .5% >-PASS background-position: -1px -5% >-PASS background-position: -1px -.5% >-PASS background-position: -1px 0px >-PASS background-position: -1px 1px >-PASS background-position: -1px .1em >-PASS background-position: -1px -0px >-PASS background-position: -1px -1px >-PASS background-position: -1px -.1em >-PASS background-position: -1px top >-PASS background-position: -1px center >-PASS background-position: -1px bottom >-PASS background-position: -.1em 5% >-PASS background-position: -.1em .5% >-PASS background-position: -.1em -5% >-PASS background-position: -.1em -.5% >-PASS background-position: -.1em 0px >-PASS background-position: -.1em 1px >-PASS background-position: -.1em .1em >-PASS background-position: -.1em -0px >-PASS background-position: -.1em -1px >-PASS background-position: -.1em -.1em >-PASS background-position: -.1em top >-PASS background-position: -.1em center >-PASS background-position: -.1em bottom >-PASS background-position: left 5% >-PASS background-position: left .5% >-PASS background-position: left -5% >-PASS background-position: left -.5% >-PASS background-position: left 0px >-PASS background-position: left 1px >-PASS background-position: left .1em >-PASS background-position: left -0px >-PASS background-position: left -1px >-PASS background-position: left -.1em >-PASS background-position: left top >-PASS background-position: left center >-PASS background-position: left bottom >-PASS background-position: center 5% >-PASS background-position: center .5% >-PASS background-position: center -5% >-PASS background-position: center -.5% >-PASS background-position: center 0px >-PASS background-position: center 1px >-PASS background-position: center .1em >-PASS background-position: center -0px >-PASS background-position: center -1px >-PASS background-position: center -.1em >-PASS background-position: center top >-PASS background-position: center center >-PASS background-position: center bottom >-PASS background-position: right 5% >-PASS background-position: right .5% >-PASS background-position: right -5% >-PASS background-position: right -.5% >-PASS background-position: right 0px >-PASS background-position: right 1px >-PASS background-position: right .1em >-PASS background-position: right -0px >-PASS background-position: right -1px >-PASS background-position: right -.1em >-PASS background-position: right top >-PASS background-position: right center >-PASS background-position: right bottom >-PASS background-position: inherit >-PASS background-repeat: repeat >-PASS background-repeat: repeat-x >-PASS background-repeat: repeat-y >-PASS background-repeat: no-repeat >-PASS background-repeat: inherit >-PASS border-collapse: collapse >-PASS border-collapse: separate >-PASS border-collapse: inherit >-PASS border-spacing: 0px >-PASS border-spacing: 1px >-PASS border-spacing: .1em >-PASS border-spacing: inherit >-PASS border-top-color: black >-PASS border-top-color: red >-PASS border-top-color: rgb(50, 75, 100) >-FAIL border-top-color: rgba(5, 7, 10, 0.5) assert_equals: border-top-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS border-top-color: transparent >-PASS border-top-color: inherit >-PASS border-right-color: black >-PASS border-right-color: red >-PASS border-right-color: rgb(50, 75, 100) >-FAIL border-right-color: rgba(5, 7, 10, 0.5) assert_equals: border-right-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS border-right-color: transparent >-PASS border-right-color: inherit >-PASS border-bottom-color: black >-PASS border-bottom-color: red >-PASS border-bottom-color: rgb(50, 75, 100) >-FAIL border-bottom-color: rgba(5, 7, 10, 0.5) assert_equals: border-bottom-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS border-bottom-color: transparent >-PASS border-bottom-color: inherit >-PASS border-left-color: black >-PASS border-left-color: red >-PASS border-left-color: rgb(50, 75, 100) >-FAIL border-left-color: rgba(5, 7, 10, 0.5) assert_equals: border-left-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS border-left-color: transparent >-PASS border-left-color: inherit >-PASS border-top-style: none >-PASS border-top-style: hidden >-PASS border-top-style: dotted >-PASS border-top-style: dashed >-PASS border-top-style: solid >-PASS border-top-style: double >-PASS border-top-style: groove >-PASS border-top-style: ridge >-PASS border-top-style: inset >-PASS border-top-style: outset >-PASS border-top-style: inherit >-PASS border-right-style: none >-PASS border-right-style: hidden >-PASS border-right-style: dotted >-PASS border-right-style: dashed >-PASS border-right-style: solid >-PASS border-right-style: double >-PASS border-right-style: groove >-PASS border-right-style: ridge >-PASS border-right-style: inset >-PASS border-right-style: outset >-PASS border-right-style: inherit >-PASS border-bottom-style: none >-PASS border-bottom-style: hidden >-PASS border-bottom-style: dotted >-PASS border-bottom-style: dashed >-PASS border-bottom-style: solid >-PASS border-bottom-style: double >-PASS border-bottom-style: groove >-PASS border-bottom-style: ridge >-PASS border-bottom-style: inset >-PASS border-bottom-style: outset >-PASS border-bottom-style: inherit >-PASS border-left-style: none >-PASS border-left-style: hidden >-PASS border-left-style: dotted >-PASS border-left-style: dashed >-PASS border-left-style: solid >-PASS border-left-style: double >-PASS border-left-style: groove >-PASS border-left-style: ridge >-PASS border-left-style: inset >-PASS border-left-style: outset >-PASS border-left-style: inherit >-PASS border-top-width: thin >-PASS border-top-width: medium >-PASS border-top-width: thick >-PASS border-top-width: 0px >-PASS border-top-width: 1px >-PASS border-top-width: .1em >-PASS border-top-width: inherit >-PASS border-right-width: thin >-PASS border-right-width: medium >-PASS border-right-width: thick >-PASS border-right-width: 0px >-PASS border-right-width: 1px >-PASS border-right-width: .1em >-PASS border-right-width: inherit >-PASS border-bottom-width: thin >-PASS border-bottom-width: medium >-PASS border-bottom-width: thick >-PASS border-bottom-width: 0px >-PASS border-bottom-width: 1px >-PASS border-bottom-width: .1em >-PASS border-bottom-width: inherit >-PASS border-left-width: thin >-PASS border-left-width: medium >-PASS border-left-width: thick >-PASS border-left-width: 0px >-PASS border-left-width: 1px >-PASS border-left-width: .1em >-PASS border-left-width: inherit >-PASS bottom: 0px >-PASS bottom: 1px >-PASS bottom: .1em >-PASS bottom: 5% >-PASS bottom: .5% >-PASS bottom: auto >-PASS bottom: inherit >-PASS caption-side: top >-PASS caption-side: bottom >-PASS caption-side: inherit >-PASS clear: none >-PASS clear: left >-PASS clear: right >-PASS clear: both >-PASS clear: inherit >-PASS clip: rect(1em, auto, 0.5px, 2000em) >-PASS clip: auto >-PASS clip: inherit >-PASS color: black >-PASS color: red >-PASS color: rgb(50, 75, 100) >-FAIL color: rgba(5, 7, 10, 0.5) assert_equals: color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-PASS color: inherit >-PASS content: normal >-PASS content: none >-FAIL content: "string" assert_equals: content raw inline style declaration expected "\"string\"" but got "string" >-FAIL content: 'string' assert_equals: content raw inline style declaration expected "\"string\"" but got "string" >-PASS content: url("http://localhost/") >-PASS content: url(http://localhost/) >-PASS content: counter(par-num) >-PASS content: counter(par-num, upper-roman) >-PASS content: attr(foo-bar) >-PASS content: attr(foo_bar) >-PASS content: inherit >-PASS cursor: auto >-PASS cursor: crosshair >-PASS cursor: default >-PASS cursor: pointer >-PASS cursor: move >-PASS cursor: e-resize >-PASS cursor: ne-resize >-PASS cursor: nw-resize >-PASS cursor: n-resize >-PASS cursor: se-resize >-PASS cursor: sw-resize >-PASS cursor: s-resize >-PASS cursor: w-resize >-PASS cursor: text >-PASS cursor: wait >-PASS cursor: help >-PASS cursor: progress >-PASS cursor: inherit >-PASS direction: ltr >-PASS direction: rtl >-PASS direction: inherit >-PASS display: inline >-PASS display: block >-PASS display: list-item >-PASS display: inline-block >-PASS display: table >-PASS display: inline-table >-PASS display: table-row-group >-PASS display: table-header-group >-PASS display: table-footer-group >-PASS display: table-row >-PASS display: table-column-group >-PASS display: table-column >-PASS display: table-cell >-PASS display: table-caption >-PASS display: none >-PASS display: inherit >-PASS empty-cells: show >-PASS empty-cells: hide >-PASS empty-cells: inherit >-PASS float: left >-PASS float: right >-PASS float: none >-PASS float: inherit >-PASS font-family: Arial >-PASS font-family: 'Lucida Grande' >-PASS font-family: serif >-PASS font-family: sans-serif >-PASS font-family: inherit >-PASS font-size: xx-small >-PASS font-size: x-small >-PASS font-size: small >-PASS font-size: medium >-PASS font-size: large >-PASS font-size: x-large >-PASS font-size: xx-large >-PASS font-size: larger >-PASS font-size: smaller >-PASS font-size: 0px >-PASS font-size: 1px >-PASS font-size: .1em >-PASS font-size: 5% >-PASS font-size: .5% >-PASS font-size: inherit >-PASS font-style: normal >-PASS font-style: italic >-PASS font-style: oblique >-PASS font-style: inherit >-FAIL font-variant: normal assert_equals: font-variant raw inline style declaration expected "normal" but got "" >-FAIL font-variant: small-caps assert_equals: font-variant raw inline style declaration expected "small-caps" but got "" >-FAIL font-variant: inherit assert_equals: font-variant raw inline style declaration expected "inherit" but got "" >-PASS font-weight: normal >-PASS font-weight: bold >-PASS font-weight: bolder >-PASS font-weight: lighter >-PASS font-weight: 100 >-PASS font-weight: 200 >-PASS font-weight: 300 >-PASS font-weight: 400 >-PASS font-weight: 500 >-PASS font-weight: 600 >-PASS font-weight: 700 >-PASS font-weight: 800 >-PASS font-weight: 900 >-PASS font-weight: inherit >-PASS height: 0px >-PASS height: 1px >-PASS height: .1em >-PASS height: 5% >-PASS height: .5% >-PASS height: auto >-PASS height: inherit >-PASS left: 0px >-PASS left: 1px >-PASS left: .1em >-PASS left: 5% >-PASS left: .5% >-PASS left: auto >-PASS left: inherit >-PASS letter-spacing: normal >-PASS letter-spacing: 0px >-PASS letter-spacing: 1px >-PASS letter-spacing: .1em >-PASS letter-spacing: inherit >-PASS line-height: normal >-PASS line-height: 0 >-PASS line-height: -0 >-PASS line-height: 1000 >-PASS line-height: 0.9 >-PASS line-height: 0px >-PASS line-height: 1px >-PASS line-height: .1em >-PASS line-height: 5% >-PASS line-height: .5% >-PASS line-height: inherit >-PASS list-style-image: url("http://localhost/") >-PASS list-style-image: url(http://localhost/) >-PASS list-style-image: none >-PASS list-style-image: inherit >-PASS list-style-position: inside >-PASS list-style-position: outside >-PASS list-style-position: inherit >-PASS list-style-type: disc >-PASS list-style-type: circle >-PASS list-style-type: square >-PASS list-style-type: decimal >-PASS list-style-type: decimal-leading-zero >-PASS list-style-type: lower-roman >-PASS list-style-type: upper-roman >-PASS list-style-type: lower-greek >-PASS list-style-type: lower-latin >-PASS list-style-type: upper-latin >-PASS list-style-type: armenian >-PASS list-style-type: georgian >-PASS list-style-type: lower-alpha >-PASS list-style-type: upper-alpha >-PASS list-style-type: none >-PASS list-style-type: inherit >-PASS margin-right: 0px >-PASS margin-right: 1px >-PASS margin-right: .1em >-PASS margin-right: 5% >-PASS margin-right: .5% >-PASS margin-right: auto >-PASS margin-right: inherit >-PASS margin-left: 0px >-PASS margin-left: 1px >-PASS margin-left: .1em >-PASS margin-left: 5% >-PASS margin-left: .5% >-PASS margin-left: auto >-PASS margin-left: inherit >-PASS margin-top: 0px >-PASS margin-top: 1px >-PASS margin-top: .1em >-PASS margin-top: 5% >-PASS margin-top: .5% >-PASS margin-top: auto >-PASS margin-top: inherit >-PASS margin-bottom: 0px >-PASS margin-bottom: 1px >-PASS margin-bottom: .1em >-PASS margin-bottom: 5% >-PASS margin-bottom: .5% >-PASS margin-bottom: auto >-PASS margin-bottom: inherit >-PASS max-height: 0px >-PASS max-height: 1px >-PASS max-height: .1em >-PASS max-height: 5% >-PASS max-height: .5% >-PASS max-height: none >-PASS max-height: inherit >-PASS max-width: 0px >-PASS max-width: 1px >-PASS max-width: .1em >-PASS max-width: 5% >-PASS max-width: .5% >-PASS max-width: none >-PASS max-width: inherit >-PASS min-height: 0px >-PASS min-height: 1px >-PASS min-height: .1em >-PASS min-height: 5% >-PASS min-height: .5% >-PASS min-height: inherit >-PASS min-width: 0px >-PASS min-width: 1px >-PASS min-width: .1em >-PASS min-width: 5% >-PASS min-width: .5% >-PASS min-width: inherit >-PASS orphans: 101 >-PASS orphans: inherit >-PASS outline-color: black >-PASS outline-color: red >-PASS outline-color: rgb(50, 75, 100) >-FAIL outline-color: rgba(5, 7, 10, 0.5) assert_equals: outline-color raw inline style declaration expected "rgba(5, 7, 10, 0.5)" but got "rgba(5, 7, 10, 0.498039)" >-FAIL outline-color: invert assert_equals: outline-color raw inline style declaration expected "invert" but got "" >-PASS outline-color: inherit >-PASS outline-style: none >-PASS outline-style: dotted >-PASS outline-style: dashed >-PASS outline-style: solid >-PASS outline-style: double >-PASS outline-style: groove >-PASS outline-style: ridge >-PASS outline-style: inset >-PASS outline-style: outset >-PASS outline-style: inherit >-PASS outline-width: thin >-PASS outline-width: medium >-PASS outline-width: thick >-PASS outline-width: 0px >-PASS outline-width: 1px >-PASS outline-width: .1em >-PASS outline-width: inherit >-PASS overflow: visible >-PASS overflow: hidden >-PASS overflow: scroll >-PASS overflow: auto >-PASS overflow: inherit >-PASS padding-top: 0px >-PASS padding-top: 1px >-PASS padding-top: .1em >-PASS padding-top: 5% >-PASS padding-top: .5% >-PASS padding-top: inherit >-PASS padding-right: 0px >-PASS padding-right: 1px >-PASS padding-right: .1em >-PASS padding-right: 5% >-PASS padding-right: .5% >-PASS padding-right: inherit >-PASS padding-bottom: 0px >-PASS padding-bottom: 1px >-PASS padding-bottom: .1em >-PASS padding-bottom: 5% >-PASS padding-bottom: .5% >-PASS padding-bottom: inherit >-PASS padding-left: 0px >-PASS padding-left: 1px >-PASS padding-left: .1em >-PASS padding-left: 5% >-PASS padding-left: .5% >-PASS padding-left: inherit >-FAIL page-break-after: auto assert_equals: page-break-after raw inline style declaration expected "auto" but got "" >-FAIL page-break-after: always assert_equals: page-break-after raw inline style declaration expected "always" but got "" >-FAIL page-break-after: avoid assert_equals: page-break-after raw inline style declaration expected "avoid" but got "" >-FAIL page-break-after: left assert_equals: page-break-after raw inline style declaration expected "left" but got "" >-FAIL page-break-after: right assert_equals: page-break-after raw inline style declaration expected "right" but got "" >-PASS page-break-after: inherit >-FAIL page-break-before: auto assert_equals: page-break-before raw inline style declaration expected "auto" but got "" >-FAIL page-break-before: always assert_equals: page-break-before raw inline style declaration expected "always" but got "" >-FAIL page-break-before: avoid assert_equals: page-break-before raw inline style declaration expected "avoid" but got "" >-FAIL page-break-before: left assert_equals: page-break-before raw inline style declaration expected "left" but got "" >-FAIL page-break-before: right assert_equals: page-break-before raw inline style declaration expected "right" but got "" >-PASS page-break-before: inherit >-FAIL page-break-inside: avoid assert_equals: page-break-inside raw inline style declaration expected "avoid" but got "" >-FAIL page-break-inside: auto assert_equals: page-break-inside raw inline style declaration expected "auto" but got "" >-PASS page-break-inside: inherit >-PASS position: static >-PASS position: relative >-PASS position: absolute >-PASS position: fixed >-PASS position: inherit >-PASS right: 0px >-PASS right: 1px >-PASS right: .1em >-PASS right: 5% >-PASS right: .5% >-PASS right: auto >-PASS right: inherit >-PASS table-layout: auto >-PASS table-layout: fixed >-PASS table-layout: inherit >-PASS text-align: left >-PASS text-align: right >-PASS text-align: center >-PASS text-align: justify >-PASS text-align: inherit >-PASS text-decoration: none >-PASS text-decoration: underline >-PASS text-decoration: overline >-PASS text-decoration: line-through >-PASS text-decoration: blink >-PASS text-decoration: inherit >-PASS text-indent: 0px >-PASS text-indent: 1px >-PASS text-indent: .1em >-PASS text-indent: 5% >-PASS text-indent: .5% >-PASS text-indent: inherit >-PASS text-transform: capitalize >-PASS text-transform: uppercase >-PASS text-transform: lowercase >-PASS text-transform: none >-PASS text-transform: inherit >-PASS top: 0px >-PASS top: 1px >-PASS top: .1em >-PASS top: 5% >-PASS top: .5% >-PASS top: auto >-PASS top: inherit >-PASS unicode-bidi: normal >-PASS unicode-bidi: embed >-PASS unicode-bidi: bidi-override >-PASS unicode-bidi: inherit >-PASS vertical-align: baseline >-PASS vertical-align: sub >-PASS vertical-align: super >-PASS vertical-align: top >-PASS vertical-align: text-top >-PASS vertical-align: middle >-PASS vertical-align: bottom >-PASS vertical-align: text-bottom >-PASS vertical-align: 5% >-PASS vertical-align: .5% >-PASS vertical-align: 0px >-PASS vertical-align: 1px >-PASS vertical-align: .1em >-PASS vertical-align: inherit >-PASS visibility: visible >-PASS visibility: hidden >-PASS visibility: collapse >-PASS visibility: inherit >-PASS white-space: normal >-PASS white-space: pre >-PASS white-space: nowrap >-PASS white-space: pre-wrap >-PASS white-space: pre-line >-PASS white-space: inherit >-PASS widows: 101 >-PASS widows: inherit >-PASS width: 0px >-PASS width: 1px >-PASS width: .1em >-PASS width: 5% >-PASS width: .5% >-PASS width: auto >-PASS width: inherit >-PASS word-spacing: normal >-PASS word-spacing: 0px >-PASS word-spacing: 1px >-PASS word-spacing: .1em >-PASS word-spacing: inherit >-PASS z-index: auto >-PASS z-index: 0 >-PASS z-index: 101 >-PASS z-index: -51 >-PASS z-index: inherit >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html >deleted file mode 100644 >index 8f6f3d28d03c970decba0366beaff84f96ac348e..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html >+++ /dev/null >@@ -1,596 +0,0 @@ >-<!DOCTYPE html> >-<meta charset="utf-8"> >-<title>CSSOM serialize values</title> >-<meta name="author" title="Josh Matthews" href="mailto:josh@joshmatthews.net"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<body> >- <div id="log"></div> >- <div id="parent"></div> >- <script> >- function iterable(values) { >- var i = 0; >- return function() { >- if (i < values.length) { >- return values[i++]; >- } >- return null; >- } >- } >- >- function color() { >- var colors = ['black', 'red', 'rgb(50, 75, 100)', 'rgba(5, 7, 10, 0.5)']; >- return iterable(colors); >- } >- >- function percentage() { >- var values = ["5%", {actual: ".5%", serialized: "0.5%"}]; >- return iterable(values); >- } >- >- function negative_percentage() { >- var values = ["-5%", {actual: "-.5%", serialized: "-0.5%"}]; >- return iterable(values); >- } >- >- function length() { >- var values = ["0px", "1px", {actual: ".1em", serialized: "0.1em"}]; >- return iterable(values); >- } >- >- function negative_length() { >- var values = [{actual: "-0px", serialized: "0px"}, >- "-1px", {actual: "-.1em", serialized: "-0.1em"}]; >- return iterable(values); >- } >- >- function degree() { >- var values = ["87deg"]; >- return iterable(values); >- } >- >- function uri() { >- var values = ["url(\"http://localhost/\")", >- {actual: "url(http://localhost/)", >- serialized: "url(\"http://localhost/\")"}]; >- return iterable(values); >- } >- >- function border_style() { >- var values = ['none', 'hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', >- 'inset', 'outset']; >- return iterable(values); >- } >- >- function border_style_without_hidden() { >- var values = ['none', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', >- 'inset', 'outset']; >- return iterable(values); >- } >- >- function integer() { >- var values = ['0', '101', '-51']; >- return iterable(values); >- } >- >- function nonzero_positive_integer() { >- var values = ['101']; >- return iterable(values); >- } >- >- function shape() { >- var values = ['rect(1em, auto, 0.5px, 2000em)']; >- return iterable(values); >- } >- >- function string() { >- var values = ['"string"', {actual: "'string'", serialized: '"string"'}]; >- return iterable(values); >- } >- >- function counter() { >- var values = [{actual: 'counter(par-num)', >- serialized: 'counter(par-num, decimal)'}, >- 'counter(par-num, upper-roman)']; >- return iterable(values); >- } >- >- function attr() { >- var values = ['attr(foo-bar)', 'attr(foo_bar)']; >- return iterable(values); >- } >- >- function family_name() { >- var values = ['Arial', {actual: "'Lucida Grande'", serialized: '"Lucida Grande"'}]; >- return iterable(values); >- } >- >- function generic_family() { >- var values = ['serif', 'sans-serif']; >- return iterable(values); >- } >- >- function absolute_size() { >- var values = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; >- return iterable(values); >- } >- >- function relative_size() { >- var values = ['larger', 'smaller']; >- return iterable(values); >- } >- >- function number() { >- var values = ['0', {'actual': '-0', serialized: '0'}, '1000', '-5123', '0.9', '-0.09']; >- return iterable(values); >- } >- >- function positive_number() { >- var values = ['0', {'actual': '-0', serialized: '0'}, '1000', '0.9']; >- return iterable(values); >- } >- >- function generate_inline_style(name, value) { >- if (value) { >- return {'declaration': name + ": " + value.actual, >- 'value': value.actual, >- 'result': value.expected}; >- } >- return null; >- } >- >- function create_result(actual, expected) { >- return {actual: actual, expected: expected} >- } >- >- function all_values(values) { >- var results = []; >- for (var i = 0; i < values.length; i++) { >- var value = values[i]; >- if (typeof value == "function") { >- var f = value(); >- var result; >- while ((result = f()) != null) { >- if (typeof result == "object" && 'serialized' in result) { >- results.push(create_result(result.actual, result.serialized)); >- } else { >- results.push(create_result(result, result)); >- } >- } >- } else if (typeof value == "string") { >- results.push(create_result(value, value)); >- } else if (value instanceof Array) { >- var subresults = []; >- for (var j = 0; j < value.length; j++) { >- var subresult = all_values(value[j], true); >- if (!(subresult instanceof Array)) { >- subresult = [subresult]; >- } >- subresults.push(subresult); >- } >- if (subresults.length > 1) { >- function choose_slices(vecs) { >- if (vecs.length == 1) { >- return vecs[0].map(function(v) { return [v]; }); >- } >- var slice_results = []; >- var rest = choose_slices(vecs.slice(1, vecs.length)); >- for (var a = 0; a < vecs[0].length; a++) { >- for (var b = 0; b < rest.length; b++) { >- var result = vecs[0][a]; >- slice_results.push([result].concat(rest[b])); >- } >- } >- return slice_results; >- } >- >- subresults = choose_slices(subresults).map(function (a) { >- var actual = a.map(function(a) { return a.actual }); >- var expected = a.map(function(a) { return a.expected }); >- return create_result(actual.join(' '), expected.join(' ')) >- }); >- } >- for (var j = 0; j < subresults.length; j++) { >- results = results.concat(subresults[j]); >- } >- } else if (value instanceof Object && 'serialized' in value) { >- results.push(create_result(value.actual, value.serialized)); >- } else if (typeof value == "number") { >- results.push(create_result(value.toString(), value.toString())); >- } else { >- throw "unexpected value type: " + typeof(value); >- } >- } >- return results; >- } >- >- function create_value_generator(property) { >- var results = all_values(property.values); >- return iterable(results); >- } >- >- function to_idl(property) { >- return property.replace(/-\w/g, function(x){return x[1].toUpperCase()}); >- } >- >- function run_individual_test(property, generator, initial) { >- var elem = document.createElement('div'); >- document.getElementById('parent').appendChild(elem); >- var test_data = generator(); >- var style = generate_inline_style(property, test_data); >- if (!style) { >- return false; >- } >- var t = async_test(style.declaration); >- >- t.add_cleanup(function() { >- document.getElementById('parent').removeChild(elem); >- }); >- >- t.step(function() { >- elem.setAttribute('style', style.declaration); >- var expected = style.result; >- var serialized = elem.style[to_idl(property)]; >- assert_equals(serialized, expected, property + ' raw inline style declaration'); >- elem.setAttribute('style', ''); >- elem.style[to_idl(property)] = style.value; >- assert_equals(elem.style[to_idl(property)], expected, property + ' style property'); >- }); >- t.done(); >- return true; >- } >- >- function test_property(property) { >- var generator = create_value_generator(property[1]); >- while (run_individual_test(property[0], generator, property[1].initial)) { >- } >- } >- >- var properties = [ >- ['background-attachment', { >- 'values': ['scroll', 'fixed', 'inherit'], >- 'initial': 'scroll', >- }], >- ['background-color', { >- 'values': [color, 'transparent', 'inherit'], >- 'initial': 'transparent', >- }], >- ['background-image', { >- 'values': [uri, 'none', 'inherit'], >- 'initial': 'none', >- }], >- ['background-position', { >- 'values': [[[percentage, negative_percentage, length, negative_length, >- 'left', 'center', 'right'], >- [percentage, negative_percentage, length, negative_length, >- 'top', 'center', 'bottom']], >- 'inherit'], >- 'initial': '0% 0%', >- }], >- ['background-repeat', { >- 'values': ['repeat', 'repeat-x', 'repeat-y', 'no-repeat', 'inherit'], >- 'initial': 'repeat', >- }], >- //background >- ['border-collapse', { >- 'values': ['collapse', 'separate', 'inherit'], >- 'initial': 'separate', >- }], >- //border-color >- ['border-spacing', { >- 'values': [length, 'inherit'], >- 'initial': '0', >- }], >- //border-style >- //border-top, border-right, border-bottom, border-left >- ['border-top-color', { >- 'values': [color, 'transparent', 'inherit'], >- 'initial': 'black', //FIXME >- }], >- ['border-right-color', { >- 'values': [color, 'transparent', 'inherit'], >- 'initial': 'black', //FIXME >- }], >- ['border-bottom-color', { >- 'values': [color, 'transparent', 'inherit'], >- 'initial': 'black', //FIXME >- }], >- ['border-left-color', { >- 'values': [color, 'transparent', 'inherit'], >- 'initial': 'black', //FIXME >- }], >- ['border-top-style', { >- 'values': [border_style, 'inherit'], >- 'initial': null, >- }], >- ['border-right-style', { >- 'values': [border_style, 'inherit'], >- 'initial': null, >- }], >- ['border-bottom-style', { >- 'values': [border_style, 'inherit'], >- 'initial': null, >- }], >- ['border-left-style', { >- 'values': [border_style, 'inherit'], >- 'initial': null, >- }], >- ['border-top-width', { >- 'values': ['thin', 'medium', 'thick', length, 'inherit'], >- 'initial': 'medium', >- }], >- ['border-right-width', { >- 'values': ['thin', 'medium', 'thick', length, 'inherit'], >- 'initial': 'medium', >- }], >- ['border-bottom-width', { >- 'values': ['thin', 'medium', 'thick', length, 'inherit'], >- 'initial': 'medium', >- }], >- ['border-left-width', { >- 'values': ['thin', 'medium', 'thick', length, 'inherit'], >- 'initial': 'medium', >- }], >- //border-width >- //border >- ['bottom', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['caption-side', { >- 'values': ['top', 'bottom', 'inherit'], >- 'initial': 'top', >- }], >- ['clear', { >- 'values': ['none', 'left', 'right', 'both', 'inherit'], >- 'initial': 'none', >- }], >- ['clip', { >- 'values': [shape, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['color', { >- 'values': [color, 'inherit'], >- 'initial': 'black', //FIXME depends on user agent >- }], >- ['content', { >- 'values': ['normal', 'none', string, uri, counter, attr, 'inherit'], //FIXME >- 'initial': 'normal', >- }], >- //counter-increment >- //counter-reset >- ['cursor', { >- 'values': [ 'auto', 'crosshair', 'default', 'pointer', 'move', 'e-resize', 'ne-resize', >- 'nw-resize', 'n-resize', 'se-resize', 'sw-resize', 's-resize', 'w-resize', >- 'text', 'wait', 'help', 'progress', 'inherit'], >- 'initial': 'auto', >- }], >- ['direction', { >- 'values': ['ltr', 'rtl', 'inherit'], >- 'initial': 'ltr', >- }], >- ['display', { >- 'values': ['inline', 'block', 'list-item', 'inline-block', 'table', 'inline-table', >- 'table-row-group', 'table-header-group', 'table-footer-group', 'table-row', >- 'table-column-group', 'table-column', 'table-cell', 'table-caption', 'none', >- 'inherit'], >- 'initial': 'inline', >- }], >- ['empty-cells', { >- 'values': ['show', 'hide', 'inherit'], >- 'initial': 'show', >- }], >- ['float', { >- 'values': ['left', 'right', 'none', 'inherit'], >- 'initial': 'none', >- 'property': 'cssFloat', >- }], >- ['font-family', { >- 'values': [family_name, generic_family, 'inherit'], >- 'initial': 'sans-serif', //FIXME depends on user agent >- }], >- ['font-size', { >- 'values': [absolute_size, relative_size, length, percentage, 'inherit'], >- 'initial': 'medium', >- }], >- ['font-style', { >- 'values': ['normal', 'italic', 'oblique', 'inherit'], >- 'initial': 'normal', >- }], >- ['font-variant', { >- 'values': ['normal', 'small-caps', 'inherit'], >- 'initial': 'normal', >- }], >- ['font-weight', { >- 'values': ['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, >- 700, 800, 900, 'inherit'], >- 'initial': 'normal', >- }], >- //font >- ['height', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['left', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['letter-spacing', { >- 'values': ['normal', length, 'inherit'], >- 'initial': 'normal', >- }], >- ['line-height', { >- 'values': ['normal', positive_number, length, percentage, 'inherit'], >- 'initial': 'normal', >- }], >- ['list-style-image', { >- 'values': [uri, 'none', 'inherit'], >- 'initial': 'none', >- }], >- ['list-style-position', { >- 'values': ['inside', 'outside', 'inherit'], >- 'initial': 'outside', >- }], >- ['list-style-type', { >- 'values': ['disc', 'circle', 'square', 'decimal', 'decimal-leading-zero', 'lower-roman', >- 'upper-roman', 'lower-greek', 'lower-latin', 'upper-latin', 'armenian', 'georgian', >- 'lower-alpha', 'upper-alpha', 'none', 'inherit'], >- 'initial': 'disc', >- }], >- //list-style >- ['margin-right', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 0, >- }], >- ['margin-left', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 0, >- }], >- ['margin-top', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 0, >- }], >- ['margin-bottom', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 0, >- }], >- //margin >- ['max-height', { >- 'values': [length, percentage, 'none', 'inherit'], >- 'initial': 'none', >- }], >- ['max-width', { >- 'values': [length, percentage, 'none', 'inherit'], >- 'initial': 'none', >- }], >- ['min-height', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['min-width', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['orphans', { >- 'values': [nonzero_positive_integer, 'inherit'], >- 'initial': 2, >- }], >- ['outline-color', { >- 'values': [color, 'invert', 'inherit'], >- 'initial': 'invert', >- }], >- ['outline-style', { >- 'values': [border_style_without_hidden, 'inherit'], >- 'initial': 'none', >- }], >- ['outline-width', { >- 'values': ['thin', 'medium', 'thick', length, 'inherit'], >- 'initial': 'medium', >- }], >- //outline >- ['overflow', { >- 'values': ['visible', 'hidden', 'scroll', 'auto', 'inherit'], >- 'initial': 'visible', >- }], >- ['padding-top', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['padding-right', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['padding-bottom', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['padding-left', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- //padding >- ['page-break-after', { >- 'values': ['auto', 'always', 'avoid', 'left', 'right', 'inherit'], >- 'initial': 'auto', >- }], >- ['page-break-before', { >- 'values': ['auto', 'always', 'avoid', 'left', 'right', 'inherit'], >- 'initial': 'auto', >- }], >- ['page-break-inside', { >- 'values': ['avoid', 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['position', { >- 'values': ['static', 'relative', 'absolute', 'fixed', 'inherit'], >- 'initial': 'static', >- }], >- //FIXME quotes >- ['right', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['table-layout', { >- 'values': ['auto', 'fixed', 'inherit'], >- 'initial': 'auto', >- }], >- ['text-align', { >- 'values': ['left', 'right', 'center', 'justify', 'inherit'], >- 'initial': null, >- }], >- ['text-decoration', { >- 'values': ['none', 'underline', 'overline', 'line-through', 'blink', 'inherit'], >- 'initial': 'none', >- }], >- ['text-indent', { >- 'values': [length, percentage, 'inherit'], >- 'initial': 0, >- }], >- ['text-transform', { >- 'values': ['capitalize', 'uppercase', 'lowercase', 'none', 'inherit'], >- 'initial': 'none', >- }], >- ['top', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['unicode-bidi', { >- 'values': ['normal', 'embed', 'bidi-override', 'inherit'], >- 'initial': 'normal', >- }], >- ['vertical-align', { >- 'values': ['baseline', 'sub', 'super', 'top', 'text-top', 'middle', 'bottom', 'text-bottom', >- percentage, length, 'inherit'], >- 'initial': 'baseline', >- }], >- ['visibility', { >- 'values': ['visible', 'hidden', 'collapse', 'inherit'], >- 'initial': 'visible', >- }], >- ['white-space', { >- 'values': ['normal', 'pre', 'nowrap', 'pre-wrap', 'pre-line', 'inherit'], >- 'initial': 'normal', >- }], >- ['widows', { >- 'values': [nonzero_positive_integer, 'inherit'], >- 'initial': 2, >- }], >- ['width', { >- 'values': [length, percentage, 'auto', 'inherit'], >- 'initial': 'auto', >- }], >- ['word-spacing', { >- 'values': ['normal', length, 'inherit'], >- 'initial': 'normal', >- }], >- ['z-index', { >- 'values': ['auto', integer, 'inherit'], >- 'initial': 'auto', >- }], >- ] >- >- for (var index = 0; index < properties.length; index++) { >- test_property(properties[index]); >- } >- </script> >-</body> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference-expected.txt >deleted file mode 100644 >index 1d31a15e7c8001a439348d1490cc4f4e6c3c0a92..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference-expected.txt >+++ /dev/null >@@ -1,6 +0,0 @@ >- >-PASS Longhand with variable preserves original serialization: with withespace >-PASS Shorthand with variable preserves original serialization: with withespace >-FAIL Longhand with variable preserves original serialization: without withespace assert_equals: expected "font-size:var(--a);" but got "font-size: var(--a);" >-FAIL Shorthand with variable preserves original serialization: without withespace assert_equals: expected "font:var(--a);" but got "font: var(--a);" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference.html >deleted file mode 100644 >index d714b81518b362aa6e9209ce2b57d2faa05b2bac..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference.html >+++ /dev/null >@@ -1,34 +0,0 @@ >-<!doctype html> >-<meta charset="utf-8"> >-<title>CSSOM - Serialization with variable preserves original serialization.</title> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<div id="longhand-whitespace" style="font-size: var(--a);"></div> >-<div id="shorthand-whitespace" style="font: var(--a);"></div> >-<div id="longhand" style="font-size:var(--a);"></div> >-<div id="shorthand" style="font:var(--a);"></div> >-<script> >- test(function() { >- var elem = document.getElementById('longhand-whitespace'); >- >- assert_equals(elem.style.cssText, 'font-size: var(--a);'); >- }, 'Longhand with variable preserves original serialization: with withespace') >- >- test(function() { >- var elem = document.getElementById('shorthand-whitespace'); >- >- assert_equals(elem.style.cssText, 'font: var(--a);'); >- }, 'Shorthand with variable preserves original serialization: with withespace') >- >- test(function() { >- var elem = document.getElementById('longhand'); >- >- assert_equals(elem.style.cssText, 'font-size:var(--a);'); >- }, 'Longhand with variable preserves original serialization: without withespace') >- >- test(function() { >- var elem = document.getElementById('shorthand'); >- >- assert_equals(elem.style.cssText, 'font:var(--a);'); >- }, 'Shorthand with variable preserves original serialization: without withespace') >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization-expected.txt >deleted file mode 100644 >index d1f00505996e44f2f63786e2e7bc4903a090f9ba..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization-expected.txt >+++ /dev/null >@@ -1,12 +0,0 @@ >-foo >-foo >-foo >-foo >-foo >-foo >-foo >- >-PASS Shorthand serialization with shorthand and longhands mixed. >-PASS Shorthand serialization with just longhands. >-FAIL Shorthand serialization with variable and variable from other shorthand. assert_equals: expected "var(--a)" but got "" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization.html >deleted file mode 100644 >index c34b1652626c9a08d9bc72148853805eb0afdc97..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization.html >+++ /dev/null >@@ -1,53 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>Shorthand serialization should be done correctly.</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >-</head> >-<body> >- <div id="foo1" style="background: red;">foo</div> >- <div id="foo2" style="background-color: blue; background: red !important; background-color: green;">foo</div> >- <div id="foo3" style="background-color: blue; background: red; background-color: green !important;">foo</div> >- >- <div id="foo4" style="margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px;">foo</div> >- <div id="foo5" style="margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px!important;">foo</div> >- <div id="foo6" style="margin-right: 10px !important; margin-left: 10px !important; margin-top: 10px !important; margin-bottom: 10px!important;">foo</div> >- >- <div id="foo7" style="background:var(--a);">foo</a> >- >- <script> >- test(function() { >- var elem1 = document.getElementById('foo1'); >- var elem2 = document.getElementById('foo2'); >- var elem3 = document.getElementById('foo3'); >- >- assert_false(elem1.style.cssText.endsWith('!important;')); >- assert_true(elem2.style.cssText.endsWith('!important;')); >- assert_false(elem3.style.background.endsWith('!important')); >- >- }, "Shorthand serialization with shorthand and longhands mixed."); >- >- test(function() { >- var elem4 = document.getElementById('foo4'); >- var elem5 = document.getElementById('foo5'); >- var elem6 = document.getElementById('foo6'); >- >- assert_equals(elem4.style.cssText, 'margin: 10px;'); >- assert_equals(elem4.style.margin, '10px'); >- assert_equals(elem5.style.cssText, 'margin-right: 10px; margin-left: 10px; margin-top: 10px; margin-bottom: 10px !important;'); >- assert_equals(elem5.style.margin, ''); >- assert_equals(elem6.style.cssText, 'margin: 10px !important;'); >- assert_equals(elem6.style.margin, '10px'); >- }, "Shorthand serialization with just longhands."); >- >- test(function() { >- var elem7 = document.getElementById('foo7'); >- >- assert_equals(elem7.style.background, 'var(--a)'); >- assert_equals(elem7.style.backgroundPosition, ''); >- }, "Shorthand serialization with variable and variable from other shorthand."); >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt >deleted file mode 100644 >index e6930178e3634f3571b828f50af67508f004b960..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt >+++ /dev/null >@@ -1,8 +0,0 @@ >- >-FAIL sheet_property assert_own_property: expected property "sheet" missing >-PASS sheet_property_updates >-FAIL CSSStyleSheet_properties undefined is not an object (evaluating 'object.hasOwnProperty') >-FAIL CSSStyleSheet_property_values undefined is not an object (evaluating 'styleSheet.ownerRule') >-FAIL StyleSheet_properties undefined is not an object (evaluating 'object.hasOwnProperty') >-FAIL StyleSheet_property_values undefined is not an object (evaluating 'styleSheet.type') >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001.html >deleted file mode 100644 >index fb1fde86efff626fadff20ceaa01938ce6bc52c4..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001.html >+++ /dev/null >@@ -1,139 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: CSSOM StyleSheet Initial Values</title> >- <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheets"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="StyleSheet and CSSStyleSheet objects have the properties specified in their interfaces"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement" type="text/css" media="all" title="internal style sheet" disabled="disabled"> >- @import url('support/a-green.css'); >- * { margin: 0; padding: 0; } >- </style> >- <link id="linkElement" rel="stylesheet" href="support/b-green.css"> >-<script id="metadata_cache">/* >-{ >- "sheet_property": { >- "help": "http://www.w3.org/TR/cssom-1/#the-linkstyle-interface", >- "assert": ["styleElement.sheet exists", >- "styleElement.sheet is a CSSStyleSheet", >- "linkElement.sheet exists", >- "linkElement.sheet is a CSSStyleSheet"] >- }, >- "CSSStyleSheet_properties": { >- "assert": ["ownerRule, cssRules, insertRule and deleteRule properties exist on CSSStyleSheet", >- "ownerRule, cssRules are read only"] >- }, >- "CSSStyleSheet_property_values": { >- "help": ["http://www.w3.org/TR/cssom-1/#css-style-sheets", >- "http://www.w3.org/TR/cssom-1/#cssimportrule"], >- "assert": "CSSStyleSheet initial property values are correct" >- }, >- "StyleSheet_properties": { >- "assert": ["type, disabled, ownerNode, parentStyleSheet, href, title, and media properties exist on StyleSheet", >- "type, ownerNode, parentStyleSheet, href, title, media properties are read only"] >- }, >- "StyleSheet_property_values": { "assert": "StyleSheet initial property values are correct" } >-} >-*/</script> >- </head> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <script type="text/javascript"> >- var styleElement = document.getElementById("styleElement"); >- var linkElement = document.getElementById("linkElement"); >- >- var styleSheet; >- var linkSheet; >- test(function() { >- assert_own_property(styleElement, "sheet"); >- assert_readonly(styleElement, "sheet"); >- styleSheet = styleElement.sheet; >- assert_true(styleSheet instanceof CSSStyleSheet); >- assert_own_property(linkElement, "sheet"); >- linkSheet = linkElement.sheet; >- assert_true(linkSheet instanceof CSSStyleSheet); >- }, "sheet_property", >- { help: "http://www.w3.org/TR/cssom-1/#the-linkstyle-interface", >- assert: [ "styleElement.sheet exists", "styleElement.sheet is a CSSStyleSheet", >- "linkElement.sheet exists", "linkElement.sheet is a CSSStyleSheet"] }); >- >- test(function () { >- var style = document.createElement("style"); >- document.querySelector("head").appendChild(style); >- var sheet1 = style.sheet; >- assert_equals(sheet1.cssRules.length, 0); >- style.appendChild(document.createTextNode("a { color: green; }")); >- assert_equals(style.sheet.cssRules.length, 1); >- }, "sheet_property_updates", >- { help: "https://www.w3.org/TR/cssom-1/#the-linkstyle-interface", >- assert: "The sheet property on LinkStyle should always return the current associated style sheet." }); >- >- test(function() { >- assert_own_property(styleSheet, "ownerRule"); >- assert_own_property(styleSheet, "cssRules"); >- assert_inherits(styleSheet, "insertRule"); >- assert_inherits(styleSheet, "deleteRule"); >- >- assert_readonly(styleSheet, "ownerRule"); >- assert_readonly(styleSheet, "cssRules"); >- }, "CSSStyleSheet_properties", >- { assert: [ "ownerRule, cssRules, insertRule and deleteRule properties exist on CSSStyleSheet", >- "ownerRule, cssRules are read only"] }); >- >- var importSheet; >- test(function() { >- assert_equals(styleSheet.ownerRule, null); >- assert_true(styleSheet.cssRules.length > 0); >- assert_true(styleSheet.cssRules.item(0) instanceof CSSImportRule); >- importSheet = styleSheet.cssRules.item(0).styleSheet; >- }, "CSSStyleSheet_property_values", >- { help: [ "http://www.w3.org/TR/cssom-1/#css-style-sheets", >- "http://www.w3.org/TR/cssom-1/#cssimportrule" ], >- assert: "CSSStyleSheet initial property values are correct" }); >- >- test(function() { >- assert_own_property(styleSheet, "type"); >- assert_own_property(styleSheet, "disabled"); >- assert_own_property(styleSheet, "ownerNode"); >- assert_own_property(styleSheet, "parentStyleSheet"); >- assert_own_property(styleSheet, "href"); >- assert_own_property(styleSheet, "title"); >- assert_own_property(styleSheet, "media"); >- >- assert_readonly(styleSheet, "type"); >- assert_readonly(styleSheet, "ownerNode"); >- assert_readonly(styleSheet, "parentStyleSheet"); >- assert_readonly(styleSheet, "href"); >- assert_readonly(styleSheet, "title"); >- assert_readonly(styleSheet, "media"); >- }, "StyleSheet_properties", >- { assert: [ "type, disabled, ownerNode, parentStyleSheet, href, title, and media properties exist on StyleSheet", >- "type, ownerNode, parentStyleSheet, href, title, media properties are read only" ] }); >- >- test(function() { >- assert_equals(styleSheet.type, "text/css"); >- assert_equals(styleSheet.disabled, false); >- >- assert_equals(styleSheet.ownerNode, styleElement); >- assert_equals(linkSheet.ownerNode, linkElement); >- assert_equals(importSheet.ownerNode, null); >- >- assert_equals(styleSheet.href, null); >- assert_regexp_match(linkSheet.href, /support\/b-green.css$/); >- assert_regexp_match(importSheet.href, /support\/a-green.css$/); >- >- assert_equals(styleSheet.parentStyleSheet, null); >- assert_equals(linkSheet.parentStyleSheet, null); >- assert_equals(importSheet.parentStyleSheet, styleSheet); >- >- assert_equals(styleSheet.title, "internal style sheet"); >- assert_equals(styleSheet.media.item(0), "all"); >- }, "StyleSheet_property_values", >- { assert: "StyleSheet initial property values are correct" }); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt >deleted file mode 100644 >index 4b53120569b32912dfa7b7b40866ab7a5d60c952..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002-expected.txt >+++ /dev/null >@@ -1,4 +0,0 @@ >- >-PASS add_rule >-PASS delete_rule >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002.html >deleted file mode 100644 >index 08b0370c24dad1c0a30d0c87801c979090c5200f..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002.html >+++ /dev/null >@@ -1,51 +0,0 @@ >-<!DOCTYPE html> >-<html> >- <head> >- <title>CSS Test: CSSOM StyleSheet Modify Rule List</title> >- <link rel="author" title="Bear Travis" href="mailto:betravis@adobe.com"> >- <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssstylesheet-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-cssrule-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="StyleSheet and CSSStyleSheet objects have the properties specified in their interfaces"> >- <script src="/resources/testharness.js" type="text/javascript"></script> >- <script src="/resources/testharnessreport.js" type="text/javascript"></script> >- <style id="styleElement" type="text/css" media="all" title="internal style sheet" disabled="disabled"> >- * { margin: 0; padding: 0; } >- </style> >- <script id="metadata_cache">/* >-{ >- "add_rule": { >- "assert": ["Initial rule list is of size 1", >- "Can add a rule at first index"] >- }, >- "delete_rule": { "assert": "Can delete rules until rule list is empty" } >-} >-*/</script> >- </head> >- <body> >- <noscript>Test not run - javascript required.</noscript> >- <div id="log"></div> >- <script type="text/javascript"> >- var sheet = document.getElementById("styleElement").sheet; >- test(function() { >- assert_equals(sheet.cssRules.length, 1); >- sheet.insertRule("p { color: green; }", 0); >- assert_equals(sheet.cssRules.length, 2); >- assert_equals(sheet.cssRules.item(0).cssText, "p { color: green; }"); >- }, "add_rule", { >- assert: [ "Initial rule list is of size 1", >- "Can add a rule at first index" ] >- }); >- >- test(function() { >- sheet.deleteRule(0); >- assert_equals(sheet.cssRules.length, 1); >- sheet.deleteRule(0); >- assert_equals(sheet.cssRules.length, 0); >- }, "delete_rule", { >- assert: "Can delete rules until rule list is empty" >- }); >- </script> >- </body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.css >deleted file mode 100644 >index d61a8dd67c9e74e7ca620f08dc1bd2ed1998fa8f..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.css >+++ /dev/null >@@ -1,3 +0,0 @@ >-body { >- padding: 10px; >-} >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt >deleted file mode 100644 >index 1616078928abb11fb59f76b186a045ce7b906b2d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub-expected.txt >+++ /dev/null >@@ -1,9 +0,0 @@ >-Blocked access to external URL http://www1.localhost:8801/stylesheet-same-origin.css >-Blocked access to external URL http://www1.localhost:8801/stylesheet-same-origin.css >- >-FAIL Origin-clean check in cross-origin CSSOM Stylesheets assert_throws: Cross origin stylesheet.cssRules should throw SecurityError. function "function () { >- crossorigin.cssRules; >- }" threw object "TypeError: null is not an object (evaluating 'crossorigin.cssRules')" that is not a DOMException SecurityError: property "code" is equal to undefined, expected 18 >-PASS Origin-clean check in same-origin CSSOM Stylesheets >-FAIL Origin-clean check in data:css CSSOM Stylesheets null is not an object (evaluating 'sheet.cssRules.length') >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub.html >deleted file mode 100644 >index 9df0a54b7d8524176a9ff1289f8d4275035d835b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub.html >+++ /dev/null >@@ -1,56 +0,0 @@ >-<!doctype html> >-<html> >-<head> >- <meta charset="utf-8"> >- <title>CSSOM - CSSStylesheet should support origins</title> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- >- <link id="crossorigin" href="http://www1.{{host}}:{{ports[http][1]}}/stylesheet-same-origin.css" rel="stylesheet"> >- <link id="sameorigin" href="stylesheet-same-origin.css" rel="stylesheet"> >- <link id="sameorigindata" href="data:text/css,.green-text{color:rgb(0, 255, 0)}" rel="stylesheet"> >- >- <script> >- var crossorigin = document.getElementById("crossorigin").sheet; >- var sameorigin = document.getElementById("sameorigin").sheet; >- var sameorigindata = document.getElementById("sameorigindata").sheet; >- >- test(function() { >- assert_throws("SecurityError", >- function () { >- crossorigin.cssRules; >- }, >- "Cross origin stylesheet.cssRules should throw SecurityError."); >- assert_throws("SecurityError", >- function () { >- crossorigin.insertRule("#test { margin: 10px; }", 1); >- }, >- "Cross origin stylesheet.insertRule should throw SecurityError."); >- >- assert_throws("SecurityError", >- function () { >- crossorigin.deleteRule(0); >- }, >- "Cross origin stylesheet.deleteRule should throw SecurityError."); >- }, "Origin-clean check in cross-origin CSSOM Stylesheets"); >- >- function doOriginCleanCheck(sheet, name) { >- assert_equals(sheet.cssRules.length, 1, name + " stylesheet.cssRules should be accessible."); >- sheet.insertRule("#test { margin: 10px; }", 1); >- assert_equals(sheet.cssRules.length, 2, name + " stylesheet.insertRule should be accessible."); >- sheet.deleteRule(0); >- assert_equals(sheet.cssRules.length, 1, name + " stylesheet.deleteRule should be accessible."); >- } >- >- test(function() { >- doOriginCleanCheck(sameorigin, "Same-origin"); >- }, "Origin-clean check in same-origin CSSOM Stylesheets"); >- >- test(function() { >- doOriginCleanCheck(sameorigindata, "data:css"); >- }, "Origin-clean check in data:css CSSOM Stylesheets"); >- >- </script> >-</head> >-<body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-green.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-green.png >deleted file mode 100644 >index b98ca0ba0a03c580ac339e4a3653539cfa8edc71..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z85$Vo{9HN_$mQ~MaSW-rm7D-%GchneRloNK$dW8^jVKAuPb(=;EJ|f?Ovz75Rq)JB >bOiv9;O-!jQJeg_(RK(!v>gTe~DWM4f4{;-! > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-lime.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-lime.png >deleted file mode 100644 >index cb397fb090e199c51e80e4243d1ede03a79aa8d9..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z8U8bv#2r`x<Z^ksIEGZ*N=^W>nHU(Ks^9wqWJ#8|MwA5Sr<If^7Ns&crsOB3DtP85 >brl$s_CZ<#to=mj?Dq`?-^>bP0l+XkK_<AEq > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-maroon.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-maroon.png >deleted file mode 100644 >index 3f86b0721955eb4e0f014102c68c2a9764ef7593..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7lsBPi@{?l_gf&vS>O>_ >v4B~>Z+sSM@AcNP_#W95AdU8fW!Vi81W){YV4{giyfD#Ozu6{1-oD!M<@rf3U > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-navy.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-navy.png >deleted file mode 100644 >index 9b9a03955baea7abde9e056e8604e18694e49b66..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7a+~R&>-^LA|6O{7I;J! >w18EO1b~~AE2W0Six;Tb#Tu)9&$oRp}z{JAX(7`d=3n;<h>FVdQ&MBb@0MNe`HUIzs > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-red.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-red.png >deleted file mode 100644 >index 6bd73ac101874f306d007e9cea8fa3a1f62dce16..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 135 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmUzPnffIy#(@^1AIbU >z|1&U1KH@Y7a=AQR978H@B_{ycObm=q)$jcQvLs7fBT9nv(@M${i&7aJQ}UBi6+Ckj >b(^G>|6H_V+Po~-c6)||a`njxgN@xNA!@(kn > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-white.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-white.png >deleted file mode 100644 >index dd43faec54ae60a210f1eab6ff4e7c88b8e34c97..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 109 >zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blwj^(N7l!{JxM1({$v_d#0*}aI >wAngIhZYQ(tfDB$w7sn8e>&ZX<|Nmdl!1<f`@5Sbx4?qb9Pgg&ebxsLQ020p~!2kdN > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-gg-rr.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-gg-rr.png >deleted file mode 100644 >index 84f5b2a4f1d1865d763cac875bfa6a8c5c576c91..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 224 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzu3&R;K0lq*X$r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj >z3<Y;j-+=H&K5?KTUr!gukc@k8FBtMN81S%c^q)Ar(pb!~&BKo6T4>(2QlSh?@M7jG >eOI|GCZ+2WP<2UBa)$Kro89ZJ6T-G@yGywqpiaLV; > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-green.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-green.png >deleted file mode 100644 >index b3c8cf3eb4c89bd8f2d1ffde051856f375e3a3de..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 218 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzu3yE9XPACF}BuiW)N}Tg^b5rw57@Uhz6H8K46v{J8 >zG8EiBeFMT9`NV;W+&x_!Lo)8YJ?F^Fz`((>;PMkU^HzRy4~NuGe(INq1>ePjdKrGS >TIXtNc8p+`4>gTe~DWM4fy9-d) > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-red.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-red.png >deleted file mode 100644 >index 823f125b8e4a60f780f00443c9c9a10b9fa1f447..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 217 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|I14-?iy0WW >zg+Z8+Vb&Z8pdfpRr>`sfEmlzuQ<1cFzubXBk|nMYCC>S|xv6<249-QVi6yBi3gww4 >z84B*6z5(HleBwYwZk{fVAsP4Ho@3->VBlchkp2JMEhm9(EUQo2%VrV@UNUpX$1;`+ >Ty_~-WXd;8BtDnm{r-UW|v1>m& > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/README b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/README >deleted file mode 100644 >index 2e5f2ad0738c58dfdf7b368d1fff7aca4f797156..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/README >+++ /dev/null >@@ -1,28 +0,0 @@ >-CSS Global Support Directory >-============================ >- >-This directory contains common support files (such as images and external >-style sheets). These are sync'ed into the support directories of all our >-test suites. If you have test-suite-specific support files, please add >-them to the appropriate test-suite-specific support/ directory. >- >-If you add to a support/ directory, please run the tools/supportprop.py >-script from the top of the repository to cascade support files into the >-lower-level support directories. >- >-Description of the Common Support File Collection >-------------------------------------------------- >- >-The 1x1-* images are all exactly one pixel. >- >-The swatch-* images all use 15x15 cells. >- >-The square-* images all use 15x15 cells with one pixel borders. >- >-The pattern-* images use cells of various sizes: >- >- pattern-grg-rgr-grg.png 20x20 >- pattern-rgr-grg-rgr.png 20x20 >- pattern-tr.png 15x15 >- pattern-grg-rrg-rgg.png 15x15 >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/a-green.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/a-green.css >deleted file mode 100644 >index b0dbb071d5b05d1c574cd5c9a660f1e3d62c573b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/a-green.css >+++ /dev/null >@@ -1 +0,0 @@ >-.a { color: green; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/b-green.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/b-green.css >deleted file mode 100644 >index a0473f5ca26652c1229290bbf1f81eabc1e37280..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/b-green.css >+++ /dev/null >@@ -1 +0,0 @@ >-.b { color: green; } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/c-red.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/c-red.css >deleted file mode 100644 >index d4ba5c64e95406f541e2f8cc19e192e9f521ed6b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/c-red.css >+++ /dev/null >@@ -1 +0,0 @@ >-.c { color: red; } >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/cat.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/cat.png >deleted file mode 100644 >index 85dd7324815b8f8ef1a1d0496224c1a0661db9d8..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 1883 >zcmV-h2c-CkP)<h;3K|Lk000e1NJLTq003eD003hM0ssI3n4EHI0000LbVXQnLvm$d >zbZKvHAXI5>WdH}z3>gRm8%$Aad;kCd2XskIMF-Ff83-yN8ye1400009a7bBm000id >z000id0mpBsWB>pL*-1n}RCwC$Tnn<>HVmXZK1a^ho3&SK4-(g{9GN13#R7t8y*I%m >zZ)BMw!6g9VLwR{T9*v;e^Z&9e>xbnR^*7(`)-M11{_j7xFNSfJ@$>S&(_i1@5GH@m >zhpeXC{afFEKhVJCt^WWpLj3iQEg77_JYJnk79anUvL0gx`(AYZ27s0x;q_WRcJD`A >zg+R7jBu}y@4l@kFdQJ7DGoh@H-xD(&>S?#kV5MJwAHN8ovs16uEnknmyyLJw3_Dz} >z-2t_1y-WcyWmd+)eVZDoh>C$4rk3Oju)y$mQ#%^)+P>PB74gM`GN6$$a17nlNge7- >z3RmB|dPjb|$p?mh6-(D?ThB@WuYf>+sj1twj=G%GFkj5O!mZqLtqotF8cC*N$ri;H >z2HQ+$17ses$k7#RTbJz}gD2-`@wiB%W8DFRH7rLV$VR8C-{$0BU^7QA)6xcOPkeLG >zIC+y8#pH<ZE4DkLuB$eJu=YD09p6saU_=3B*q=j^t+sjfsKzKVsF6<N*#6N`(<ECy >zIXKz+z9s_>H3S(N>pr`5y87*;bv|b^HW*-n7#c-VH5l06wfM%K8tMv%QYu1VMJ&`q >zXuT9g-DjG%ok+2IhK&G~#M;r0zu4sf-`3+KmoX<0eCv7>JZuYAQ4+JlXds3Yz$`iq >zO!pQ9wr}Yor1)n9bJP~%@)tD+crwU7nJ%PeORd0)1m4F<)qG~XO2nT^iMivEf)z-D >zBxjR-YQ3Q3>4*f>(%TkH;D#Ki*aVYot>nkyxLr9zV62-PtQAsVZ<)M&ROZ`q=r-yb >zxV0FojhaWJa00$t-zE`xTYXArX#ra%P+dk^apt~h+vO{<A@@#@ZFd70kl?YRKP5&g >zb`j&Qn9|8fN_S*$P|_f3a(aM4y>N9i$&>6i;Se`Xu#!Aka_7=8lY{bL`gE8-D*^)! >zY7!?ohKiqcXDjd>0jZICXBl_KZ$6sC00LyW54V5*dj5-!>hm-t>Ht(52LoWuR*1xE >z2G*{@twTZxdhmIo{825j6wMk`;$*SKGZc>R!t=-#&gkXa<yH8pw79M3dp_ikAFn&8 >zlrN9ORLOJsca5=ic6o}b2pc1mIER3bjmUh7pG>kkRkQfHYSKVRo~#WuBph;XemDuD >z6qUJ989evMeRwkDj)54kU$UA#IGU-IZHnWTVRA#9kA1APN3ZjwA2_hn2Ug_Nvo#=1 >zvdA6|8~BUnoI@62w{|P|2@lwrchE#7bJ6Kq6kBhZllSFE87tja$&a^Vsv9DzjxZA* >zQVOrQc2nyJWb8G&wn4GZFkUv;Z=ATnxIprXHN_9;9UHeyvrlY2*kxbFPXGYML&r3) >zen%FSp5K}|`|V@N#w>xf>JHCqGnQ($o1mTz0Za^NSrBZ!onF6dnw<3&y(VH1bndXf >z391*{FlywkRueb2`q*Y`c5i|#c-`R1y$R0#>_jShsA?F))d087sWd*L&RJQPVgO6z >zuKDv)`2I=hc!ut73ss<T4Sc(1p2frAo70eTGSQX~W-TmJr(%YaR!iQ`4Ur=@=?jjU >zfTygMe0q~vry0lFm|`8tJ+roq*(WDI6R9%w#!|-Y#%eR(ke!N@^4>>?(GbUMv>AFu >zU<y*Z1YJ38rx1Sr_(M)_9Tc=-h}Yr*n2uA=E}I+loFj7auyHJrfHI|Po@I%y`4tj7 >zZ|2XgMqBeQS(s^b?xD;O6`XX77pU2u-JQEex9#}uQe_K^?kYOxRi<VJVwG%9W16&C >zB}3F3+z%GVHY()dth0|pcjvht>SWGaq^ijA)f<0KH8%k6{9y7l%|MvpgU?6jsh(M$ >z5N*sz^783ghS!jcq!BDms81L*G}VLWyHB!u>=8qC&htH>PmP{A<v#~L#&MqpRv4yG >zw4r_l@+VBe#^s0kwg9GF@{ms(MG=X;Z*q>HB})c5>>6kFjvP9zMaPHfq~YhEr7DrH >zD;~lup<3-juf%_Prr9Z-V4nORxcT&~FF{{2Nk&bqG}pd>$n(1*n4sj(w0;RH6sT{j >zbhUJqyjT6iN>h5jrHP`lGXxi;LI(=%bR`2^fsT95-&yGjH)}sb@TGCA(mUti&QX<4 >z{U$^U=I18hwKL%pN^cWLwM6MtTI+-Up~5fcjt@Bxe*M77{d?${Py^67eTt4eFFZ)l >zh8I~nmB}UQ_u%EtP`CsPA88ZuaO!(Y>9V^z>txmUh$SjH&7r>5XT86X<2m!DSg2-= >z-<rS@<i5Y4N=-ro_(K1~{gF<l7M3R7QZPDFa>~W*e9lSUNASn#NOM-@)>-Im^e@d- >V<q-+yJ<<RG002ovPDHLkV1mLWjBEe^ > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-charset.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-charset.css >deleted file mode 100644 >index 9f44090c94a7945c3adbf850da3290c85a60a0ab..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-charset.css >+++ /dev/null >@@ -1 +0,0 @@ >-@charset "UTF-8"; >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-green.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-green.css >deleted file mode 100644 >index 537104e663364492c6ef388e4afce190e9c5bc58..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-green.css >+++ /dev/null >@@ -1 +0,0 @@ >-.import { color: green; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-red.css b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-red.css >deleted file mode 100644 >index 9945ef47114c2841a746c99a2fb1e93e050aac8b..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-red.css >+++ /dev/null >@@ -1 +0,0 @@ >-.import { color: red; } >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rgr-grg.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rgr-grg.png >deleted file mode 100644 >index 9b88fbd81149891234185f54f8b4a0431759f181..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 222 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg44gppHg^c>jqd=iJPZ!6KjC*fy >z8gelx@Gu{^HvM;TY)zwU$c{IS(wnBFeYtT?qh#}i+>eP179zlX|30sumufTRE+B#Q >jJePWx&kbz|5I0kznWOaej?gzin;1M@{an^LB{Ts59-mW( > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png >deleted file mode 100644 >index fcf4f3fd7d95431b8cd1bc5f5129fcb724c5e40f..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 231 >zcmeAS@N?(olHy`uVBq!ia0vp^x**KK#K6FKsNOXi$XVy<;uunK>uuO>p#}vW?s@X} >z?5{Vn@(E1fdg>#_p5-zBiX+1VA%+4b26mx2|7={&ovNQ>6SXtcysBl-)c><WmS!Y( >zv7BNEzPH=%x{1!KjWd@lmbz(awP;VviDQ{7SW3K#guH|K-#!i8$dVG=UlQ?2Ho)uu >z>9DyExiv#HMbsD$XX>p~Q&Z4f6DV?h!MD37E_}{<nz@wk)ekYNY^%>svR6Ky{&{h` >fDhG(UQO-Q~pMsNotNvM_%Naaf{an^LB{Ts5h3Hy_ > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png >deleted file mode 100644 >index d454e3a630cd98146c241537dbb3d4cef313f465..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 223 >zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1SGf4^HT*<jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg44gppHg^c>jqd=i}PZ!6KjC*fy >z8gelx@Gu{^HvM;TY>lI9$c{Iy(wkbIbyRJ-o`3vUZZ|(OF9Q6nGtzszXKw9ExeG`j >k-E5KlqACYx1X%C$w4CD$N64zrK&u!$UHx3vIVCg!00%}%YybcN > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-tr.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-tr.png >deleted file mode 100644 >index 8b4b25364e0ffbe09e563e13b567fa57330e48d5..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 137 >zcmeAS@N?(olHy`uVBq!ia0vp^azM<_!N$PA*s|9jBoW~0;uunKD><d1=|2z8e@O`m >zi5U_X7?eM1T?jqI(8f2(=fLXOHJ)xxeNNw5J?)fkN19wc<FT&3eZzeBMQLtcCc<9q >mCdFSHSg)@*x>)QnGsEKzd}=q=PizO8&EV<k=d#Wzp$Pzi&n><H > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50%.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50%.png >deleted file mode 100644 >index cf2eea6b438a11503a89414cbb2f9f1fde55df0c..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 691 >zcmV;k0!;mhP)<h;3K|Lk000e1NJLTq0077U001%w0ssI3;WRTK0007dNkl<Zc-rlq >zy{h6s7=~wbiC|&k#KzV}uoP2RSPBY)sHIn;ot@^CYHeD*0k6SU@&o=<wt~SzQP6LT >z+1+9bIY?G>_PkGJCLw%0c_-t<Byu8R0TE%rfqnf#2=STCc!0-|BNJiWm+$+t+3XF+ >zG01&|R6WZ2a%FMO8DoZFSe6xdSs{%)dLqg~Sttu-y|XONIp^Fk491wQ>y1Vu;JWBp >zVzJoqc$A+V$Du&M;PW30)i^&u7Gwd)f-J~_EXabafA}Ss^LRYITrL@7hr_}5ea4uo >zs-EXfr_-?8qSw;z_hYfxZnq<%d_G?&6l8n7UMHeNA~7D1DXd_+^X%M^b1Xhu#0egw >zA!I?;mp#FUr6!IGxafwE1t1HuAPce}3$g%YK^9~|*6&HOysvn(*(i##-EJ9UsZ`3c >zEZerjZtKO@{G-umsZ=7OWHL!ax~|LH&Qw+HcDr($*H`sP-cZ*0d?q4I(}+k2AsaiL >zj;3j@>xNm@j~53yo6Tl2nfZLaSS%Dp@jOqqx7+P>I$bK2_WONkdm(-b!)ORuq3(u{ >zuZ3eR);?H^UI=h{2M87b0ALRNMpGQFFcbm=3m{kkAXosw0tglW2o^xF0D=Vof&~yP >zfM5aey@Mqmboq;Vy>6Q3^?Ef;v)OFQ#$+;S+qUC4@()R>)vA0j20RIU1AN~f3<kMe >zPA*0wk^B8lM7P^58jZ@v;czH~5JH%ySu7Suqmd9o*Y(L{67t7~@KDnmXti3a)#`LQ >z^?JQ>xhxxNwc21XxLhtDA0P5nd4E{1*Of{|zC6!y9M^SKRYkDydOv{gSOCES0Ko#G >Z;3u}YJM}AuyWao+002ovPDHLkV1h`wI+p+d > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50px.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50px.png >deleted file mode 100644 >index 9f46583665ca6471075227f9e2244f1ba1ffece0..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 671 >zcmV;Q0$}}#P)<h;3K|Lk000e1NJLTq0074T001%w0ssI35I<<G0007JNkl<Zc-rlq >zv8v)g6oyYUj*(OvJMF|<*xQPQHX;gQ=Q9YtMk4qIcD_Uk3p+s&EW|>6gP<0o<3OBS >z1j1$6y@J=>jmiI2W)i~T^Pfp3CPtA`(u;`E>xkCAIOm38{A6Fs3%^GNnFzqX(&;o2 >zDT)%hOaxRt$_h?dilXdxyZwIuAIl18<k1sR7Ro|dDC@73<(+Ub#)4IrH|Pr?i0E>; >z;NbHP*$SvFj1Q0nSpc#i3$h>!vLNd#s;X8h6(Y)HGDMWkW{IfR>*e!#BI@`1L^K!- >zq999sxJ98*&~=@N=JPpYY_r)A(Q>)W<#PTuuIolY7N$GT%2E_8{&5kbJC1`e1yhkZ >z{QWZiAyepm0H$CHreF%DU<$w#Ou-aPy%*}kd9U|DN?9(KiD<D{L{ydh79vWeQmfTU >zN_jXOj>n_dsO!3I+fqu~wx`pn*C<1c`p_d0X`044S5?*jCFXoSGsc7vhGD3xigAie >z)6_I=x7!g>wOXy$>t1^zkyx+So-)UAqG0No%Wt8-X!kNxI7<M}X6pN1hP7CW{s%Cs >z1EdN70HQYojOJV%M?e6ODu7f0qzV9}3LsSgsR9700!S4=ssK_208$0QoT}fxKB3)i >zTb3n+uq><7>A-U2c*&C|r_;$a%~Gl4EyiN8`~5DZbX_+dkNXem%w{vr`D8LF7K>iv >z?RKlxYUA;^)oKYL{4FJTXMQ?Xb-Uf|cFP#!ocsSC*Jw0`!=VsjG#WLVO@HH$j}Ibp >z9OvtMgBWAUWb%5w;_jEw@bB(q!d+8H6#$q60;CFrn@_JUXnGtsT_OMg002ovPDHLk >FV1h+lHID!Q > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-100px.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-100px.png >deleted file mode 100644 >index a837eca2225082917dc952efd5c689e1b51d7bbd..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 760 >zcmeAS@N?(olHy`uVBq!ia0vp^MnHU=gNcEGaWU)iTMP_L`#oJ8Ln>~)opsRfQGkd; >ze)kq>afh25lNKiW9??&5?NHJA%O>=XS@{0}+4zG^EwY_?F_M#iv9}3z1aeiSUzA*K >zu(aV(kHK?2k3BK|`KL4QXWugp33W=8Xj?T)Nc8vQ(%9`GT4(2eudkH7c2+NL?u$dR >z-nKS2Z~j`Y^K+f^ZT|OzL59~vJ9g=>@?L(q?{UxZ$KUny^7DVzuDt!h?mmN?plfyf >zmG|FWk8IKrjGUqMkB_(Yd8N`MAGQ3vyhA@<bgG)GyNbMZyBKBu{M65@X^X#_xz|N( >zNI2NE)qRbRnzGW(oG=%g^U{3n2NQ}bDsH?iaanTtWy$WlscV`SSj{;6?RV|zP4C{l >zb6FCjH+xxSZLO}-<dZ7%&v$p^-rjt(=cAyQ4#>1ywbzy(%Ux#+<}|T#gG9?_n$GnL >zUK#SiePsyOw7;>}x9Vgku7B`~<KEgPU54g^2R_?``Yyk`>Xk*`s(JJ0KQFQj%{7r) >zbt}iL)bq?nx5a@6yp{&7nsqXz>CffMm(RcYnakO|rl9#~(#I!HTteT!e?R%;lGnRd >zMQMom`TO7h&1I+D{M{YwHHiH{KeA^3UX!~oKff$N`Q3$OHK!M>^?md}Ue5YP`;WJ` >zoGPcdSKa}V$916$caR7I{lB!WCtmR1qOjFlqjc|ok6s(LH?H5a&h2Na;zQo04{aAN >z%iOnj@5)!NUuP>#?C|XJSbx2`vNCh~ZFhHf$0DPdQ%*l!y?XWL&Bph?D}P^q>`h+m >zFXb?;somY&_rL4w>#x3=<rC!6*Wd5@<m1PSg>$|yNsZi=Yj1B~pCFjW&0YS{yFmW8 >z{%3D_dwKh-9vNpof7j<_ShMfbl=P&-N7}Xp$UV*Eei}Fr#*lj&2u6iKLAmWf*~0AY >cw|+4$pP;3B^U*VLV7g}TboFyt=akR{0G}~+v;Y7A > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-50px.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-50px.png >deleted file mode 100644 >index 84141028020b7e8cdf2412acbca3c799ba50a534..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 757 >zcmeAS@N?(olHy`uVBq!ia0vp^MnHU=gNcEGaWU)iTMP_LdpunnLn>~)o#p7Q6)4em >z{$d*2BG*@!Lc3jVdA+?Q+2PW(<&`<hUq0SH>~H^wHaWhIaoO!ruE(m{QKE2v_l)kA >z-e(KKcYm$vKGDDac}?&6nKO$m!Y2I`xEAGUC@i-6WK{O=zyHpiJNNeO+xv#s?=j!Z >zxcM?)V^6`#D~}&Pp5?A$`q-&{Ubpelh>!(auZC((&D%cv^wS>0zQ+>Dv(7%_|5v|q >zao)lohkkPybSa7E=I2W%vo$wv-F7j<M5=efqK_3hJ(iZ1hR5E#eOo#2c)7cvt4QFM >zmy258?Tg>%?^YeP{?keR*WWj6TXu)LZemGAMMlrg{rmeFE-(LJ<A3S&Y482_`L|4a >zV$ruGZ1vX<9}HH``Sp4I^9xs8BD45(?Git7i|IscNI2NU%6%<AQFrUQr?(D+*uNsK >z-AeFYem8ITy4x>H79F(9J8|Uk$H$M8Jv&{Tg0!YiDk&_S=(k)oHZIO<*REZcdS={{ >zuBxt{yk+-pZOxfJY$vZ@zkcEDg32{MYQY*JDz>(^mVKA=wyUOYzPWhuV$b-4=Px{% >z$%e2T?g|j&pZPVd@7osh<~-+>HNJ0@q3xBETkz(j;nVk5#ZE1@IrSJs=KbBV&8b#r >zs@K)5tKa`-ZH>~KK0UlH?2I+Pa;AYqh}P8R=H>^<I%3lO$0yypfB*5vA5Q|#-o1Ob >zz+%ny*S~-Nb}TZHdiwe2?Afz7Z#KUF-I?$98QU)7&slTl&$qX?-@VRShVSyrk_kFu >z-9WGGdw)G^>*dRrJqy()8y@>owKqh|)N|Lm*OhSvei_W#^M7W~=v`a$@8~4GJx?va >z-#4{oh}c&&{rS;0ap_x5l~b1MPI0e<Gk|OmIt~)N1C)g`AmVT`zVHuY?mGL;&f7B= >Q0uwcZr>mdKI;Vst0OKlsf&c&j > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-purple.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-purple.png >deleted file mode 100644 >index 0f522d78728417b0f74b694e2e47cd41c00359d1..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 92 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pu3?vyBU)>3$*aCb)TpJh~{xkePDssRFB<<<q >n7*cU7`N#kLjg3MaSNIuL+z|fjF-g!1D9PaI>gTe~DWM4f*isp& > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-teal.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-teal.png >deleted file mode 100644 >index e567f51b91bbe40754cb0e0cae066201219cbb4a..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 92 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pu3?vyBU)>3$*aCb)Tp1b~82<lv|F?D~NZQlI >nF{I*F@{j-f8ykf<uJALgxFP)4W0Ig3P?EvZ)z4*}Q$iB}@>Uv7 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-white.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-white.png >deleted file mode 100644 >index 5853cbb238cb2d4aba3dd49af3f2ba64d6c7a2de..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 78 >zcmeAS@N?(olHy`uVBq!ia0vp^f*{NRBpBq_B-DVEsHcl#NX4yWiv~UkzCZ4)$}udm >Z3=C_{1@!OB{@4Xl=;`X`vd$@?2>|f05A6T| > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/README b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/README >deleted file mode 100644 >index ea8cb9ef357d0174bf7c598f9b1b1ab04a1f35de..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/README >+++ /dev/null >@@ -1,4 +0,0 @@ >-The swatch-green.png file in this directory is really a RED swatch, >-and the swatch-red.png file is really a green swatch. >- >-This directory is used to test relative URIs. >\ No newline at end of file >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-green.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-green.png >deleted file mode 100644 >index 1caf25c992aa8e23483cddb3334b5f51ec967f4a..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>wg9Y$w!>#KrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>=8a4uJpw > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-red.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-red.png >deleted file mode 100644 >index 0aa79b0c86bd72c2220ecce39b9553e2cd3605b9..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD?<aroS#c40=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIBjB50U@? > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/w3c-import.log >deleted file mode 100644 >index 265e9ac9e5a35337d59034d7622570c119095117..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/w3c-import.log >+++ /dev/null >@@ -1,19 +0,0 @@ >-The tests in this directory were imported from the W3C repository. >-Do NOT modify these tests directly in WebKit. >-Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >- >-Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >- >-Do NOT modify or remove this file. >- >------------------------------------------------------------------------- >-Properties requiring vendor prefixes: >-None >-Property values requiring vendor prefixes: >-None >------------------------------------------------------------------------- >-List of files: >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/README >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-green.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/support/swatch-red.png >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-blue.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-blue.png >deleted file mode 100644 >index bf2759634d45dbe3df13868341eddb7e4bf24172..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD+9y-u8K?HKrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>>P$4{-nh > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-green.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-green.png >deleted file mode 100644 >index 0aa79b0c86bd72c2220ecce39b9553e2cd3605b9..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XD?<aroS#c40=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIBjB50U@? > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-lime.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-lime.png >deleted file mode 100644 >index 55fd7fdaedfc1ed505b111f20fabbca568c68fa5..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5XE5m;VlehybfLtC=7srr_ >dTgeFuj6j|)1LJQkVJ#qw!PC{xWt~$(6968w4?q9_ > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-orange.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-orange.png >deleted file mode 100644 >index d3cd498b52bd88ea6c991f050f1ecb1cfdd136bb..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>;I(;rzSbh26A~kT^vIy >dZY3uuFamkH42-|EgtdSy22WQ%mvv4FO#nq@5F-Ep > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-red.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-red.png >deleted file mode 100644 >index 1caf25c992aa8e23483cddb3334b5f51ec967f4a..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>wg9Y$w!>#KrWA`i(^Q| >dt>gp+Mj%g@f$_JNuojTT;OXk;vd$@?2>=8a4uJpw > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-teal.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-teal.png >deleted file mode 100644 >index 0293ce89dea5c9413e4c829cc83a4e39d8f23300..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 156 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K11|+SoP4xm&jKx9jP7LeL$-D$|*pj^6T^Rm@ >z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg4R#65`cCM1`H9#R5PZ!4!jq}MV >s85uv$JE$cjEnw)$lDlfNN|Kv_A+(E0c5RvdE}%LFPgg&ebxsLQ0IVw~FaQ7m > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-white.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-white.png >deleted file mode 100644 >index 1a7d4323d77287d8eb03a89c635b09d099d94869..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 85 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<H-Bp8I(u6Pcln3BBRT^Jbeb_p*5^7uSm978H@ >gCI9%}-<ZL|Fh5TA$_Ah94}dZZp00i_>zopr0Qo5vZ~y=R > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-yellow.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-yellow.png >deleted file mode 100644 >index 1591aa0e2e274854ed836cf582235ea0202f9c8e..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 84 >zcmeAS@N?(olHy`uVBq!ia0vp^{2<K83?vyP*g1g|bAV5X>;L}@UB|w-0=Yb%E{-7; >dw~`YS7=b)p2FBl7!dgHUgQu&X%Q~loCIDbL5Y7Mq > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-bl.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-bl.png >deleted file mode 100644 >index 904e24e996a3e5da93bef89e10c49e24c07d0ed2..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 1368 >zcmV-e1*iInP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUQ%1J~)RCwC$mrHKsHV}qI#0OA$)CUNV+0PNC >z5z>1FDgrZWOHO<59>534BKsDgp7p3B>I7zAF2$Eby&QX;;i_BGr>dV-tSTkfVYNIl >zi$7l1mTrsB_C8C-i#4X^3LaLG>jn4e0?941+dy=QV9i9xkG(@4H;@(~ogt^a`43yj >z^`**Zh^{Td#Pj%+Qr%fKN-5`g;nYOF+LzqmXhmO+m0gFk>gfe#F-NRAhUdXXT_P3& >z5hZ>zhPowUE`a<#=%qb^0(KmTs?O^A;`TX0ocz1q{qO362uJ`J02e5qdmo1g`RwHP >z!A7z7fk;yZJFK4j+J<J_!!kFwGv}DTl*m6N!y-fSp;zS$vG4R+^f3f3FkDp6`iZB@ >z9Rq0{yOh5|GFgnv$G$b5jmSNW@=3{zpgZ``cV=57#LB;M$gx-;>{j+R-gEgot3{VQ >zT_EJMJvHm{U-0*2vCJ(xH5>9<9E?yX{cn>?Cg7{`b(@FBIAj4b8LLlxUA}&DNX9v( >z3NQA_a4!BS*5!`~%BqqjA5Y&4uFEHnEyD3&j#zU)o^f5S%cniIzr|OZ3i>ow5`DiR >zKV-E(ZYQ3EdZkb6@<UeNeUB?iBFq`D*X2*MI!I#{X}9FZS$$Qmwt_`|Y{-wZnqKV6 >z1blp+IyR9XXEjwg7bU<2vXH;?C)8Cq%49XyvL(Ou3A1w<`?`EvZGvCF2-_3drF_v3 >zWsvc|O+gEO*$ta$@sA0cmcFE8)2I`NWRx;N{9|`#gBRBOOq5lHKJ|AG{lc-r?c}4) >zL-$z5Md6GLEg?qSW3G#N#pKN%xTocLj)Y#BeKpr}_iC1cFHVHGREV^M$HW)&`;U1U >zqa(S7SZ8*J-qhDnFUE@G8)EF3n+2Q$s`7)uute1_k<QgF7t5n>rGpW1SV4To*jSQh >zlcG$a4=ps-GU>1C2_a&@$I%?>7`aa!VnfzdIeZ#?+sUD|PY~B%U0^7GO|Nu@sDsJ# >z@KlWWEXlsO1AjC<{IhGw<M`A>1$M}i5N36xL4oHW;3LYQL{&USeE7rWXggil@q+qy >zcqZ;IV<F)o1Yw4G7>JjWW`PLt<%)`T&`L8>V}>Oa<kn^+iI7n5LHubaqvh(*WJr7^ >z)T>O$2em@zx|mEC771}cDVqgE!@z!yT>QYv82lFP(%@F<5;wl4TqknAA$72YTMI-# >zh4f`KPMMiy>XyGdc~Of)_A<zfoj!JJF(=#0d7SY)+PJ~38KUdBOaRb$*jPKdJK=EV >zrkm0Z8xVG(YE0}Yt@-e>+14L1KJ#R!khI&B)WtXi&X5b{lL3*@ZkLC@MvW|+A?7gN >zW^9D0T;2*9*?`>~p)-$sKP@gC`DhvB0@0TW$+>vr68OLZ|AFHIA?8UIVp5VL8#iJF >zp>x%gNY!OhEyLo1uORl+--}g*Wst2R?yDkOfv7^I8;JRK;rXg-$rj?i69C?WTvb<5 >z-Ama!5K|d3=PQC<K{RE8uwP1VM##=LEUkC!&4^ZAZE86{8mYSe$D&=JS`K8398A-< >zAkI6YxS&bnwNTEyqw<esfq5o26J~CRQnjl~iN@O75YIKX+q?rYE}CZZF2t>$$WP>d >ai~I`(b4pM507-ZN0000<MNUMnLSTZUYM}!F > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-br.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-br.png >deleted file mode 100644 >index f413ff5c1a0f2ad9f9a345d3e07be57a59a82207..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 1045 >zcmV+w1nT>VP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUPhe<?1RCwC$ms@V5FcgLlnk;}*nH@}b&;=9; >z`W^{0$~+gU<h>dx3m9n@P^7faO%<|&!sf>KZm^B!d3qut2z>beeU2{xp@)&j(02`` >zTY^Y(yls!8j-g6{#iqXUOZZmq^{tQRnwIpYptOGKE#wg=geU|udB&pePc3cOueFKs >zvzd?t6~fN!7xtH~ecHeFR|~mNE=(hU<zcj=XW{%Yp6UJ6N@ftUzmC!P5cbt`?6jy? >zkn>j9-;D~v`nZNntt8~9LC7xNOec_RZz1(-9N|5dP=m0v9-_#(n4W^-V2~txiYhzj >z!i$YK*$mpxEQDn<+Gk7q?5d2K>8gc&fN~c@-gEJg62@yGi)KdJFKsVL7OffK1s(gk >zuDvn5Y{BU<F%-%e((qKG8u5Ul%idy$ct({KxR(KBlCq)lwQ%n=>I*USjd;i%YrdEb >z{Sn*_^roe9hCXX0U8@*Tm5}W<;uM1)L8qv|EjeFw?$DQBbYc7Y_+{2Z;0_;OA3x6W >z0PY|Sr^RF&+^N9lo^nJde+0T>e|Q%!CAxA~?GMkwJ^q*@L1D^DW{@@e8aZfW&HlL( >zh^h58`-7ZbHV<zaS+W1w2>0aSI!6vcWNu~EzD%TLWzD`y<i?s$R_yCU8Y@az$o?{s >ztJ8(Yy+rUffV?jfsir=p{xwOCNIQ`VxeF})mt`W=%)g=j#qveyLfcAweUa7TT2Y9% >zj|Z80xYL7JBN#v$SuMm7!T-APcUV_RUG7#w6p(kTFo<b#?tbL$mc9)MbD|J81-xCa >zu1iy(+!eIf8G_WOYv>wDV7Xr)zJ+r5pkj?+g<rb&*<VHdwnQ#%k*B`?n)b<=Z)r8M >z*w%Y?pY@=}iIK&e%yly-p3Gaau$<qAqFp+%WF>S_u|SWDG`g}53&gW~H?kPATZn)^ >z{pHpDF0f_Yc)Al>7VPVTai^XiPQR;MAxJ&d2ec|FrET5HXc}tCS~{7gaV(KcTp<oc >zQD|B7>QZ^Z1TjZ~gu`3RQzOf}P2=}cU|fp)kR|{zS!z=9ML<>z3CM~dAz5JrL$V?W >z4Q^@!)=5xS07+PK!ylVGm5`=3ktPvYvS1MHR5ItZK3>BJtE{TnlF}3mey44O;Kkq6 >ztd@0Ivcj%UvClb}M#-r)(X{Qa==a|U(_!d)YlyiY`vK(N;tTmg{#)cPVxOudoeJ1E >P00000NkvXXu0mjfoHYWE > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-inner-half-size.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-inner-half-size.png >deleted file mode 100644 >index e473bf80efc66766cb32ec2cc60244ed37dc1157..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 180 >zcmV;l089UgP)<h;3K|Lk000e1NJLTq0015U001%w1^@s7JXu?L0001cNkl<Zc-rli >z!4AM62t%pa|Nk<(E?zL=Fq+2^X)3e<nYr61nsxC@Ld$8rPiTZTB&ja&s6as%ZJL|M >z=rOcU${2vp2YUvrojv1iz<}=oKePMm#BU3e)Gz&dnG;ue53v^M#Hf!LH5!*`jH~Z= >iHN+4@%ynW{5626)ITymFxuX~W0000<MNUMnLSTZVu1667 > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-outer.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-outer.png >deleted file mode 100644 >index 82eeace7fc0c4202f79610978ab423e62abf8939..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 2412 >zcmZ{mdpOg78^=c{EOMMh4qF~6Bd3rFi9{I*a|(^Nvdq~?QjT*?4xw_Itd@FmT1%@; >zkHai-Y6->Aa{4*!H%&eKiag(`-yhHQT+j9WT%Y^CzTeON{@nNL{(P?Mo9&Krl9f@D >z0f9iW&L<o^0NV)yNkF9}fteqx$p(R>O`RQ%dM1nrDqQhOXQ7#ug?V#Sa2fmTSTTg# >zq5n>b3YP6~G}vwrp{7((H(F%s9=vs(d(vdsw5S`*{!`K=^0e|Hs;%}@ZAe9;YhM#o >z_ToaBZbi>ZoPth;c~{8~-g5bm@{$}EyaCQ}|KNtGC?`*cg`T-jp?`3qQTBgZTv?v{ >zsdiqg_=L}TaeDHp)WEMH?m}9l;@m~8p=7pF>!36@MZO>-W1E4=+P#fwf=QndMcXv7 >z8Z8-fF2Q7mdllSkqq$$v5O4Max@#iK>)>}|J2%opy`et}FlLkY$|k=MPb|h-F&GS# >z`yPH&Q53dkQkZ<87kdVuoRE+pLOXW`h4H>u8uuqXC&Rob*li9oo;cl8K)zjxUvIBg >z$)w}LH2k-=iDKc?$`Kh8{tr6}PB1uTuEZnV2}8sH8=6vc={^tU1@E=j4k~YXOGQ|X >zkJ7bc);}A=x!>Q|ZjgqKn<q^%>txci{z1vOpT5iHp(Eo0q?hU&McH@xcJuaJ!&r=t >z?vM4Ew=lmncbCv<w<by^%~!2EMkjjnd54&X#Od#j14r-;{%H*anvq+xT4z&^R~p5` >z!xS#*RhyBq#-3+TSq9ZKkNp)WoXPH4H-m1)g6J1}?lL8tMqKR^6?)~97d2-4DhB+5 >zUdGN1RJ+xB<5yKLk0NkP^&6b`?>%iQg%g%g!y>UhwjyyUTO+MrE;m#Qlfbq|*dc(4 >zZC|6qC(sSHP6V-iNf|!edmH+^^*p7Z*`Fr|qZ;SsTT5vuq{VfH<xT}KU7pO%=gQ-v >zpl}EV2Ej;R3K*TfdooFmy;Lk8A$M$3@V7ALWqa%n93N4h!H9%#CFmf!JRkt3OVQHb >z4OBETnat*91Ne0G$7cc;8XW%MV(Eh}E-|2Hw!aen*h^t9zNtCIQK#4?o8<B4NzKA= >zJ-KtNi74c~C_F{C-09RZX5o7;K}%g#V~>E_u(9E~{{7oy($sRI!r_#kERyw=)upx! >zFkJKpcdtUCXezrquiN45{@FUmzL;55Wac?m%0{3=Y46O}udzZQvI2GYkbbEmgW{O# >zB*tP_1EQvt8AEX}i1ucwo7Do-=J@@}d(C-#{nOcUixx3CVB}<e`Lw}_xWS0LbrOGg >z-0$$Y+G<jqNui?4Zdoxsu$TaOYd=pOXKWEl=;Q$~#Yp}}11wlrY@mF@rT&tjQx2Kc >z;EdG(+Qw=(0gQccTmb_LX#GO@-=ToE{*}o1S&Q<qR$oGG$H$7QsF?VyQgL%mGamZB >zN8AN0>yfx&o9U9a{k9oC*L+CRvNc6NGmAaSr-%G%isWSVX*Ri;gJFYDY61-RZMJ9s >z-`z?*?sVx<BY`>k?ebatm>?cmkvn8n>~gVoVD9PAWg?M?$DhQ9`wq>_JP04nEs0as >zGCYyp$>C%Uz4Sbg-8nx$KQdBELKqs3JZpaXR0kdt6C;QpRUl$8ZN2BT1ay8+QeDwI >zu62>#lKkWL24UmrHRFc%C7-=lR_WXembP{E_3D{)24gRLd3m`56V=JI3W>Gc@|ghD >zM4FnK`Yo)lucxJLsZJ~`ENt|1#h-mVSROoe^Uf(EVVw0btkFTIuq)O|12?%MoRDpA >z2yb%N3pEM(Fd#*y6-Dy|)=~4^T7Ra;qxZn6bJQv8eU-G*cUmx99|SwF1S^VO>?Mcy >ziKu&}Y5&7fzUR%+PBa2D*ec=Nds+$#Hi85rKsnpQ4u~Tuc0eH#V&@ut(`oSm91zDY >za+r0m+14Xz`N-u=du{O&XwC%ls)q~AieIs$nYA?j`i;>+?lE4qb*u__4g0>Wic&zo >zR+V36^t{R_-%yv8wr}-_^1lgZWPfdu3O$yvqYW912-Zu#GoWhgovH3+iIzI{A=E)V >zcQydV*I><E=u_da(q7DH+)<GXMo3AvA=y+6U6e})iPP3*DUDxWlG~X9WJt}Yx1=aW >z9f9!2A{3*A+uM>n-slX6bO6zsU?5t4944(oUP5)GKA$4KLQ4haDC`}{Ps+Ey(|x}` >zyBd9~%hyJlk{^d?Lo)0)dE5l)3+)ni{3Zg_i0Xi|wj6^6BU*ew>BPGjg>hpsG84#F >zFtJR+%|k#s!XCqF_ng1k)XQe2ZTWsnZZ|ncg`BfZy2~e>2r%0X?)0(asHJc|7s;{V >zAyLed^iYKNI1KWOw{~cQNG_eYN!$n`KQ1lw1ky25mK1-sOUN<}du0+Jm-|WOJ}UZk >z;MD^*RM{7)%54F<f89d$AT43&eEZMXjD>{-bX|b)&Pma9Hxh~L<9I*zLO^8O^&sR* >z+Z4@)s8v757MByxkbSog24S(-^4S*wgp`yZd~#%@yPop)OUea1c4?kMp-^sa!(oST >zlOoZRWmaIl?bWsCD++LG;;LvBull2<z%AUo%!0tXV5Zh=aOTXJiC4)n)<ylZJ1#8> >zTKN2P=4FEB_A-kIhbh4*)5)gT&@Gq#)33|s%4+1d`N2!(NL$;9utxEAWYvRMlM?)J >zUGmy09Ze5xzD#Sp`sH(nNMyos$)$75^*zJVnHX>A58rdx9N!z~iBj0<W}FS}{WTSS >zYe(Kh?$^;NgZyZ(TL-Pc;QQJ0!or2b!LYc9i2f%v0)ZgFaP|`7cK3seBhSK1u{4h_ >z@XA$Y?)2*bv%CGWDk&;eV+0`iroein?E{ZT1m@$$KVz-tVqdPbjg5@~%n0G(y?uRF >z>IU6@K0Y6KJQh(%2_L<F(zQbdtgfyO+|gmbe_i?OiRXdC>Z+=$Xf!%}G|=DQ-_LJ; >z{R@v*PI@{ju&;VMdI8E|v)OrCwr%pJojwJ7oSpnX!a|OIC{+5t7cWF27_n5j0g~u3 >VAD}`@1i=3k$k`F)P-h>U`X3Goc2EES > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tl.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tl.png >deleted file mode 100644 >index f6ac0ef7e8f6e192c9c26239884bf92b13cf67b8..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 1025 >zcmV+c1pfPpP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUPb4f%&RCwC$mQ8M}Fc5&T!~r@I9HIMngrJ)4 >zQ(^kjbwEn?FN@yb9iWkt>{9_J2)W!F@R;Dg)Lp$zS!5CX;rV991JU){SM-DYAV0|e >zM%uPHwukYjIUJ7B*Q=ZTu2z>QMR^bD+hKK83n7YJaQrDaUiXl8N2@a^ART^^rwFp> >z9#IKgok0Td0KkTyXt?~yXZ<2qM=a7Vzey#Q*6RDnL2!78qHiE=Ex4QTA^lz~J%kTw >zstmq|U|5-t@E~V@SRUkpVNEL-i@q);x>HzkHGJJLeJv;~hO4ub=d-q4IFZka!eTMc >zu`{buHGh%+at79akO>1WhSi7Zh!q^12-bv5K>WppZFh6@Am?f!<BIe8<ZyJvwWFFq >zUcMXE0yolD)G8oeTdi8;=!mNz`J_B*yPwI?M)m~}`KHs5imGL+R7;7ZWotYNJV;A* >zWckKOJq2tdq{0$$(*LL3ZKU7Jv@p{|rJmVH#VIZ=UDrmLfQ3*?VqE$rdu3uFswG*f >z%lCCbgf){JI*%YWuFdgL!bDU{f?kyVyi~}>KvZ5Be|6^zTf#t8UO;S(JZAKN+3ASN >z3j@6)uNUz|&Al}d$_w_F78jlrimN;suUD0qIN$0jWDohucq6MjSV#Rh_J5@Pc!G3f >z_wwM3t6xj|WYw9-AC(uqCDDE%<9fTAh~QL5JzvTmP~Jf3VT_w`oktbsK$-$vb-dY+ >zEip&>4?ZIC^U;m)Hw&SbOn!F;BHM*_pCjsYrK_unjA?=AlYvYnPPY~!(~?^V6%rmz >z<RXVlV(+q3UGZ)qa4U<3RPu9z8&h()Lr7;MvMclhIow%G<k?0tDQT)8vXJ#M5t59J >znRmOBS}sb`n8kPXi@9Ww{-vOHwGp3wv!1nUm_EL5ha0)Qi>kimBF|Bjt{e!>7aIY` >z$e-!kZF!dZ$<~h?Ekqu$Hyc?mW_>Y3_Tv~aU&L~krJRVP<{Xh@#O3lKU&e81AT)VW >z+l8Kn<$pJj%%^`<NBnV^?sG(rO721gjrZ5ir7vt3{7A{<<H{~jA7`ID<MD7X!t_;S >zAdaE>s>@+0W|%%6zicXInEvpcG8HpS|5i+Fr$GIwnD~MX)K@9PlerDlpNfeu>p=af >vm<;kz{V6gHxvP)gcJytThUyO|QzGyW8di!g0nvTM00000NkvXXu0mjfqXF-V > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tr.png b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tr.png >deleted file mode 100644 >index 59843ae54b64f6ce4f7e616d4be491c911ea84cf..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 1235 >zcmV;^1T6cBP)<h;3K|Lk000e1NJLTq003kF003kJ0{{R3g3O3#0000aP)t-s005aY >zGnr;)nE(LHGc(L)X3UwH%*@QpW@i7Hng7hp|NsC0s-1y@0000CbW%=J|NsC0|NsC0 >z|Ns9065r0w00001VoOIv3m@0SzyJUQMM*?KRCwC$mrYXRI26aFnjFBd+de=qdOt_N >zRTBGjNv4=J5|!QqHQb;NfD32Vom9jLqFiod>%)>Qhp^}!Di#F%(|iB->7dhx5Bfwt >zkx%50BC1n|tx|6vK%_mLQWqnX6K;;U`FDFEg`lc|)m4wlpBK4@05B8)B_V|J%_Vlw >za4<$t6qwQ5?fVe&2b-UQ(B}DF=TLGmWzFWjfTsuoBj{dz2tgQl^A0mb5R|kzAGjHU >zzt-QIvk5};13=E&LB-q-)byMklsg#6^|GA>1kTt&3kTTsQcmN$3rJ$UlvDpmfxi-B >zs(OsZVotq*l2F1pfdVHvT}FC0ny!_MGKlO{^1lTH|7D!$)SEgOs2&9Y@Lbr2kd{<# >zhySTga0aoQC4`TSr6hxqDd{GMq~)Oxf{zHUHg7p3EkeB)qa9pj)F50=N<;4i33kkV >z+Zkfqoh0ngavtIa&CE4aHM11QcA(<ZnS*i}9_-kZ;*#IbkX(ZM7}U-VnO=(WZJ}O6 >zN?{sklqJk*eYL?f(2HA43tsrLxw#P83GW(do-aa9$Cseyd*a!d^}6HVyqYAe5u#PP >zW%Z*kP*_6LlYHvTg7zzOR0H&%9HKkXNYMzhoi|%+O@~02w{IClNzOR!w=8e?lQnb@ >z%pq|-dqh2QW;SdM6#?$Yk>1_eQZqwfj_k!6`W4$RXtT;($sb=Vf=Ltr<fHQ=Orru; >zUn;qEfp&3@JVRc|I^G&)9Ni4A9mSQOHEM$Fe1C)nz8+lD!g*#oEk#T?Ym^*pUDLa@ >zP0fmiPIHK0vlU}q+Y5`}FTpe9;sq1LWPGS!Et$V!6C--}V}{^za7DM=t4WauJA@K$ >zMP={GAs~J}TSO4+Obz2!!c-2PJ^BD}6(L7%qhFFWlm_w*{A_jB&gyf79BgCs?>w9n >z=2B#u(Pr7sL0tWekex*^{dF&8!>RY)KGWH*ffTXTQc}}ioq82%jI{MEgls^5+h<%O >z^>H1Z@tJtBVk*~XX#88aM!5hI=gDs?hBhOj+jXMvWV-~H?(^Z!I&l*r!fNriI&I;K >z<Iv6+Vk^Q0%(qeN5a+0NAxn^9#sT%s+L9uce-sc;vjLIT_kg$%QSX=-v{o_lKqih2 >zSFAju?}mC>UB`|wTQ4r~E*vl-*0C6Qu@PH2eTrR0Wf{T~%Xbknf3wf*S&<+a`6o9M >zz*S7^KKgFY$UnJ0HVgZg8jXfF%*c<rs4-Jtxk{$Dr$zap4viTq<*Snt>L({(KZLbt >zzRNL^s?W;zZP~w5L&>g+M15Ai**#&3n|Wb>4eGP<`;PGlMsC0muRbf^cs3p5##&fh >zIr(FkMaZ}vrt)1Swj2@$kLqXgyORsRw`3xZBX}-f+RL=$<nPGNDtben%J*+U`~KZM >xFqlMZdn&(j3r#(mcWQ87&CEBe=q+_3|9^_Lp+#u>Ntgft002ovPDHLkV1lbeOeO#T > >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/w3c-import.log >deleted file mode 100644 >index cc858b2e72bf4ee80bb4fba0338cdfcb0f041019..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/w3c-import.log >+++ /dev/null >@@ -1,59 +0,0 @@ >-The tests in this directory were imported from the W3C repository. >-Do NOT modify these tests directly in WebKit. >-Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >- >-Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >- >-Do NOT modify or remove this file. >- >------------------------------------------------------------------------- >-Properties requiring vendor prefixes: >-None >-Property values requiring vendor prefixes: >-None >------------------------------------------------------------------------- >-List of files: >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-green.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-lime.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-maroon.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-navy.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-red.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/1x1-white.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-gg-rr.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-green.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/60x60-red.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/README >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/a-green.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/b-green.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/c-red.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/cat.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-charset.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-green.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/import-red.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rgr-grg.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-grg-rrg-rgg.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-rgr-grg-rgr.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/pattern-tr.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50%.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-h-50px.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-100px.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/ruler-v-50px.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-purple.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-teal.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/square-white.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-blue.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-green.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-lime.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-orange.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-red.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-teal.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-white.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/swatch-yellow.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-bl.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-br.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-inner-half-size.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-outer.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tl.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/test-tr.png >-/LayoutTests/imported/w3c/web-platform-tests/cssom/support/xmlss-pi.xhtml >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/xmlss-pi.xhtml b/LayoutTests/imported/w3c/web-platform-tests/cssom/support/xmlss-pi.xhtml >deleted file mode 100644 >index 8e22b50b25a5458d832e31bb3c61e0ed881fb59c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/support/xmlss-pi.xhtml >+++ /dev/null >@@ -1 +0,0 @@ >-<?xml-stylesheet href='data:text/css,'?><html xmlns='http://www.w3.org/1999/xhtml'/> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt >deleted file mode 100644 >index bcf4b947450d2a714aae9ba4c0b18bc2e3426edf..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count-expected.txt >+++ /dev/null >@@ -1,5 +0,0 @@ >- >-PASS stylesheet.css should be loaded and styleSheets.length === 1 >-PASS stylesheet.css should be unloaded and styleSheets.length === 0 >-FAIL stylesheet-1.css should be loaded and styleSheets.length === 1 assert_equals: styleSheets.length is incorrect: expected 1 but got 0 >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html >deleted file mode 100644 >index f507a961032df941eac1b3f3872f55d099afd498..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html >+++ /dev/null >@@ -1,68 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSSOM - Extensions to the Document Interface: StyleSheetList length reflects dynamically loaded and unloaded sheets</title> >- <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheet-collections"> >- <link rel="stylesheet" href="stylesheet.css" type="text/css"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="The styleSheets length attribute must reflect the number of sheets at page load and after dynamically"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >- <script id="metadata_cache">/* >- { >- "stylesheet.css should be loaded and styleSheets.length === 1": {}, >- "stylesheet.css should be unloaded and styleSheets.length === 0": {}, >- "stylesheet-1.css should be loaded and styleSheets.length === 1": {} >- } >- */</script> >-</head> >-<body> >- <div id="log"></div> >- <script> >- >- // Get the Document's styleSheets attribute >- var styleSheets = document.styleSheets; >- >- // Verify that the styleSheets list length is 1 due to "stylesheet.css" loaded in head section >- test(function() { >- assert_equals(styleSheets.length, 1, "styleSheets.length is incorrect:"); >- }, "stylesheet.css should be loaded and styleSheets.length === 1"); >- >- // Verify that the styleSheets list length is 0 after removing the loaded sheet from the DOM >- test(function() { >- >- // get the one and only sheet loaded >- var sheet = styleSheets.item(0); >- >- // remove the sheet from the DOM >- sheet.ownerNode.parentNode.removeChild(sheet.ownerNode) >- >- // assert that there are 0 styleSheets in the styleSheets property >- assert_equals(styleSheets.length, 0, "styleSheets.length is incorrect:"); >- >- }, "stylesheet.css should be unloaded and styleSheets.length === 0"); >- >- // Verify that the styleSheets list length is back to 1 after loading a new sheet >- test(function() { >- >- // create a css file reference >- var fileReference = document.createElement("link"); >- fileReference.setAttribute("rel", "stylesheet"); >- fileReference.setAttribute("type", "text/css"); >- fileReference.setAttribute("href", "stylesheet-1.css"); >- >- // load the css file reference into the head section >- var head = document.getElementsByTagName("HEAD")[0]; >- head.appendChild(fileReference); >- >- // assert that there is 1 styleSheet in the styleSheets property >- assert_equals(styleSheets.length, 1, "styleSheets.length is incorrect:"); >- >- }, "stylesheet-1.css should be loaded and styleSheets.length === 1"); >- >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt >deleted file mode 100644 >index 80391760c1bc8907fb2dc99905193eccc4806d2c..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order-expected.txt >+++ /dev/null >@@ -1,8 +0,0 @@ >- >-FAIL styleSheets.length must be 5 assert_equals: styleSheets.length is incorrect: expected 5 but got 1 >-PASS styleSheets item 0 title must be aaa >-FAIL styleSheets item 1 title must be zebra null is not an object (evaluating 'styleSheets.item(1).title') >-FAIL styleSheets item 0 title must be kilo null is not an object (evaluating 'styleSheets.item(2).title') >-FAIL styleSheets item 0 title must be alpha null is not an object (evaluating 'styleSheets.item(3).title') >-FAIL styleSheets item 0 title must be zebra null is not an object (evaluating 'styleSheets.item(4).title') >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html >deleted file mode 100644 >index 795ead02f4b2598d037c6d059f303f020c3d5d20..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html >+++ /dev/null >@@ -1,56 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSSOM - Extensions to the Document Interface: Stylesheet header load order</title> >- <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#css-style-sheet-collections"> >- <style title="aaa" type="text/css"> >- H1 {border-width: 1; border: solid; text-align: center} >- </style> >- <link title="zebra" rel="stylesheet" href="zebra.css" type="text/css"> >- <link title="kilo" rel="stylesheet" href="kilo.css" type="text/css"> >- <link title="alpha" rel="stylesheet" href="alpha.css" type="text/css"> >- <link title="zebra" rel="stylesheet" href="/directory01/zebra.css" type="text/css"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="Document's style sheets created from HTTP Link headers are first in list and loaded in header order"> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >-</head> >-<body> >- <div id="log"></div> >- <script> >- >- // Get the Document's styleSheets attribute >- var styleSheets = document.styleSheets; >- >- // Verify that the styleSheets list length is 5 >- test(function() { >- assert_equals(styleSheets.length, 5, "styleSheets.length is incorrect:"); >- }, "styleSheets.length must be 5"); >- >- // Verify that titles of loaded sheets are as expected (in the correct order) >- test(function() { >- assert_equals(styleSheets.item(0).title, "aaa", "title for item 1 is incorrect:"); >- }, "styleSheets item 0 title must be aaa"); >- // Verify that titles of loaded sheets are as expected (in the correct order) >- test(function() { >- assert_equals(styleSheets.item(1).title, "zebra", "title for item 1 is incorrect:"); >- }, "styleSheets item 1 title must be zebra"); >- // Verify that titles of loaded sheets are as expected (in the correct order) >- test(function() { >- assert_equals(styleSheets.item(2).title, "kilo", "title for item 1 is incorrect:"); >- }, "styleSheets item 0 title must be kilo"); >- // Verify that titles of loaded sheets are as expected (in the correct order) >- test(function() { >- assert_equals(styleSheets.item(3).title, "alpha", "title for item 1 is incorrect:"); >- }, "styleSheets item 0 title must be alpha"); >- // Verify that titles of loaded sheets are as expected (in the correct order) >- test(function() { >- assert_equals(styleSheets.item(4).title, "zebra", "title for item 1 is incorrect:"); >- }, "styleSheets item 0 title must be zebra"); >- >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt >deleted file mode 100644 >index ee4857c4bfd7c2996783e789c1cb3bdda5812820..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension-expected.txt >+++ /dev/null >@@ -1,3 +0,0 @@ >- >-PASS CSSOM - Extensions to the Document Interface: StyleSheetList length is 0 when no sheets loaded >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension.html >deleted file mode 100644 >index 5d968b90283cce1c77e894a6231814554501c102..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension.html >+++ /dev/null >@@ -1,25 +0,0 @@ >-<!DOCTYPE html> >-<html> >-<head> >- <title>CSSOM - Extensions to the Document Interface: StyleSheetList length is 0 when no sheets loaded</title> >- <link rel="author" title="Jesse Bounds" href="mailto:jesse@codeforamerica.org"> >- <link rel="reviewer" title="Ms2ger" href="mailto:ms2ger@gmail.com"> <!-- 2012-06-17 --> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#extensions-to-the-document-interface"> >- <link rel="help" href="http://www.w3.org/TR/cssom-1/#the-stylesheetlist-interface"> >- <meta name="flags" content="dom"> >- <meta name="assert" content="The styleSheets attribute must return a StyleSheetList sequence representing the document style sheets."> >- <script src="/resources/testharness.js"></script> >- <script src="/resources/testharnessreport.js"></script> >-</head> >-<body> >- <div id="log"></div> >- <script> >- // Get the Document's styleSheets attribute >- var styleSheets = document.styleSheets; >- // Verify that the styleSheets list length is 0 because no stylesheets have been loaded >- test(function() { >- assert_equals(styleSheets.length, 0, "styleSheets.length is incorrect:"); >- }) >- </script> >-</body> >-</html> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names-expected.txt >deleted file mode 100644 >index 5bfc003c47fe7f1ab2fe89484b007480e34211d7..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names-expected.txt >+++ /dev/null >@@ -1,8 +0,0 @@ >- >-FAIL custom property '--a' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >-FAIL custom property '--a;b' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 >-FAIL custom property '---' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >-FAIL custom property '--\' assert_equals: appears on specified style (after serialization/re-parsing) expected 1 but got 0 >-FAIL custom property '--ab' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >-FAIL custom property '--0' assert_equals: property value returned correctly from specified style getPropertyValue (after serialization/re-parsing) expected "value" but got " value" >- >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names.html b/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names.html >deleted file mode 100644 >index b951b7dfbb2f7fd25dee2346f996e57d6b6afd68..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names.html >+++ /dev/null >@@ -1,47 +0,0 @@ >-<!DOCTYPE html> >-<meta charset="utf-8"> >-<title>Tests for handling of CSS Custom Property names</title> >-<meta name="author" title="Cameron McCormack" href="mailto:cam@mcc.id.au"> >-<script src="/resources/testharness.js"></script> >-<script src="/resources/testharnessreport.js"></script> >-<div id="log"></div> >-<script> >- >-// Valid custom property names, before and after CSS escaping. >-var valid_names = [ >- ["--a", "--a"], >- ["--a;b", "--a\\;b"], >- ["---", "---"], >- ["--\\", "--\\\\"], >- ["--ab", "--\\61 b"], >- ["--0", "--\\30 "], >-]; >- >-valid_names.forEach(function(t) { >- var name = t[0]; >- var escaped_name = t[1]; >- >- test(function() { >- var e = document.createElement("span"); >- e.style = escaped_name + ":value"; >- >- for (var after_refeeding = 0; after_refeeding <= 1; ++after_refeeding) { >- var desc_suffix = (after_refeeding ? " (after " : " (before ") + >- "serialization/re-parsing)"; >- >- assert_equals(e.style.length, 1, >- "appears on specified style" + desc_suffix); >- >- assert_equals(e.style[0], name, >- "name returned correctly from specified " + >- "style indexed getter" + desc_suffix); >- >- assert_equals(e.style.getPropertyValue(name), "value", >- "property value returned correctly from " + >- "specified style getPropertyValue" + desc_suffix); >- >- e.style = e.style.cssText; >- } >- }, "custom property '" + name + "'"); >-}); >-</script> >diff --git a/LayoutTests/imported/w3c/web-platform-tests/cssom/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/cssom/w3c-import.log >deleted file mode 100644 >index bca4649452b8df9eccc1b71b08427fe5d1d4d00d..0000000000000000000000000000000000000000 >--- a/LayoutTests/imported/w3c/web-platform-tests/cssom/w3c-import.log >+++ /dev/null >@@ -1,72 +0,0 @@ >-The tests in this directory were imported from the W3C repository. >-Do NOT modify these tests directly in WebKit. >-Instead, create a pull request on the WPT github: >- https://github.com/w3c/web-platform-tests >- >-Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport >- >-Do NOT modify or remove this file. >- >------------------------------------------------------------------------- >-Properties requiring vendor prefixes: >-None >-Property values requiring vendor prefixes: >-None >------------------------------------------------------------------------- >-List of files: >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSS.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframeRule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSKeyframesRule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSNamespaceRule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSRuleList.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleRule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml >-/LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS >-/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-attribute-modifications.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/css-style-declaration-modifications.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssimportrule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssText-serialize.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-cssstyledeclaration-set.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule-constructors.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-fontfacerule.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-ruleTypeAndOrder.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssom-setProperty-shorthand.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-csstext.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/cssstyledeclaration-mutability.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/escape.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/getComputedStyle-pseudo.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/historical.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/index-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/index-002.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/inline-style-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-charset-no-index.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-import-no-index.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-namespace-no-index.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/insertRule-no-index.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/interfaces.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-002.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-003.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-variable-reference.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/shorthand-serialization.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-001.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/style-sheet-interfaces-002.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.css >-/LayoutTests/imported/w3c/web-platform-tests/cssom/stylesheet-same-origin.sub.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-count.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-doc-ext-load-tree-order.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/ttwf-cssom-document-extension.html >-/LayoutTests/imported/w3c/web-platform-tests/cssom/variable-names.html
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185805
:
340795
|
340798
|
340799
|
340800
|
340802
|
340803
|
340804