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>