Permalink
Browse files

Correctly test CSSStyleRule.style.

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 b6667181ee05ed8e17a3f0179a725f63c2da48ab
Showing with 19 additions and 2 deletions.
  1. +1 −1 tests/wpt/metadata/MANIFEST.json
  2. +18 −1 tests/wpt/web-platform-tests/cssom/CSSStyleRule.html
@@ -574763,7 +574763,7 @@
"testharness"
],
"cssom/CSSStyleRule.html": [
"e9d0acfc0c9123dcd2295e217bdfc1ac5195c3f0",
"9fe62d2e23709b77e9b5cda4522ec1c04d2940cf",
"testharness"
],
"cssom/CSSStyleSheet.html": [
@@ -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");

0 comments on commit b666718

Please sign in to comment.