| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library compiler_test; | 5 library compiler_test; |
| 6 | 6 |
| 7 import 'dart:convert'; | 7 import 'dart:convert'; |
| 8 import 'package:test/test.dart'; | 8 import 'package:test/test.dart'; |
| 9 import 'package:csslib/parser.dart'; | 9 import 'package:csslib/parser.dart'; |
| 10 import 'package:csslib/src/messages.dart'; |
| 10 import 'package:csslib/visitor.dart'; | 11 import 'package:csslib/visitor.dart'; |
| 11 import 'testing.dart'; | 12 import 'testing.dart'; |
| 12 | 13 |
| 13 void testClass() { | 14 void testClass() { |
| 14 var errors = []; | 15 var errors = <Message>[]; |
| 15 var input = ".foobar {}"; | 16 var input = ".foobar {}"; |
| 16 var stylesheet = parseCss(input, errors: errors); | 17 var stylesheet = parseCss(input, errors: errors); |
| 17 | 18 |
| 18 expect(stylesheet != null, true); | 19 expect(stylesheet != null, true); |
| 19 expect(errors.isEmpty, true, reason: errors.toString()); | 20 expect(errors.isEmpty, true, reason: errors.toString()); |
| 20 | 21 |
| 21 walkTree(stylesheet); | 22 walkTree(stylesheet); |
| 22 | 23 |
| 23 expect(stylesheet.topLevels.length, 1); | 24 expect(stylesheet.topLevels.length, 1); |
| 24 | 25 |
| 25 expect(stylesheet.topLevels[0] is RuleSet, true); | 26 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 26 | 27 |
| 27 var ruleset = stylesheet.topLevels[0]; | 28 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 28 expect(ruleset.selectorGroup.selectors.length, 1); | 29 expect(ruleset.selectorGroup.selectors.length, 1); |
| 29 expect(ruleset.declarationGroup.declarations.length, 0); | 30 expect(ruleset.declarationGroup.declarations.length, 0); |
| 30 | 31 |
| 31 var selectorSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 32 var selectorSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 32 expect(selectorSeqs.length, 1); | 33 expect(selectorSeqs.length, 1); |
| 33 final simpSelector = selectorSeqs[0].simpleSelector; | 34 final simpSelector = selectorSeqs[0].simpleSelector; |
| 34 expect(simpSelector is ClassSelector, true); | 35 expect(simpSelector is ClassSelector, true); |
| 35 expect(selectorSeqs[0].isCombinatorNone, true); | 36 expect(selectorSeqs[0].isCombinatorNone, true); |
| 36 expect(simpSelector.name, "foobar"); | 37 expect(simpSelector.name, "foobar"); |
| 37 } | 38 } |
| 38 | 39 |
| 39 void testClass2() { | 40 void testClass2() { |
| 40 var errors = []; | 41 var errors = <Message>[]; |
| 41 var input = ".foobar .bar .no-story {}"; | 42 var input = ".foobar .bar .no-story {}"; |
| 42 var stylesheet = parseCss(input, errors: errors); | 43 var stylesheet = parseCss(input, errors: errors); |
| 43 | 44 |
| 44 expect(stylesheet != null, true); | 45 expect(stylesheet != null, true); |
| 45 expect(errors.isEmpty, true, reason: errors.toString()); | 46 expect(errors.isEmpty, true, reason: errors.toString()); |
| 46 | 47 |
| 47 walkTree(stylesheet); | 48 walkTree(stylesheet); |
| 48 | 49 |
| 49 expect(stylesheet.topLevels.length, 1); | 50 expect(stylesheet.topLevels.length, 1); |
| 50 | 51 |
| 51 expect(stylesheet.topLevels[0] is RuleSet, true); | 52 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 52 var ruleset = stylesheet.topLevels[0]; | 53 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 53 expect(ruleset.selectorGroup.selectors.length, 1); | 54 expect(ruleset.selectorGroup.selectors.length, 1); |
| 54 expect(ruleset.declarationGroup.declarations.length, 0); | 55 expect(ruleset.declarationGroup.declarations.length, 0); |
| 55 | 56 |
| 56 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 57 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 57 expect(simpleSeqs.length, 3); | 58 expect(simpleSeqs.length, 3); |
| 58 | 59 |
| 59 var simpSelector0 = simpleSeqs[0].simpleSelector; | 60 var simpSelector0 = simpleSeqs[0].simpleSelector; |
| 60 expect(simpSelector0 is ClassSelector, true); | 61 expect(simpSelector0 is ClassSelector, true); |
| 61 expect(simpleSeqs[0].isCombinatorNone, true); | 62 expect(simpleSeqs[0].isCombinatorNone, true); |
| 62 expect(simpSelector0.name, "foobar"); | 63 expect(simpSelector0.name, "foobar"); |
| 63 | 64 |
| 64 var simpSelector1 = simpleSeqs[1].simpleSelector; | 65 var simpSelector1 = simpleSeqs[1].simpleSelector; |
| 65 expect(simpSelector1 is ClassSelector, true); | 66 expect(simpSelector1 is ClassSelector, true); |
| 66 expect(simpleSeqs[1].isCombinatorDescendant, true); | 67 expect(simpleSeqs[1].isCombinatorDescendant, true); |
| 67 expect(simpSelector1.name, "bar"); | 68 expect(simpSelector1.name, "bar"); |
| 68 | 69 |
| 69 var simpSelector2 = simpleSeqs[2].simpleSelector; | 70 var simpSelector2 = simpleSeqs[2].simpleSelector; |
| 70 expect(simpSelector2 is ClassSelector, true); | 71 expect(simpSelector2 is ClassSelector, true); |
| 71 expect(simpleSeqs[2].isCombinatorDescendant, true); | 72 expect(simpleSeqs[2].isCombinatorDescendant, true); |
| 72 expect(simpSelector2.name, "no-story"); | 73 expect(simpSelector2.name, "no-story"); |
| 73 } | 74 } |
| 74 | 75 |
| 75 void testId() { | 76 void testId() { |
| 76 var errors = []; | 77 var errors = <Message>[]; |
| 77 var input = "#elemId {}"; | 78 var input = "#elemId {}"; |
| 78 var stylesheet = parseCss(input, errors: errors); | 79 var stylesheet = parseCss(input, errors: errors); |
| 79 | 80 |
| 80 expect(stylesheet != null, true); | 81 expect(stylesheet != null, true); |
| 81 expect(errors.isEmpty, true, reason: errors.toString()); | 82 expect(errors.isEmpty, true, reason: errors.toString()); |
| 82 | 83 |
| 83 walkTree(stylesheet); | 84 walkTree(stylesheet); |
| 84 | 85 |
| 85 expect(stylesheet.topLevels.length, 1); | 86 expect(stylesheet.topLevels.length, 1); |
| 86 | 87 |
| 87 expect(stylesheet.topLevels[0] is RuleSet, true); | 88 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 88 var ruleset = stylesheet.topLevels[0]; | 89 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 89 expect(ruleset.selectorGroup.selectors.length, 1); | 90 expect(ruleset.selectorGroup.selectors.length, 1); |
| 90 expect(ruleset.declarationGroup.declarations.length, 0); | 91 expect(ruleset.declarationGroup.declarations.length, 0); |
| 91 | 92 |
| 92 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 93 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 93 | 94 |
| 94 expect(simpleSeqs.length, 1); | 95 expect(simpleSeqs.length, 1); |
| 95 var simpSelector = simpleSeqs[0].simpleSelector; | 96 var simpSelector = simpleSeqs[0].simpleSelector; |
| 96 expect(simpSelector is IdSelector, true); | 97 expect(simpSelector is IdSelector, true); |
| 97 expect(simpleSeqs[0].isCombinatorNone, true); | 98 expect(simpleSeqs[0].isCombinatorNone, true); |
| 98 expect(simpSelector.name, "elemId"); | 99 expect(simpSelector.name, "elemId"); |
| 99 } | 100 } |
| 100 | 101 |
| 101 void testElement() { | 102 void testElement() { |
| 102 var errors = []; | 103 var errors = <Message>[]; |
| 103 var input = "div {}"; | 104 var input = "div {}"; |
| 104 var stylesheet = parseCss(input, errors: errors); | 105 var stylesheet = parseCss(input, errors: errors); |
| 105 | 106 |
| 106 expect(stylesheet != null, true); | 107 expect(stylesheet != null, true); |
| 107 expect(errors.isEmpty, true, reason: errors.toString()); | 108 expect(errors.isEmpty, true, reason: errors.toString()); |
| 108 | 109 |
| 109 walkTree(stylesheet); | 110 walkTree(stylesheet); |
| 110 | 111 |
| 111 expect(stylesheet.topLevels.length, 1); | 112 expect(stylesheet.topLevels.length, 1); |
| 112 | 113 |
| 113 expect(stylesheet.topLevels[0] is RuleSet, true); | 114 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 114 var ruleset = stylesheet.topLevels[0]; | 115 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 115 expect(ruleset.selectorGroup.selectors.length, 1); | 116 expect(ruleset.selectorGroup.selectors.length, 1); |
| 116 expect(ruleset.declarationGroup.declarations.length, 0); | 117 expect(ruleset.declarationGroup.declarations.length, 0); |
| 117 | 118 |
| 118 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 119 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 119 | 120 |
| 120 expect(simpleSeqs.length, 1); | 121 expect(simpleSeqs.length, 1); |
| 121 | 122 |
| 122 final simpSelector = simpleSeqs[0].simpleSelector; | 123 final simpSelector = simpleSeqs[0].simpleSelector; |
| 123 expect(simpSelector is ElementSelector, true); | 124 expect(simpSelector is ElementSelector, true); |
| 124 expect(simpleSeqs[0].isCombinatorNone, true); | 125 expect(simpleSeqs[0].isCombinatorNone, true); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 153 expect(simpleSeqs[1].isCombinatorDescendant, true); | 154 expect(simpleSeqs[1].isCombinatorDescendant, true); |
| 154 expect(simpSelector1.name, "div"); | 155 expect(simpSelector1.name, "div"); |
| 155 | 156 |
| 156 var simpSelector2 = simpleSeqs[2].simpleSelector; | 157 var simpSelector2 = simpleSeqs[2].simpleSelector; |
| 157 expect(simpSelector2 is ElementSelector, true); | 158 expect(simpSelector2 is ElementSelector, true); |
| 158 expect(simpleSeqs[2].isCombinatorDescendant, true); | 159 expect(simpleSeqs[2].isCombinatorDescendant, true); |
| 159 expect(simpSelector2.name, "span"); | 160 expect(simpSelector2.name, "span"); |
| 160 } | 161 } |
| 161 | 162 |
| 162 void testNamespace() { | 163 void testNamespace() { |
| 163 var errors = []; | 164 var errors = <Message>[]; |
| 164 var input = "ns1|div {}"; | 165 var input = "ns1|div {}"; |
| 165 var stylesheet = parseCss(input, errors: errors); | 166 var stylesheet = parseCss(input, errors: errors); |
| 166 | 167 |
| 167 expect(stylesheet != null, true); | 168 expect(stylesheet != null, true); |
| 168 expect(errors.isEmpty, true, reason: errors.toString()); | 169 expect(errors.isEmpty, true, reason: errors.toString()); |
| 169 | 170 |
| 170 walkTree(stylesheet); | 171 walkTree(stylesheet); |
| 171 | 172 |
| 172 expect(stylesheet.topLevels.length, 1); | 173 expect(stylesheet.topLevels.length, 1); |
| 173 | 174 |
| 174 expect(stylesheet.topLevels[0] is RuleSet, true); | 175 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 175 var ruleset = stylesheet.topLevels[0]; | 176 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 176 expect(ruleset.selectorGroup.selectors.length, 1); | 177 expect(ruleset.selectorGroup.selectors.length, 1); |
| 177 expect(ruleset.declarationGroup.declarations.length, 0); | 178 expect(ruleset.declarationGroup.declarations.length, 0); |
| 178 | 179 |
| 179 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 180 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 180 | 181 |
| 181 expect(simpleSeqs.length, 1); | 182 expect(simpleSeqs.length, 1); |
| 182 var simpSelector = simpleSeqs[0].simpleSelector; | 183 expect(simpleSeqs[0].simpleSelector is NamespaceSelector, true); |
| 183 expect(simpSelector is NamespaceSelector, true); | 184 var simpSelector = simpleSeqs[0].simpleSelector as NamespaceSelector; |
| 184 expect(simpleSeqs[0].isCombinatorNone, true); | 185 expect(simpleSeqs[0].isCombinatorNone, true); |
| 185 expect(simpSelector.isNamespaceWildcard, false); | 186 expect(simpSelector.isNamespaceWildcard, false); |
| 186 expect(simpSelector.namespace, "ns1"); | 187 expect(simpSelector.namespace, "ns1"); |
| 187 var elementSelector = simpSelector.nameAsSimpleSelector; | 188 var elementSelector = simpSelector.nameAsSimpleSelector; |
| 188 expect(elementSelector is ElementSelector, true); | 189 expect(elementSelector is ElementSelector, true); |
| 189 expect(elementSelector.isWildcard, false); | 190 expect(elementSelector.isWildcard, false); |
| 190 expect(elementSelector.name, "div"); | 191 expect(elementSelector.name, "div"); |
| 191 } | 192 } |
| 192 | 193 |
| 193 void testNamespace2() { | 194 void testNamespace2() { |
| 194 var errors = []; | 195 var errors = <Message>[]; |
| 195 var input = "ns1|div div ns2|span .foobar {}"; | 196 var input = "ns1|div div ns2|span .foobar {}"; |
| 196 var stylesheet = parseCss(input, errors: errors); | 197 var stylesheet = parseCss(input, errors: errors); |
| 197 | 198 |
| 198 expect(stylesheet != null, true); | 199 expect(stylesheet != null, true); |
| 199 expect(errors.isEmpty, true, reason: errors.toString()); | 200 expect(errors.isEmpty, true, reason: errors.toString()); |
| 200 | 201 |
| 201 walkTree(stylesheet); | 202 walkTree(stylesheet); |
| 202 | 203 |
| 203 expect(stylesheet.topLevels.length, 1); | 204 expect(stylesheet.topLevels.length, 1); |
| 204 | 205 |
| 205 expect(stylesheet.topLevels[0] is RuleSet, true); | 206 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 206 var ruleset = stylesheet.topLevels[0]; | 207 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 207 expect(ruleset.selectorGroup.selectors.length, 1); | 208 expect(ruleset.selectorGroup.selectors.length, 1); |
| 208 expect(ruleset.declarationGroup.declarations.length, 0); | 209 expect(ruleset.declarationGroup.declarations.length, 0); |
| 209 | 210 |
| 210 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 211 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 211 | 212 |
| 212 expect(simpleSeqs.length, 4); | 213 expect(simpleSeqs.length, 4); |
| 213 | 214 |
| 214 var simpSelector0 = simpleSeqs[0].simpleSelector; | 215 expect(simpleSeqs[0].simpleSelector is NamespaceSelector, true); |
| 215 expect(simpSelector0 is NamespaceSelector, true); | 216 var simpSelector0 = simpleSeqs[0].simpleSelector as NamespaceSelector; |
| 216 expect(simpleSeqs[0].isCombinatorNone, true); | 217 expect(simpleSeqs[0].isCombinatorNone, true); |
| 217 expect(simpSelector0.namespace, "ns1"); | 218 expect(simpSelector0.namespace, "ns1"); |
| 218 var elementSelector0 = simpSelector0.nameAsSimpleSelector; | 219 var elementSelector0 = simpSelector0.nameAsSimpleSelector; |
| 219 expect(elementSelector0 is ElementSelector, true); | 220 expect(elementSelector0 is ElementSelector, true); |
| 220 expect(elementSelector0.isWildcard, false); | 221 expect(elementSelector0.isWildcard, false); |
| 221 expect(elementSelector0.name, "div"); | 222 expect(elementSelector0.name, "div"); |
| 222 | 223 |
| 223 var simpSelector1 = simpleSeqs[1].simpleSelector; | 224 var simpSelector1 = simpleSeqs[1].simpleSelector; |
| 224 expect(simpSelector1 is ElementSelector, true); | 225 expect(simpSelector1 is ElementSelector, true); |
| 225 expect(simpleSeqs[1].isCombinatorDescendant, true); | 226 expect(simpleSeqs[1].isCombinatorDescendant, true); |
| 226 expect(simpSelector1.name, "div"); | 227 expect(simpSelector1.name, "div"); |
| 227 | 228 |
| 228 var simpSelector2 = simpleSeqs[2].simpleSelector; | 229 expect(simpleSeqs[2].simpleSelector is NamespaceSelector, true); |
| 229 expect(simpSelector2 is NamespaceSelector, true); | 230 var simpSelector2 = simpleSeqs[2].simpleSelector as NamespaceSelector; |
| 230 expect(simpleSeqs[2].isCombinatorDescendant, true); | 231 expect(simpleSeqs[2].isCombinatorDescendant, true); |
| 231 expect(simpSelector2.namespace, "ns2"); | 232 expect(simpSelector2.namespace, "ns2"); |
| 232 var elementSelector2 = simpSelector2.nameAsSimpleSelector; | 233 var elementSelector2 = simpSelector2.nameAsSimpleSelector; |
| 233 expect(elementSelector2 is ElementSelector, true); | 234 expect(elementSelector2 is ElementSelector, true); |
| 234 expect(elementSelector2.isWildcard, false); | 235 expect(elementSelector2.isWildcard, false); |
| 235 expect(elementSelector2.name, "span"); | 236 expect(elementSelector2.name, "span"); |
| 236 | 237 |
| 237 var simpSelector3 = simpleSeqs[3].simpleSelector; | 238 var simpSelector3 = simpleSeqs[3].simpleSelector; |
| 238 expect(simpSelector3 is ClassSelector, true); | 239 expect(simpSelector3 is ClassSelector, true); |
| 239 expect(simpleSeqs[3].isCombinatorDescendant, true); | 240 expect(simpleSeqs[3].isCombinatorDescendant, true); |
| 240 expect(simpSelector3.name, "foobar"); | 241 expect(simpSelector3.name, "foobar"); |
| 241 } | 242 } |
| 242 | 243 |
| 243 void testSelectorGroups() { | 244 void testSelectorGroups() { |
| 244 var errors = []; | 245 var errors = <Message>[]; |
| 245 var input = | 246 var input = |
| 246 "div, .foobar ,#elemId, .xyzzy .test, ns1|div div #elemId .foobar {}"; | 247 "div, .foobar ,#elemId, .xyzzy .test, ns1|div div #elemId .foobar {}"; |
| 247 var stylesheet = parseCss(input, errors: errors); | 248 var stylesheet = parseCss(input, errors: errors); |
| 248 | 249 |
| 249 expect(stylesheet != null, true); | 250 expect(stylesheet != null, true); |
| 250 expect(errors.isEmpty, true, reason: errors.toString()); | 251 expect(errors.isEmpty, true, reason: errors.toString()); |
| 251 | 252 |
| 252 walkTree(stylesheet); | 253 walkTree(stylesheet); |
| 253 | 254 |
| 254 expect(stylesheet.topLevels.length, 1); | 255 expect(stylesheet.topLevels.length, 1); |
| 255 | 256 |
| 256 expect(stylesheet.topLevels[0] is RuleSet, true); | 257 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 257 var ruleset = stylesheet.topLevels[0]; | 258 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 258 expect(ruleset.selectorGroup.selectors.length, 5); | 259 expect(ruleset.selectorGroup.selectors.length, 5); |
| 259 expect(ruleset.declarationGroup.declarations.length, 0); | 260 expect(ruleset.declarationGroup.declarations.length, 0); |
| 260 | 261 |
| 261 var groupSelector0 = ruleset.selectorGroup.selectors[0]; | 262 var groupSelector0 = ruleset.selectorGroup.selectors[0]; |
| 262 expect(groupSelector0.simpleSelectorSequences.length, 1); | 263 expect(groupSelector0.simpleSelectorSequences.length, 1); |
| 263 var selector0 = groupSelector0.simpleSelectorSequences[0]; | 264 var selector0 = groupSelector0.simpleSelectorSequences[0]; |
| 264 var simpleSelector0 = selector0.simpleSelector; | 265 var simpleSelector0 = selector0.simpleSelector; |
| 265 expect(simpleSelector0 is ElementSelector, true); | 266 expect(simpleSelector0 is ElementSelector, true); |
| 266 expect(selector0.isCombinatorNone, true); | 267 expect(selector0.isCombinatorNone, true); |
| 267 expect(simpleSelector0.name, "div"); | 268 expect(simpleSelector0.name, "div"); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 294 var selector31 = groupSelector3.simpleSelectorSequences[1]; | 295 var selector31 = groupSelector3.simpleSelectorSequences[1]; |
| 295 var simpleSelector31 = selector31.simpleSelector; | 296 var simpleSelector31 = selector31.simpleSelector; |
| 296 expect(simpleSelector31 is ClassSelector, true); | 297 expect(simpleSelector31 is ClassSelector, true); |
| 297 expect(selector31.isCombinatorDescendant, true); | 298 expect(selector31.isCombinatorDescendant, true); |
| 298 expect(simpleSelector31.name, "test"); | 299 expect(simpleSelector31.name, "test"); |
| 299 | 300 |
| 300 var groupSelector4 = ruleset.selectorGroup.selectors[4]; | 301 var groupSelector4 = ruleset.selectorGroup.selectors[4]; |
| 301 expect(groupSelector4.simpleSelectorSequences.length, 4); | 302 expect(groupSelector4.simpleSelectorSequences.length, 4); |
| 302 | 303 |
| 303 var selector40 = groupSelector4.simpleSelectorSequences[0]; | 304 var selector40 = groupSelector4.simpleSelectorSequences[0]; |
| 304 var simpleSelector40 = selector40.simpleSelector; | 305 expect(selector40.simpleSelector is NamespaceSelector, true); |
| 305 expect(simpleSelector40 is NamespaceSelector, true); | 306 var simpleSelector40 = selector40.simpleSelector as NamespaceSelector; |
| 306 expect(selector40.isCombinatorNone, true); | 307 expect(selector40.isCombinatorNone, true); |
| 307 expect(simpleSelector40.namespace, "ns1"); | 308 expect(simpleSelector40.namespace, "ns1"); |
| 308 var elementSelector = simpleSelector40.nameAsSimpleSelector; | 309 var elementSelector = simpleSelector40.nameAsSimpleSelector; |
| 309 expect(elementSelector is ElementSelector, true); | 310 expect(elementSelector is ElementSelector, true); |
| 310 expect(elementSelector.isWildcard, false); | 311 expect(elementSelector.isWildcard, false); |
| 311 expect(elementSelector.name, "div"); | 312 expect(elementSelector.name, "div"); |
| 312 | 313 |
| 313 var selector41 = groupSelector4.simpleSelectorSequences[1]; | 314 var selector41 = groupSelector4.simpleSelectorSequences[1]; |
| 314 var simpleSelector41 = selector41.simpleSelector; | 315 var simpleSelector41 = selector41.simpleSelector; |
| 315 expect(simpleSelector41 is ElementSelector, true); | 316 expect(simpleSelector41 is ElementSelector, true); |
| 316 expect(selector41.isCombinatorDescendant, true); | 317 expect(selector41.isCombinatorDescendant, true); |
| 317 expect(simpleSelector41.name, "div"); | 318 expect(simpleSelector41.name, "div"); |
| 318 | 319 |
| 319 var selector42 = groupSelector4.simpleSelectorSequences[2]; | 320 var selector42 = groupSelector4.simpleSelectorSequences[2]; |
| 320 var simpleSelector42 = selector42.simpleSelector; | 321 var simpleSelector42 = selector42.simpleSelector; |
| 321 expect(simpleSelector42 is IdSelector, true); | 322 expect(simpleSelector42 is IdSelector, true); |
| 322 expect(selector42.isCombinatorDescendant, true); | 323 expect(selector42.isCombinatorDescendant, true); |
| 323 expect(simpleSelector42.name, "elemId"); | 324 expect(simpleSelector42.name, "elemId"); |
| 324 | 325 |
| 325 var selector43 = groupSelector4.simpleSelectorSequences[3]; | 326 var selector43 = groupSelector4.simpleSelectorSequences[3]; |
| 326 var simpleSelector43 = selector43.simpleSelector; | 327 var simpleSelector43 = selector43.simpleSelector; |
| 327 expect(selector43.isCombinatorDescendant, true); | 328 expect(selector43.isCombinatorDescendant, true); |
| 328 expect(simpleSelector43.name, "foobar"); | 329 expect(simpleSelector43.name, "foobar"); |
| 329 } | 330 } |
| 330 | 331 |
| 331 void testCombinator() { | 332 void testCombinator() { |
| 332 var errors = []; | 333 var errors = <Message>[]; |
| 333 var input = ".foobar > .bar + .no-story ~ myNs|div #elemId {}"; | 334 var input = ".foobar > .bar + .no-story ~ myNs|div #elemId {}"; |
| 334 var stylesheet = parseCss(input, errors: errors); | 335 var stylesheet = parseCss(input, errors: errors); |
| 335 | 336 |
| 336 expect(stylesheet != null, true); | 337 expect(stylesheet != null, true); |
| 337 expect(errors.isEmpty, true, reason: errors.toString()); | 338 expect(errors.isEmpty, true, reason: errors.toString()); |
| 338 | 339 |
| 339 walkTree(stylesheet); | 340 walkTree(stylesheet); |
| 340 | 341 |
| 341 expect(stylesheet.topLevels.length, 1); | 342 expect(stylesheet.topLevels.length, 1); |
| 342 | 343 |
| 343 expect(stylesheet.topLevels[0] is RuleSet, true); | 344 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 344 var ruleset = stylesheet.topLevels[0]; | 345 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 345 expect(ruleset.selectorGroup.selectors.length, 1); | 346 expect(ruleset.selectorGroup.selectors.length, 1); |
| 346 expect(ruleset.declarationGroup.declarations.length, 0); | 347 expect(ruleset.declarationGroup.declarations.length, 0); |
| 347 | 348 |
| 348 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 349 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 349 | 350 |
| 350 expect(simpleSeqs.length, 5); | 351 expect(simpleSeqs.length, 5); |
| 351 | 352 |
| 352 var selector0 = simpleSeqs[0]; | 353 var selector0 = simpleSeqs[0]; |
| 353 var simpleSelector0 = selector0.simpleSelector; | 354 var simpleSelector0 = selector0.simpleSelector; |
| 354 expect(simpleSelector0 is ClassSelector, true); | 355 expect(simpleSelector0 is ClassSelector, true); |
| 355 expect(selector0.isCombinatorNone, true); | 356 expect(selector0.isCombinatorNone, true); |
| 356 expect(simpleSelector0.name, "foobar"); | 357 expect(simpleSelector0.name, "foobar"); |
| 357 | 358 |
| 358 var selector1 = simpleSeqs[1]; | 359 var selector1 = simpleSeqs[1]; |
| 359 var simpleSelector1 = selector1.simpleSelector; | 360 var simpleSelector1 = selector1.simpleSelector; |
| 360 expect(simpleSelector1 is ClassSelector, true); | 361 expect(simpleSelector1 is ClassSelector, true); |
| 361 expect(selector1.isCombinatorGreater, true); | 362 expect(selector1.isCombinatorGreater, true); |
| 362 expect(simpleSelector1.name, "bar"); | 363 expect(simpleSelector1.name, "bar"); |
| 363 | 364 |
| 364 var selector2 = simpleSeqs[2]; | 365 var selector2 = simpleSeqs[2]; |
| 365 var simpleSelector2 = selector2.simpleSelector; | 366 var simpleSelector2 = selector2.simpleSelector; |
| 366 expect(simpleSelector2 is ClassSelector, true); | 367 expect(simpleSelector2 is ClassSelector, true); |
| 367 expect(selector2.isCombinatorPlus, true); | 368 expect(selector2.isCombinatorPlus, true); |
| 368 expect(simpleSelector2.name, "no-story"); | 369 expect(simpleSelector2.name, "no-story"); |
| 369 | 370 |
| 370 var selector3 = simpleSeqs[3]; | 371 var selector3 = simpleSeqs[3]; |
| 371 var simpleSelector3 = selector3.simpleSelector; | 372 expect(selector3.simpleSelector is NamespaceSelector, true); |
| 372 expect(simpleSelector3 is NamespaceSelector, true); | 373 var simpleSelector3 = selector3.simpleSelector as NamespaceSelector; |
| 373 expect(selector3.isCombinatorTilde, true); | 374 expect(selector3.isCombinatorTilde, true); |
| 374 expect(simpleSelector3.namespace, "myNs"); | 375 expect(simpleSelector3.namespace, "myNs"); |
| 375 var elementSelector = simpleSelector3.nameAsSimpleSelector; | 376 var elementSelector = simpleSelector3.nameAsSimpleSelector; |
| 376 expect(elementSelector is ElementSelector, true); | 377 expect(elementSelector is ElementSelector, true); |
| 377 expect(elementSelector.isWildcard, false); | 378 expect(elementSelector.isWildcard, false); |
| 378 expect(elementSelector.name, "div"); | 379 expect(elementSelector.name, "div"); |
| 379 | 380 |
| 380 var selector4 = simpleSeqs[4]; | 381 var selector4 = simpleSeqs[4]; |
| 381 var simpleSelector4 = selector4.simpleSelector; | 382 var simpleSelector4 = selector4.simpleSelector; |
| 382 expect(simpleSelector4 is IdSelector, true); | 383 expect(simpleSelector4 is IdSelector, true); |
| 383 expect(selector4.isCombinatorDescendant, true); | 384 expect(selector4.isCombinatorDescendant, true); |
| 384 expect(simpleSelector4.name, "elemId"); | 385 expect(simpleSelector4.name, "elemId"); |
| 385 } | 386 } |
| 386 | 387 |
| 387 void testWildcard() { | 388 void testWildcard() { |
| 388 var errors = []; | 389 var errors = <Message>[]; |
| 389 var input = "* {}"; | 390 var input = "* {}"; |
| 390 var stylesheet = parseCss(input, errors: errors); | 391 var stylesheet = parseCss(input, errors: errors); |
| 391 | 392 |
| 392 expect(stylesheet != null, true); | 393 expect(stylesheet != null, true); |
| 393 expect(errors.isEmpty, true, reason: errors.toString()); | 394 expect(errors.isEmpty, true, reason: errors.toString()); |
| 394 | 395 |
| 395 walkTree(stylesheet); | 396 walkTree(stylesheet); |
| 396 | 397 |
| 397 expect(stylesheet.topLevels.length, 1); | 398 expect(stylesheet.topLevels.length, 1); |
| 398 | 399 |
| 399 expect(stylesheet.topLevels[0] is RuleSet, true); | 400 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 400 var ruleset = stylesheet.topLevels[0]; | 401 var ruleset = stylesheet.topLevels[0] as RuleSet; |
| 401 expect(ruleset.selectorGroup.selectors.length, 1); | 402 expect(ruleset.selectorGroup.selectors.length, 1); |
| 402 expect(ruleset.declarationGroup.declarations.length, 0); | 403 expect(ruleset.declarationGroup.declarations.length, 0); |
| 403 | 404 |
| 404 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 405 var simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 405 | 406 |
| 406 expect(simpleSeqs.length, 1); | 407 expect(simpleSeqs.length, 1); |
| 407 var simpSelector = simpleSeqs[0].simpleSelector; | 408 var simpSelector = simpleSeqs[0].simpleSelector; |
| 408 expect(simpSelector is ElementSelector, true); | 409 expect(simpSelector is ElementSelector, true); |
| 409 expect(simpleSeqs[0].isCombinatorNone, true); | 410 expect(simpleSeqs[0].isCombinatorNone, true); |
| 410 expect(simpSelector.isWildcard, true); | 411 expect(simpSelector.isWildcard, true); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 422 | 423 |
| 423 expect(stylesheet.topLevels[0] is RuleSet, true); | 424 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 424 ruleset = stylesheet.topLevels[0]; | 425 ruleset = stylesheet.topLevels[0]; |
| 425 expect(ruleset.selectorGroup.selectors.length, 1); | 426 expect(ruleset.selectorGroup.selectors.length, 1); |
| 426 expect(ruleset.declarationGroup.declarations.length, 0); | 427 expect(ruleset.declarationGroup.declarations.length, 0); |
| 427 | 428 |
| 428 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 429 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 429 | 430 |
| 430 expect(simpleSeqs.length, 2); | 431 expect(simpleSeqs.length, 2); |
| 431 | 432 |
| 432 var selector0 = simpleSeqs[0]; | 433 { |
| 433 var simpleSelector0 = selector0.simpleSelector; | 434 var selector0 = simpleSeqs[0]; |
| 434 expect(simpleSelector0 is ElementSelector, true); | 435 var simpleSelector0 = selector0.simpleSelector; |
| 435 expect(selector0.isCombinatorNone, true); | 436 expect(simpleSelector0 is ElementSelector, true); |
| 436 expect(simpleSelector0.isWildcard, true); | 437 expect(selector0.isCombinatorNone, true); |
| 437 expect(simpleSelector0.name, "*"); | 438 expect(simpleSelector0.isWildcard, true); |
| 439 expect(simpleSelector0.name, "*"); |
| 440 } |
| 438 | 441 |
| 439 var selector1 = simpleSeqs[1]; | 442 var selector1 = simpleSeqs[1]; |
| 440 var simpleSelector1 = selector1.simpleSelector; | 443 var simpleSelector1 = selector1.simpleSelector; |
| 441 expect(simpleSelector1 is ClassSelector, true); | 444 expect(simpleSelector1 is ClassSelector, true); |
| 442 expect(selector1.isCombinatorNone, true); | 445 expect(selector1.isCombinatorNone, true); |
| 443 expect(simpleSelector1.name, "foobar"); | 446 expect(simpleSelector1.name, "foobar"); |
| 444 | 447 |
| 445 input = "myNs|*.foobar {}"; | 448 input = "myNs|*.foobar {}"; |
| 446 stylesheet = parseCss(input, errors: errors..clear()); | 449 stylesheet = parseCss(input, errors: errors..clear()); |
| 447 | 450 |
| 448 expect(stylesheet != null, true); | 451 expect(stylesheet != null, true); |
| 449 expect(errors.isEmpty, true, reason: errors.toString()); | 452 expect(errors.isEmpty, true, reason: errors.toString()); |
| 450 | 453 |
| 451 walkTree(stylesheet); | 454 walkTree(stylesheet); |
| 452 | 455 |
| 453 expect(stylesheet.topLevels.length, 1); | 456 expect(stylesheet.topLevels.length, 1); |
| 454 | 457 |
| 455 expect(stylesheet.topLevels[0] is RuleSet, true); | 458 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 456 ruleset = stylesheet.topLevels[0]; | 459 ruleset = stylesheet.topLevels[0]; |
| 457 expect(ruleset.selectorGroup.selectors.length, 1); | 460 expect(ruleset.selectorGroup.selectors.length, 1); |
| 458 expect(ruleset.declarationGroup.declarations.length, 0); | 461 expect(ruleset.declarationGroup.declarations.length, 0); |
| 459 | 462 |
| 460 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 463 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 461 | 464 |
| 462 expect(simpleSeqs.length, 2); | 465 expect(simpleSeqs.length, 2); |
| 463 | 466 |
| 464 selector0 = simpleSeqs[0]; | 467 { |
| 465 simpleSelector0 = selector0.simpleSelector; | 468 var selector0 = simpleSeqs[0]; |
| 466 expect(simpleSelector0 is NamespaceSelector, true); | 469 expect(selector0.simpleSelector is NamespaceSelector, true); |
| 467 expect(selector0.isCombinatorNone, true); | 470 var simpleSelector0 = selector0.simpleSelector as NamespaceSelector; |
| 468 expect(simpleSelector0.isNamespaceWildcard, false); | 471 expect(selector0.isCombinatorNone, true); |
| 469 var elementSelector = simpleSelector0.nameAsSimpleSelector; | 472 expect(simpleSelector0.isNamespaceWildcard, false); |
| 470 expect("myNs", simpleSelector0.namespace); | 473 var elementSelector = simpleSelector0.nameAsSimpleSelector; |
| 471 expect(elementSelector.isWildcard, true); | 474 expect("myNs", simpleSelector0.namespace); |
| 472 expect("*", elementSelector.name); | 475 expect(elementSelector.isWildcard, true); |
| 476 expect("*", elementSelector.name); |
| 477 } |
| 473 | 478 |
| 474 selector1 = simpleSeqs[1]; | 479 selector1 = simpleSeqs[1]; |
| 475 simpleSelector1 = selector1.simpleSelector; | 480 simpleSelector1 = selector1.simpleSelector; |
| 476 expect(simpleSelector1 is ClassSelector, true); | 481 expect(simpleSelector1 is ClassSelector, true); |
| 477 expect(selector1.isCombinatorNone, true); | 482 expect(selector1.isCombinatorNone, true); |
| 478 expect("foobar", simpleSelector1.name); | 483 expect("foobar", simpleSelector1.name); |
| 479 | 484 |
| 480 input = "*|*.foobar {}"; | 485 input = "*|*.foobar {}"; |
| 481 stylesheet = parseCss(input, errors: errors..clear()); | 486 stylesheet = parseCss(input, errors: errors..clear()); |
| 482 | 487 |
| 483 expect(stylesheet != null, true); | 488 expect(stylesheet != null, true); |
| 484 expect(errors.isEmpty, true, reason: errors.toString()); | 489 expect(errors.isEmpty, true, reason: errors.toString()); |
| 485 | 490 |
| 486 walkTree(stylesheet); | 491 walkTree(stylesheet); |
| 487 | 492 |
| 488 expect(stylesheet.topLevels[0] is RuleSet, true); | 493 expect(stylesheet.topLevels[0] is RuleSet, true); |
| 489 ruleset = stylesheet.topLevels[0]; | 494 ruleset = stylesheet.topLevels[0]; |
| 490 expect(ruleset.selectorGroup.selectors.length, 1); | 495 expect(ruleset.selectorGroup.selectors.length, 1); |
| 491 expect(ruleset.declarationGroup.declarations.length, 0); | 496 expect(ruleset.declarationGroup.declarations.length, 0); |
| 492 | 497 |
| 493 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; | 498 simpleSeqs = ruleset.selectorGroup.selectors[0].simpleSelectorSequences; |
| 494 | 499 |
| 495 expect(simpleSeqs.length, 2); | 500 expect(simpleSeqs.length, 2); |
| 496 | 501 |
| 497 selector0 = simpleSeqs[0]; | 502 { |
| 498 simpleSelector0 = selector0.simpleSelector; | 503 var selector0 = simpleSeqs[0]; |
| 499 expect(simpleSelector0 is NamespaceSelector, true); | 504 expect(selector0.simpleSelector is NamespaceSelector, true); |
| 500 expect(selector0.isCombinatorNone, true); | 505 var simpleSelector0 = selector0.simpleSelector as NamespaceSelector; |
| 501 expect(simpleSelector0.isNamespaceWildcard, true); | 506 expect(selector0.isCombinatorNone, true); |
| 502 expect("*", simpleSelector0.namespace); | 507 expect(simpleSelector0.isNamespaceWildcard, true); |
| 503 elementSelector = simpleSelector0.nameAsSimpleSelector; | 508 expect("*", simpleSelector0.namespace); |
| 504 expect(elementSelector.isWildcard, true); | 509 var elementSelector = simpleSelector0.nameAsSimpleSelector; |
| 505 expect("*", elementSelector.name); | 510 expect(elementSelector.isWildcard, true); |
| 511 expect("*", elementSelector.name); |
| 512 } |
| 506 | 513 |
| 507 selector1 = simpleSeqs[1]; | 514 selector1 = simpleSeqs[1]; |
| 508 simpleSelector1 = selector1.simpleSelector; | 515 simpleSelector1 = selector1.simpleSelector; |
| 509 expect(simpleSelector1 is ClassSelector, true); | 516 expect(simpleSelector1 is ClassSelector, true); |
| 510 expect(selector1.isCombinatorNone, true); | 517 expect(selector1.isCombinatorNone, true); |
| 511 expect("foobar", simpleSelector1.name); | 518 expect("foobar", simpleSelector1.name); |
| 512 } | 519 } |
| 513 | 520 |
| 514 /** Test List<int> as input to parser. */ | 521 /** Test List<int> as input to parser. */ |
| 515 void testArrayOfChars() { | 522 void testArrayOfChars() { |
| 516 var errors = []; | 523 var errors = <Message>[]; |
| 517 var input = '<![CDATA[.foo { ' | 524 var input = '<![CDATA[.foo { ' |
| 518 'color: red; left: 20px; top: 20px; width: 100px; height:200px' | 525 'color: red; left: 20px; top: 20px; width: 100px; height:200px' |
| 519 '}' | 526 '}' |
| 520 '#div {' | 527 '#div {' |
| 521 'color : #00F578; border-color: #878787;' | 528 'color : #00F578; border-color: #878787;' |
| 522 '}]]>'; | 529 '}]]>'; |
| 523 | 530 |
| 524 var stylesheet = parse(UTF8.encode(input), errors: errors); | 531 var stylesheet = parse(UTF8.encode(input), errors: errors); |
| 525 | 532 |
| 526 expect(stylesheet != null, true); | 533 expect(stylesheet != null, true); |
| 527 expect(errors.isEmpty, true, reason: errors.toString()); | 534 expect(errors.isEmpty, true, reason: errors.toString()); |
| 528 | 535 |
| 529 expect(prettyPrint(stylesheet), r''' | 536 expect(prettyPrint(stylesheet), r''' |
| 530 .foo { | 537 .foo { |
| 531 color: #f00; | 538 color: #f00; |
| 532 left: 20px; | 539 left: 20px; |
| 533 top: 20px; | 540 top: 20px; |
| 534 width: 100px; | 541 width: 100px; |
| 535 height: 200px; | 542 height: 200px; |
| 536 } | 543 } |
| 537 #div { | 544 #div { |
| 538 color: #00F578; | 545 color: #00F578; |
| 539 border-color: #878787; | 546 border-color: #878787; |
| 540 }'''); | 547 }'''); |
| 541 } | 548 } |
| 542 | 549 |
| 543 void testPseudo() { | 550 void testPseudo() { |
| 544 var errors = []; | 551 var errors = <Message>[]; |
| 545 | 552 |
| 546 final input = r''' | 553 final input = r''' |
| 547 html:lang(fr-ca) { quotes: '" ' ' "' } | 554 html:lang(fr-ca) { quotes: '" ' ' "' } |
| 548 zoom: { } | 555 zoom: { } |
| 549 | 556 |
| 550 a:link { color: red } | 557 a:link { color: red } |
| 551 :link { color: blue } | 558 :link { color: blue } |
| 552 | 559 |
| 553 a:focus { background: yellow } | 560 a:focus { background: yellow } |
| 554 a:focus:hover { background: white } | 561 a:focus:hover { background: white } |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 | 643 |
| 637 void testAttribute() { | 644 void testAttribute() { |
| 638 // TODO(terry): Implement | 645 // TODO(terry): Implement |
| 639 } | 646 } |
| 640 | 647 |
| 641 void testNegation() { | 648 void testNegation() { |
| 642 // TODO(terry): Implement | 649 // TODO(terry): Implement |
| 643 } | 650 } |
| 644 | 651 |
| 645 void testHost() { | 652 void testHost() { |
| 646 var errors = []; | 653 var errors = <Message>[]; |
| 647 var input = '@host { ' | 654 var input = '@host { ' |
| 648 ':scope {' | 655 ':scope {' |
| 649 'white-space: nowrap;' | 656 'white-space: nowrap;' |
| 650 'overflow-style: marquee-line;' | 657 'overflow-style: marquee-line;' |
| 651 'overflow-x: marquee;' | 658 'overflow-x: marquee;' |
| 652 '}' | 659 '}' |
| 653 '* { color: red; }' | 660 '* { color: red; }' |
| 654 '*:hover { font-weight: bold; }' | 661 '*:hover { font-weight: bold; }' |
| 655 ':nth-child(odd) { color: blue; }' | 662 ':nth-child(odd) { color: blue; }' |
| 656 '}'; | 663 '}'; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 671 *:hover { | 678 *:hover { |
| 672 font-weight: bold; | 679 font-weight: bold; |
| 673 } | 680 } |
| 674 :nth-child(odd) { | 681 :nth-child(odd) { |
| 675 color: #00f; | 682 color: #00f; |
| 676 } | 683 } |
| 677 }'''); | 684 }'''); |
| 678 } | 685 } |
| 679 | 686 |
| 680 void testStringEscape() { | 687 void testStringEscape() { |
| 681 var errors = []; | 688 var errors = <Message>[]; |
| 682 var input = r'''a { foo: '{"text" : "a\\\""}' }'''; | 689 var input = r'''a { foo: '{"text" : "a\\\""}' }'''; |
| 683 var stylesheet = parseCss(input, errors: errors, opts: simpleOptions); | 690 var stylesheet = parseCss(input, errors: errors, opts: simpleOptions); |
| 684 expect(stylesheet != null, true); | 691 expect(stylesheet != null, true); |
| 685 expect(errors.isEmpty, true, reason: errors.toString()); | 692 expect(errors.isEmpty, true, reason: errors.toString()); |
| 686 | 693 |
| 687 expect(prettyPrint(stylesheet), r''' | 694 expect(prettyPrint(stylesheet), r''' |
| 688 a { | 695 a { |
| 689 foo: '{"text" : "a\\\""}'; | 696 foo: '{"text" : "a\\\""}'; |
| 690 }'''); | 697 }'''); |
| 691 } | 698 } |
| 692 | 699 |
| 693 // TODO(terry): Move to emitter_test.dart when real emitter exist. | 700 // TODO(terry): Move to emitter_test.dart when real emitter exist. |
| 694 void testEmitter() { | 701 void testEmitter() { |
| 695 var errors = []; | 702 var errors = <Message>[]; |
| 696 var input = '.foo { ' | 703 var input = '.foo { ' |
| 697 'color: red; left: 20px; top: 20px; width: 100px; height:200px' | 704 'color: red; left: 20px; top: 20px; width: 100px; height:200px' |
| 698 '}' | 705 '}' |
| 699 '#div {' | 706 '#div {' |
| 700 'color : #00F578; border-color: #878787;' | 707 'color : #00F578; border-color: #878787;' |
| 701 '}'; | 708 '}'; |
| 702 var stylesheet = parseCss(input, errors: errors); | 709 var stylesheet = parseCss(input, errors: errors); |
| 703 | 710 |
| 704 expect(stylesheet != null, true); | 711 expect(stylesheet != null, true); |
| 705 expect(errors.isEmpty, true, reason: errors.toString()); | 712 expect(errors.isEmpty, true, reason: errors.toString()); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 731 test('Combinator', testCombinator); | 738 test('Combinator', testCombinator); |
| 732 test('Wildcards', testWildcard); | 739 test('Wildcards', testWildcard); |
| 733 test('Pseudo', testPseudo); | 740 test('Pseudo', testPseudo); |
| 734 test('Attributes', testAttribute); | 741 test('Attributes', testAttribute); |
| 735 test('Negation', testNegation); | 742 test('Negation', testNegation); |
| 736 test('@host', testHost); | 743 test('@host', testHost); |
| 737 test('stringEscape', testStringEscape); | 744 test('stringEscape', testStringEscape); |
| 738 test('Parse List<int> as input', testArrayOfChars); | 745 test('Parse List<int> as input', testArrayOfChars); |
| 739 test('Simple Emitter', testEmitter); | 746 test('Simple Emitter', testEmitter); |
| 740 } | 747 } |
| OLD | NEW |