chromium/third_party/blink/web_tests/external/wpt/css/css-page/cssom/page-001.html

<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/cssom/#the-csspagerule-interface">
<title>Basic CSSPageRule CSSOM test</title>
<style id="sheet">
  @page {}
  @page :left {}
  @page named { margin: 10px 20px; }
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
  var sheet = document.getElementById("sheet").sheet;
  test(()=> {
    assert_not_equals(sheet, null);
    assert_equals(sheet.rules.length, 3);
  }, "There should be 3 @page rules.");

  test(()=> {
    assert_equals(sheet.rules[0].constructor.name, "CSSPageRule");
    assert_equals(sheet.rules[0].selectorText, "");
    assert_equals(sheet.rules[0].style.length, 0);
  }, "Rule #0");

  test(()=> {
    assert_equals(sheet.rules[1].constructor.name, "CSSPageRule");
    assert_equals(sheet.rules[1].selectorText, ":left");
    assert_equals(sheet.rules[1].style.length, 0);
  }, "Rule #1");

  test(()=> {
    assert_equals(sheet.rules[2].constructor.name, "CSSPageRule");
    assert_equals(sheet.rules[2].selectorText, "named");
    var style = sheet.rules[2].style;
    assert_equals(style.length, 4);
    assert_equals(style.marginTop, "10px");
    assert_equals(style.marginRight, "20px");
    assert_equals(style.marginBottom, "10px");
    assert_equals(style.marginLeft, "20px");
  }, "Rule #2");
</script>