OLD | NEW |
(Empty) | |
| 1 <!-- |
| 2 Copyright 2013 Google Inc. All Rights Reserved. |
| 3 |
| 4 Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 you may not use this file except in compliance with the License. |
| 6 You may obtain a copy of the License at |
| 7 |
| 8 http://www.apache.org/licenses/LICENSE-2.0 |
| 9 |
| 10 Unless required by applicable law or agreed to in writing, software |
| 11 distributed under the License is distributed on an "AS IS" BASIS, |
| 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 See the License for the specific language governing permissions and |
| 14 limitations under the License. |
| 15 --> |
| 16 <!DOCTYPE html><meta charset="UTF-8"> |
| 17 <script src="../bootstrap.js"></script> |
| 18 <script> |
| 19 "use strict"; |
| 20 |
| 21 test(function() { |
| 22 var element = document.createElement('span'); |
| 23 assert_styles(element, {}, |
| 24 'assert_styles should support an element with no parent'); |
| 25 |
| 26 document.body.appendChild(element); |
| 27 var childCount = document.body.children.length; |
| 28 assert_styles(element, {}); |
| 29 assert_equals(childCount, document.body.children.length, |
| 30 'assert_styles should not leave additional elements in the dom'); |
| 31 }, 'assert_styles reference_element'); |
| 32 |
| 33 test(function() { |
| 34 try { |
| 35 assert_styles(null, {}); |
| 36 assert_unreached(); |
| 37 } catch (e) { |
| 38 assert_equals(e.message, 'Expected Array, NodeList or Element but got null')
; |
| 39 } |
| 40 }, 'assert_styles invalid arguments'); |
| 41 |
| 42 test(function() { |
| 43 var element = document.createElement('span'); |
| 44 document.body.appendChild(element); |
| 45 |
| 46 try { |
| 47 assert_styles(element, {'left': 'abc123'}, "Description 1"); |
| 48 assert_unreached(); |
| 49 } catch (e) { |
| 50 assert_regexp_match(e.message, /^Tried to set the reference element\'s left
to "abc123" but neither/); |
| 51 } |
| 52 |
| 53 try { |
| 54 assert_styles(element, {'clip': 'rect(1px 2px 3px 4px)'}); |
| 55 assert_unreached(); |
| 56 } catch (e) { |
| 57 assert_regexp_match(e.message, /Actual - /); |
| 58 } |
| 59 }, 'assert_styles given invalid style'); |
| 60 |
| 61 test(function() { |
| 62 var element = document.createElement('span'); |
| 63 document.body.appendChild(element); |
| 64 element.style.left = '-100px'; |
| 65 try { |
| 66 assert_styles(element, {left: '100px'}); |
| 67 assert_unreached(); |
| 68 } catch(e) { |
| 69 } |
| 70 }, 'assert_styles should handle negative specified values'); |
| 71 |
| 72 test(function() { |
| 73 var element = document.createElement('span'); |
| 74 document.body.appendChild(element); |
| 75 element.style.left = '100px'; |
| 76 try { |
| 77 assert_styles(element, {left: '-100px'}); |
| 78 assert_unreached(); |
| 79 } catch(e) { |
| 80 } |
| 81 }, 'assert_styles should handle negative expected values'); |
| 82 |
| 83 test(function() { |
| 84 var element = document.createElement('span'); |
| 85 document.body.appendChild(element); |
| 86 element.style.left = '-100px'; |
| 87 assert_styles(element, {left: '-100px'}); |
| 88 }, 'assert_styles should handle negative values'); |
| 89 |
| 90 test(function() { |
| 91 var AssertionError = window.assert_styles_assertion_error; |
| 92 var assert = window.assert_styles_assert_important_in_array; |
| 93 |
| 94 assert('matrix(1%)', ['matrix(1%)']); |
| 95 assert('matrix(1%)', ['', 'matrix(1%)']); |
| 96 assert('matrix(1% 1px)', ['matrix(1%, 1px)']); |
| 97 assert('rect(1px 2px 3px 4px)', ['rect(1px 2px 3px 4px)']); |
| 98 assert('rect(1px 2px 3px 4px)', ['rect(1px, 2px, 3px, 4px)']); |
| 99 |
| 100 try { |
| 101 assert('', [], 'empty'); |
| 102 assert_unreached(); |
| 103 } catch(e) { |
| 104 assert_regexp_match(e.message, /^empty/); |
| 105 } |
| 106 |
| 107 try { |
| 108 assert('matrix(1%)', [], 'matrix 1% to empty'); |
| 109 assert_unreached(); |
| 110 } catch(e) { |
| 111 assert_regexp_match(e.message, /^matrix 1% to empty/); |
| 112 } |
| 113 |
| 114 try { |
| 115 assert('matrix(1%)', [''], 'matrix 1% to empty string'); |
| 116 assert_unreached(); |
| 117 } catch(e) { |
| 118 assert_regexp_match(e.message, /^matrix 1% to empty string\n/); |
| 119 } |
| 120 |
| 121 try { |
| 122 assert('matrix(1%)', ['matrix(1px)'], 'matrix 1% to matrix 1px'); |
| 123 assert_unreached(); |
| 124 } catch(e) { |
| 125 assert_regexp_match(e.message, /^matrix 1% to matrix 1px/); |
| 126 } |
| 127 |
| 128 /* Check that it only needs to match to 4 significant figures */ |
| 129 assert('1', [1.0001]); |
| 130 assert('1.0001', [1]); |
| 131 try { |
| 132 assert('1', [1.001]); |
| 133 assert_unreached(); |
| 134 } catch(e) { |
| 135 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 136 } |
| 137 |
| 138 assert('10', [10.001]); |
| 139 assert('10.001', [10]); |
| 140 try { |
| 141 assert('10', [10.01]); |
| 142 assert_unreached(); |
| 143 } catch(e) { |
| 144 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 145 } |
| 146 |
| 147 assert('2.0', [2.0001]); |
| 148 assert('2.0001', [2]); |
| 149 try { |
| 150 assert('2', [2.001]); |
| 151 assert_unreached(); |
| 152 } catch(e) { |
| 153 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 154 } |
| 155 |
| 156 assert('20.0', [20.001]); |
| 157 assert('20.001', [20]); |
| 158 try { |
| 159 assert('20.0', [20.01]); |
| 160 assert_unreached(); |
| 161 } catch(e) { |
| 162 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 163 } |
| 164 |
| 165 assert('40e2', [4000.1]); |
| 166 assert('40.001e2', [4000]); |
| 167 try { |
| 168 assert('40e2', [4001]); |
| 169 assert_unreached(); |
| 170 } catch(e) { |
| 171 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 172 } |
| 173 |
| 174 assert('40e+3', [40001]); |
| 175 assert('40.001e+3', [40000]); |
| 176 try { |
| 177 assert('40e+3', [40010]); |
| 178 assert_unreached(); |
| 179 } catch(e) { |
| 180 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 181 } |
| 182 |
| 183 assert('50e-4', [0.0050001]); |
| 184 assert('50.001e-4', [0.005]); |
| 185 try { |
| 186 assert('50e-4', [0.005001]); |
| 187 assert_unreached(); |
| 188 } catch(e) { |
| 189 assert_not_equals(e.message, "assert_unreached: Reached unreachable code"); |
| 190 } |
| 191 |
| 192 }, 'Checking assert_important_in_array works'); |
| 193 |
| 194 test(function() { |
| 195 var ei = window.assert_styles_extract_important; |
| 196 |
| 197 assert_array_equals(ei('1'), [1]); |
| 198 assert_array_equals(ei('10'), [10]); |
| 199 assert_array_equals(ei('2.0'), [2.0]); |
| 200 assert_array_equals(ei('20.0'), [20.0]); |
| 201 assert_array_equals(ei('40e2'), [4000.0]); |
| 202 assert_array_equals(ei('40e+3'), [40000.0]); |
| 203 assert_array_equals(ei('50e-4'), [0.005]); |
| 204 assert_array_equals(ei('60.6e-4'), [0.00606]); |
| 205 |
| 206 assert_array_equals(ei('+1'), [1]); |
| 207 assert_array_equals(ei('+10'), [10]); |
| 208 assert_array_equals(ei('+2.0'), [2.0]); |
| 209 assert_array_equals(ei('+20.0'), [20.0]); |
| 210 assert_array_equals(ei('+40e2'), [4000.0]); |
| 211 assert_array_equals(ei('+40e+3'), [40000.0]); |
| 212 assert_array_equals(ei('+50e-4'), [0.005]); |
| 213 assert_array_equals(ei('+60.6e-4'), [0.00606]); |
| 214 |
| 215 assert_array_equals(ei('-1'), [-1]); |
| 216 assert_array_equals(ei('-10'), [-10]); |
| 217 assert_array_equals(ei('-2.0'), [-2.0]); |
| 218 assert_array_equals(ei('-20.0'), [-20.0]); |
| 219 assert_array_equals(ei('-40e2'), [-4000]); |
| 220 assert_array_equals(ei('-50e-3'), [-0.05]); |
| 221 assert_array_equals(ei('-60.6e-4'), [-0.00606]); |
| 222 |
| 223 assert_array_equals(ei('matrix(1%'), ['matrix', 1, '%']); |
| 224 assert_array_equals(ei('matrix(10px'), ['matrix', 10, 'px']); |
| 225 assert_array_equals(ei('matrix(2.0em'), ['matrix', 2.0, 'em']); |
| 226 assert_array_equals(ei('matrix(20.0en'), ['matrix', 20.0, 'en']); |
| 227 assert_array_equals(ei('matrix(40e2ve'), ['matrix', 4000.0, 've']); |
| 228 assert_array_equals(ei('matrix(40e+3vw'), ['matrix', 40000.0, 'vw']); |
| 229 assert_array_equals(ei('matrix(50e-4%'), ['matrix', 0.005, '%']); |
| 230 |
| 231 assert_array_equals(ei('matrix('), ['matrix']); |
| 232 assert_array_equals(ei('blah'), ['blah']); |
| 233 assert_array_equals(ei('+'), []); |
| 234 assert_array_equals(ei('none'), ['none']); |
| 235 assert_array_equals(ei('----'), []); |
| 236 assert_array_equals(ei('-a'), ['a']); |
| 237 assert_array_equals(ei('b.j'), ['b', 'j']); |
| 238 |
| 239 assert_array_equals(ei('matrix(1, 0, 0, 1, 0, 0)'), |
| 240 ['matrix', 1, 0, 0, 1, 0, 0]); |
| 241 assert_array_equals(ei('matrix(1 0 0 1 0 0)'), |
| 242 ['matrix', 1, 0, 0, 1, 0, 0]); |
| 243 assert_array_equals(ei('matrix(0.9511, 0.309, -0.309, 0.9511, 0, 0)'), |
| 244 ['matrix', 0.9511, 0.309, -0.309, 0.9511, 0, 0]); |
| 245 |
| 246 }, 'Checking important parts are extracted successfully'); |
| 247 |
| 248 </script> |
OLD | NEW |