Skip to content

Commit

Permalink
Correctly test CSSStyleRule.style.
Browse files Browse the repository at this point in the history
Remove the assert_readonly test and add one to verify that assigning to
CSSStyleRule.style correctly forwards to CSSStyleRule.style.cssText.

We currently test for whether CSSStyleRule.style is read-only by
trying to assign to it; however, the spec has it as actually:

interface CSSStyleRule : CSSRule {
  ...
  [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style;
};

See: https://drafts.csswg.org/cssom/

The `PutForwards=cssText` means that assigning to CSSStyleRule.style
should actually assign to style.cssText.
  • Loading branch information
jyc authored and jdm committed Oct 12, 2017
1 parent 1f531f6 commit b666718
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion tests/wpt/metadata/MANIFEST.json
Expand Up @@ -574763,7 +574763,7 @@
"testharness"
],
"cssom/CSSStyleRule.html": [
"e9d0acfc0c9123dcd2295e217bdfc1ac5195c3f0",
"9fe62d2e23709b77e9b5cda4522ec1c04d2940cf",
"testharness"
],
"cssom/CSSStyleSheet.html": [
Expand Down
19 changes: 18 additions & 1 deletion tests/wpt/web-platform-tests/cssom/CSSStyleRule.html
Expand Up @@ -67,7 +67,24 @@
assert_idl_attribute(rule, "selectorText");
assert_equals(typeof rule.selectorText, "string");
assert_idl_attribute(rule, "style");
}, "Existence, writability and type of CSSStyleRule attributes");
}, "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");
Expand Down

0 comments on commit b666718

Please sign in to comment.