test_counterstyle.html (4403B)
1 <html> 2 3 <head> 4 <title>nsIAccessible::name calculation for @counter-style</title> 5 <link rel="stylesheet" type="text/css" 6 href="chrome://mochikit/content/tests/SimpleTest/test.css" /> 7 8 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 9 10 <script type="application/javascript" 11 src="../common.js"></script> 12 <script type="application/javascript" 13 src="../name.js"></script> 14 15 <style id="counterstyles" type="text/css"> 16 @counter-style system-alphabetic { 17 system: alphabetic; 18 symbols: x y z; 19 } 20 @counter-style system-cyclic { 21 system: cyclic; 22 symbols: x y z; 23 } 24 @counter-style system-numeric { 25 system: numeric; 26 symbols: x y z; 27 } 28 @counter-style speak-as-bullets { 29 system: extends decimal; 30 speak-as: bullets; 31 } 32 @counter-style speak-as-numbers { 33 system: extends system-alphabetic; 34 speak-as: numbers; 35 } 36 @counter-style speak-as-words { 37 system: additive; 38 additive-symbols: 20 "twenty ", 9 "nine", 7 "seven", 1 "one"; 39 speak-as: words; 40 } 41 @counter-style speak-as-spell-out { 42 system: extends system-alphabetic; 43 speak-as: spell-out; 44 } 45 @counter-style speak-as-other { 46 system: extends decimal; 47 speak-as: speak-as-words; 48 } 49 @counter-style speak-as-loop { 50 system: extends upper-latin; 51 speak-as: speak-as-loop0; 52 } 53 @counter-style speak-as-loop0 { 54 system: extends disc; 55 speak-as: speak-as-loop1; 56 } 57 @counter-style speak-as-loop1 { 58 system: extends decimal; 59 speak-as: speak-as-loop0; 60 } 61 @counter-style speak-as-extended0 { 62 system: extends decimal; 63 speak-as: speak-as-extended1; 64 } 65 @counter-style speak-as-extended1 { 66 system: extends speak-as-extended0; 67 speak-as: disc; 68 } 69 @counter-style speak-as-extended2 { 70 system: extends decimal; 71 speak-as: speak-as-extended3; 72 } 73 @counter-style speak-as-extended3 { 74 system: extends speak-as-extended2; 75 } 76 </style> 77 78 <script type="application/javascript"> 79 80 function doTest() { 81 function testRule(aRule, aNames, aTodo) { 82 testName(aRule + "-1", aNames[0], null, aTodo); 83 testName(aRule + "-7", aNames[1], null, aTodo); 84 testName(aRule + "-29", aNames[2], null, aTodo); 85 } 86 87 var spellOutNames = ["X. 1", "Y X. 7", "Y Z Y. 29"]; 88 var bulletsNames = [kDiscBulletText + "1", 89 kDiscBulletText + "7", 90 kDiscBulletText + "29"]; 91 var numbersNames = ["1. 1", "7. 7", "29. 29"]; 92 var wordsNames = ["one. 1", "seven. 7", "twenty nine. 29"]; 93 94 testRule("system-alphabetic", spellOutNames, true); // bug 1024178 95 testRule("system-cyclic", bulletsNames); 96 testRule("system-numeric", numbersNames); 97 98 testRule("speak-as-bullets", bulletsNames); 99 testRule("speak-as-numbers", numbersNames); 100 testRule("speak-as-words", wordsNames); 101 testRule("speak-as-spell-out", spellOutNames, true); // bug 1024178 102 testRule("speak-as-other", wordsNames); 103 104 testRule("speak-as-loop", bulletsNames); 105 testRule("speak-as-loop0", bulletsNames); 106 testRule("speak-as-loop1", numbersNames); 107 108 testRule("speak-as-extended0", bulletsNames); 109 testRule("speak-as-extended1", bulletsNames); 110 testRule("speak-as-extended2", numbersNames); 111 testRule("speak-as-extended3", numbersNames); 112 113 SimpleTest.finish(); 114 } 115 116 SimpleTest.waitForExplicitFinish(); 117 addA11yLoadEvent(doTest); 118 </script> 119 120 </head> 121 122 <body> 123 124 <a target="_blank" 125 href="https://bugzilla.mozilla.org/show_bug.cgi?id=966166" 126 title="Bug 966166 - Implement @counter-style rule"> 127 Bug 966166 128 </a> 129 130 <ol id="list"></ol> 131 132 <script type="application/javascript"> 133 var list = getNode("list"); 134 var rules = getNode("counterstyles").sheet.cssRules; 135 var values = [1, 7, 29]; 136 for (var i = 0; i < rules.length; i++) { 137 var rule = rules[i]; 138 for (var j = 0; j < values.length; j++) { 139 var item = document.createElement("li"); 140 item.id = rule.name + "-" + values[j]; 141 item.value = values[j]; 142 item.textContent = values[j]; 143 item.setAttribute("style", "list-style-type: " + rule.name); 144 list.appendChild(item); 145 } 146 } 147 </script> 148 149 </body> 150 </html>