test_meter_pseudo-classes.html (5469B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=660238 5 --> 6 <head> 7 <title>Test for Bug 660238</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 10 </head> 11 <body> 12 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=770238">Mozilla Bug 660238</a> 13 <p id="display"></p> 14 <pre id="test"> 15 <script type="application/javascript"> 16 17 /** Test for Bug 660238 */ 18 19 function checkOptimum(aElement, aValue, aOptimum, expectedResult) 20 { 21 var errorString = expectedResult 22 ? "value attribute should be in the optimum region" 23 : "value attribute should not be in the optimum region"; 24 25 aElement.setAttribute('value', aValue); 26 aElement.setAttribute('optimum', aOptimum); 27 is(aElement.matches(":-moz-meter-optimum"), 28 expectedResult, errorString); 29 } 30 31 function checkSubOptimum(aElement, aValue, aOptimum, expectedResult) 32 { 33 var errorString = "value attribute should be in the suboptimal region"; 34 if (!expectedResult) { 35 errorString = "value attribute should not be in the suboptimal region"; 36 } 37 aElement.setAttribute('value', aValue); 38 aElement.setAttribute('optimum', aOptimum); 39 is(aElement.matches(":-moz-meter-sub-optimum"), 40 expectedResult, errorString); 41 } 42 43 function checkSubSubOptimum(aElement, aValue, aOptimum, expectedResult) 44 { 45 var errorString = "value attribute should be in the sub-suboptimal region"; 46 if (!expectedResult) { 47 errorString = "value attribute should not be in the sub-suboptimal region"; 48 } 49 aElement.setAttribute('value', aValue); 50 aElement.setAttribute('optimum', aOptimum); 51 is(aElement.matches(":-moz-meter-sub-sub-optimum"), 52 expectedResult, errorString); 53 } 54 55 function checkMozMatchesSelector() 56 { 57 var element = document.createElement('meter'); 58 // all tests realised with default values for min and max (0 and 1) 59 // low = 0.3 and high = 0.7 60 element.setAttribute('low', 0.3); 61 element.setAttribute('high', 0.7); 62 63 var tests = [ 64 /* 65 * optimum = 0.0 => 66 * optimum region = [ 0.0, 0.3 [ 67 * suboptimal region = [ 0.3, 0.7 ] 68 * sub-suboptimal region = ] 0.7, 1.0 ] 69 */ 70 [ 0.0, 0.0, true, false, false ], 71 [ 0.1, 0.0, true, false, false ], 72 [ 0.3, 0.0, false, true, false ], 73 [ 0.5, 0.0, false, true, false ], 74 [ 0.7, 0.0, false, true, false ], 75 [ 0.8, 0.0, false, false, true ], 76 [ 1.0, 0.0, false, false, true ], 77 /* 78 * optimum = 0.1 => 79 * optimum region = [ 0.0, 0.3 [ 80 * suboptimal region = [ 0.3, 0.7 ] 81 * sub-suboptimal region = ] 0.7, 1.0 ] 82 */ 83 [ 0.0, 0.1, true, false, false ], 84 [ 0.1, 0.1, true, false, false ], 85 [ 0.3, 0.1, false, true, false ], 86 [ 0.5, 0.1, false, true, false ], 87 [ 0.7, 0.1, false, true, false ], 88 [ 0.8, 0.1, false, false, true ], 89 [ 1.0, 0.1, false, false, true ], 90 /* 91 * optimum = 0.3 => 92 * suboptimal region = [ 0.0, 0.3 [ 93 * optimum region = [ 0.3, 0.7 ] 94 * suboptimal region = ] 0.7, 1.0 ] 95 */ 96 [ 0.0, 0.3, false, true, false ], 97 [ 0.1, 0.3, false, true, false ], 98 [ 0.3, 0.3, true, false, false ], 99 [ 0.5, 0.3, true, false, false ], 100 [ 0.7, 0.3, true, false, false ], 101 [ 0.8, 0.3, false, true, false ], 102 [ 1.0, 0.3, false, true, false ], 103 /* 104 * optimum = 0.5 => 105 * suboptimal region = [ 0.0, 0.3 [ 106 * optimum region = [ 0.3, 0.7 ] 107 * suboptimal region = ] 0.7, 1.0 ] 108 */ 109 [ 0.0, 0.5, false, true, false ], 110 [ 0.1, 0.5, false, true, false ], 111 [ 0.3, 0.5, true, false, false ], 112 [ 0.5, 0.5, true, false, false ], 113 [ 0.7, 0.5, true, false, false ], 114 [ 0.8, 0.5, false, true, false ], 115 [ 1.0, 0.5, false, true, false ], 116 /* 117 * optimum = 0.7 => 118 * suboptimal region = [ 0.0, 0.3 [ 119 * optimum region = [ 0.3, 0.7 ] 120 * suboptimal region = ] 0.7, 1.0 ] 121 */ 122 [ 0.0, 0.7, false, true, false ], 123 [ 0.1, 0.7, false, true, false ], 124 [ 0.3, 0.7, true, false, false ], 125 [ 0.5, 0.7, true, false, false ], 126 [ 0.7, 0.7, true, false, false ], 127 [ 0.8, 0.7, false, true, false ], 128 [ 1.0, 0.7, false, true, false ], 129 /* 130 * optimum = 0.8 => 131 * sub-suboptimal region = [ 0.0, 0.3 [ 132 * suboptimal region = [ 0.3, 0.7 ] 133 * optimum region = ] 0.7, 1.0 ] 134 */ 135 [ 0.0, 0.8, false, false, true ], 136 [ 0.1, 0.8, false, false, true ], 137 [ 0.3, 0.8, false, true, false ], 138 [ 0.5, 0.8, false, true, false ], 139 [ 0.7, 0.8, false, true, false ], 140 [ 0.8, 0.8, true, false, false ], 141 [ 1.0, 0.8, true, false, false ], 142 /* 143 * optimum = 1.0 => 144 * sub-suboptimal region = [ 0.0, 0.3 [ 145 * suboptimal region = [ 0.3, 0.7 ] 146 * optimum region = ] 0.7, 1.0 ] 147 */ 148 [ 0.0, 1.0, false, false, true ], 149 [ 0.1, 1.0, false, false, true ], 150 [ 0.3, 1.0, false, true, false ], 151 [ 0.5, 1.0, false, true, false ], 152 [ 0.7, 1.0, false, true, false ], 153 [ 0.8, 1.0, true, false, false ], 154 [ 1.0, 1.0, true, false, false ], 155 ]; 156 157 for (var test of tests) { 158 checkOptimum(element, test[0], test[1], test[2]); 159 checkSubOptimum(element, test[0], test[1], test[3]); 160 checkSubSubOptimum(element, test[0], test[1], test[4]); 161 } 162 } 163 164 checkMozMatchesSelector(); 165 166 </script> 167 </pre> 168 </body> 169 </html>