wpt / css / css-cascade / scope-cssom.html

Status: FAIL | Duration: 47ms | Subtests: 0/13 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
CSSScopeRule.cssText, implicit scopeFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.cssText, root onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.cssText, root and limitFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.cssText, limit onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.start, implicit scopeFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.start, root onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.start, root and limitFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.start, limit onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.end, implicit scopeFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.end, root onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.end, root and limitFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule.end, limit onlyFAILcannot convert 'null' or 'undefined' to object
CSSScopeRule is a CSSGroupingRuleFAILcannot convert 'null' or 'undefined' to object

/css/css-cascade/scope-cssom.html

<!DOCTYPE html>
<title>@scope - CSSOM</title>
<link rel="help" href="https://drafts.csswg.org/css-cascade-6/#the-cssscoperule-interface">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style id=style>
  @scope {}
  @scope (.a) {}
  @scope (.a) to (.b) {
    div {
      display: block;
    }
  }
  @scope to (.b) {}
</style>
<script>

// CSSScopeRule.cssText
test(() => {
  assert_equals(style.sheet.rules[0].cssText, '@scope {\n}');
}, 'CSSScopeRule.cssText, implicit scope');

test(() => {
  assert_equals(style.sheet.rules[1].cssText, '@scope (.a) {\n}');
}, 'CSSScopeRule.cssText, root only');

test(() => {
  assert_equals(style.sheet.rules[2].cssText, '@scope (.a) to (.b) {\n  div { display: block; }\n}');
}, 'CSSScopeRule.cssText, root and limit');

test(() => {
  assert_equals(style.sheet.rules[3].cssText, '@scope to (.b) {\n}');
}, 'CSSScopeRule.cssText, limit only');

// start
test(() => {
  assert_equals(style.sheet.rules[0].start, null);
}, 'CSSScopeRule.start, implicit scope');

test(() => {
  assert_equals(style.sheet.rules[1].start, '.a');
}, 'CSSScopeRule.start, root only');

test(() => {
  assert_equals(style.sheet.rules[2].start, '.a');
}, 'CSSScopeRule.start, root and limit');

test(() => {
  assert_equals(style.sheet.rules[3].start, null);
}, 'CSSScopeRule.start, limit only');

// end
test(() => {
  assert_equals(style.sheet.rules[0].end, null);
}, 'CSSScopeRule.end, implicit scope');

test(() => {
  assert_equals(style.sheet.rules[1].end, null);
}, 'CSSScopeRule.end, root only');

test(() => {
  assert_equals(style.sheet.rules[2].end, '.b');
}, 'CSSScopeRule.end, root and limit');

test(() => {
  assert_equals(style.sheet.rules[3].end, '.b');
}, 'CSSScopeRule.end, limit only');

test(() => {
  assert_true(style.sheet.rules[0] instanceof CSSGroupingRule);
  assert_false(style.sheet.rules[0] instanceof CSSConditionRule);
}, 'CSSScopeRule is a CSSGroupingRule');
</script>