tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

margin-003.html (2383B)


      1 <!DOCTYPE html>
      2 <link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
      3 <link rel="help" href="https://drafts.csswg.org/cssom/#the-csspagerule-interface">
      4 <title>Add / remove margin rules inside an @page rule</title>
      5 <style id="sheet">
      6  @page { }
      7 </style>
      8 <script src="/resources/testharness.js"></script>
      9 <script src="/resources/testharnessreport.js"></script>
     10 <script>
     11  let sheet = document.getElementById("sheet").sheet;
     12  let pageRule = sheet.rules[0];
     13 
     14  test(() => {
     15    assert_equals(pageRule.cssRules.length, 0);
     16    pageRule.insertRule("@top-center {}");
     17    assert_equals(pageRule.cssRules.length, 1);
     18    assert_equals(pageRule.cssRules[0].name, "top-center");
     19 
     20    pageRule.insertRule("@top-right {}", 1);
     21    assert_equals(pageRule.cssRules.length, 2);
     22    assert_equals(pageRule.cssRules[0].name, "top-center");
     23    assert_equals(pageRule.cssRules[1].name, "top-right");
     24 
     25    pageRule.insertRule("@top-left {}", 0);
     26    assert_equals(pageRule.cssRules.length, 3);
     27 
     28    pageRule.insertRule("@top-left {}", 0);
     29    assert_equals(pageRule.cssRules.length, 4);
     30 
     31    // Invalid at-rule:
     32    try { pageRule.insertRule("@page {}"); } catch (e) {}
     33 
     34    // Another invalid at-rule:
     35    try { pageRule.insertRule("@media print {}"); } catch (e) {}
     36 
     37    // Style rules are not allowed here:
     38    try { pageRule.insertRule("div {}"); } catch (e) {}
     39 
     40    assert_equals(pageRule.cssRules.length, 4);
     41 
     42    assert_equals(pageRule.cssRules[0].name, "top-left");
     43    assert_equals(pageRule.cssRules[1].name, "top-left");
     44    assert_equals(pageRule.cssRules[2].name, "top-center");
     45    assert_equals(pageRule.cssRules[3].name, "top-right");
     46  }, "Insert rules");
     47 
     48  test(() => {
     49    assert_equals(pageRule.cssRules.length, 4);
     50 
     51    pageRule.deleteRule(3);
     52    assert_equals(pageRule.cssRules.length, 3);
     53    assert_equals(pageRule.cssRules[0].name, "top-left");
     54    assert_equals(pageRule.cssRules[1].name, "top-left");
     55    assert_equals(pageRule.cssRules[2].name, "top-center");
     56 
     57    pageRule.deleteRule(1);
     58    assert_equals(pageRule.cssRules.length, 2);
     59    assert_equals(pageRule.cssRules[0].name, "top-left");
     60    assert_equals(pageRule.cssRules[1].name, "top-center");
     61 
     62    pageRule.deleteRule(0);
     63    assert_equals(pageRule.cssRules.length, 1);
     64 
     65    pageRule.deleteRule(0);
     66    assert_equals(pageRule.cssRules.length, 0);
     67  }, "Delete rules");
     68 </script>