Status: FAIL | Duration: 50ms | Subtests: 0/1 | Open test on wpt.live | wpt.fyi
/css/cssom/cssom-pagerule.html
<!DOCTYPE html> <title>CSSOM: CSSPageRule tests</title> <link rel="help" href="https://drafts.csswg.org/cssom/#the-csspagerule-interface" /> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @page {} </style> <script> const sheet = document.styleSheets[0]; const rule = sheet.cssRules[0]; test(() => { assert_true(!!rule); assert_equals(rule.type, CSSRule.PAGE_RULE); }, "Sanity checks"); test(() => { assert_equals(rule.selectorText, ""); }, "Page selector is initially the empty string"); test(() => { assert_equals(rule.cssText, "@page { }"); }, "Page selector 'cssText' is initially the @page { }"); test(() => { rule.selectorText = ":left"; assert_equals(rule.selectorText, ":left"); }, "Set selectorText to :left pseudo page"); test(() => { rule.selectorText = ":left"; assert_equals(rule.cssText, "@page :left { }"); }, "Set cssText to :left pseudo page"); test(() => { rule.selectorText = "named"; assert_equals(rule.selectorText, "named"); }, "Set selectorText to named page"); test(() => { rule.selectorText = "named"; assert_equals(rule.cssText, "@page named { }"); }, "Set cssText to named page"); test(() => { rule.selectorText = "named:first"; assert_equals(rule.selectorText, "named:first"); }, "Set selectorText to named page with :first pseudo page"); test(() => { rule.selectorText = "named:first"; assert_equals(rule.cssText, "@page named:first { }"); }, "Set cssText to named page with :first pseudo page"); test(() => { rule.selectorText = "named:First"; assert_equals(rule.selectorText, "named:first"); }, "Set selectorText to named page with case insensitive :first pseudo page"); test(() => { rule.selectorText = "named:First"; assert_equals(rule.cssText, "@page named:first { }"); }, "Set cssText to named page with case insensitive :first pseudo page"); test(() => { rule.selectorText = "named:first:first"; assert_equals(rule.selectorText, "named:first:first"); }, "Set selectorText to named page with two :first pseudo page"); test(() => { rule.selectorText = "named:first:first"; assert_equals(rule.cssText, "@page named:first:first { }"); }, "Set cssText to named page with two :first pseudo page"); test(() => { rule.selectorText = "named:first:left:right:first"; assert_equals(rule.selectorText, "named:first:left:right:first"); }, "Set selectorText to named page with pseudo pages of " + ":first, :left, :right, :first in order."); test(() => { rule.selectorText = "named:first:left:right:first"; assert_equals(rule.cssText, "@page named:first:left:right:first { }"); }, "Set cssText to named page with pseudo pages of " + ":first, :left, :right, :first in order."); test(() => { rule.selectorText = ""; rule.selectorText = "named :first"; assert_equals(rule.selectorText, ""); }, "Cannot set selectorText to named page with pseudo, whitespace between"); test(() => { rule.selectorText = ""; rule.selectorText = "named :first"; assert_equals(rule.cssText, "@page { }"); }, "Cannot set cssText to named page with pseudo, whitespace between - return default @page { }"); test(() => { rule.selectorText = ""; rule.selectorText = ":first :left"; assert_equals(rule.selectorText, ""); }, "Cannot set selectorText to two pseudos, whitespace between"); test(() => { rule.selectorText = ""; rule.selectorText = ":first :left"; assert_equals(rule.cssText, "@page { }"); }, "Cannot set cssText to two pseudos, whitespace between - return default @page { }"); test(() => { rule.selectorText = ""; rule.selectorText = ":notapagepseudo"; assert_equals(rule.selectorText, ""); }, "Cannot set selectorText to invalid pseudo page"); test(() => { rule.selectorText = ""; rule.selectorText = ":notapagepseudo"; assert_equals(rule.cssText, "@page { }"); }, "Cannot set cssText to invalid pseudo page - return default @page { }"); test(() => { assert_equals(rule.parentStyleSheet, sheet); sheet.deleteRule(0); assert_equals(rule.parentStyleSheet, null); rule.selectorText = "pagename"; }, "Set selectorText to named page after rule was removed"); </script>