| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 polymer.test.build.import_inliner_test; | 5 library polymer.test.build.import_inliner_test; |
| 6 | 6 |
| 7 import 'dart:convert' show JSON; | 7 import 'dart:convert' show JSON; |
| 8 import 'package:polymer/src/build/common.dart'; | 8 import 'package:polymer/src/build/common.dart'; |
| 9 import 'package:polymer/src/build/import_inliner.dart'; | 9 import 'package:polymer/src/build/import_inliner.dart'; |
| 10 import 'package:unittest/compact_vm_config.dart'; | 10 import 'package:unittest/compact_vm_config.dart'; |
| 11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 12 import 'common.dart'; | 12 import 'common.dart'; |
| 13 | 13 |
| 14 part 'code_extractor.dart'; | 14 part 'code_extractor.dart'; |
| 15 | 15 |
| 16 final phases = [[new ImportInliner(new TransformOptions())]]; | 16 final phases = [[new ImportInliner(new TransformOptions())]]; |
| 17 | 17 |
| 18 void main() { | 18 void main() { |
| 19 useCompactVMConfiguration(); | 19 useCompactVMConfiguration(); |
| 20 group('rel=import', importTests); | 20 group('rel=import', importTests); |
| 21 group('rel=stylesheet', stylesheetTests); | 21 group('rel=stylesheet', stylesheetTests); |
| 22 group('script type=dart', codeExtractorTests); | 22 group('script type=dart', codeExtractorTests); |
| 23 } | 23 } |
| 24 | 24 |
| 25 void importTests() { | 25 void importTests() { |
| 26 testPhases('no changes', phases, { | 26 testPhases('no changes', phases, { |
| 27 'a|web/test.html': '<!DOCTYPE html><html></html>', | 27 'a|web/test.html': '<!DOCTYPE html><html></html>', |
| 28 }, { | 28 }, { |
| 29 'a|web/test.html': '<!DOCTYPE html><html></html>', | 29 'a|web/test.html': '<!DOCTYPE html><html></html>', |
| 30 'a|web/test.html.scriptUrls': '[]', | 30 'a|web/test.html._data': EMPTY_DATA, |
| 31 }); | 31 }); |
| 32 | 32 |
| 33 testPhases('empty import', phases, { | 33 testPhases('empty import', phases, { |
| 34 'a|web/test.html': | 34 'a|web/test.html': |
| 35 '<!DOCTYPE html><html><head>' | 35 '<!DOCTYPE html><html><head>' |
| 36 '<link rel="import" href="">' // empty href | 36 '<link rel="import" href="">' // empty href |
| 37 '</head></html>', | 37 '</head></html>', |
| 38 'a|web/test2.html': | 38 'a|web/test2.html': |
| 39 '<!DOCTYPE html><html><head>' | 39 '<!DOCTYPE html><html><head>' |
| 40 '<link rel="import">' // no href | 40 '<link rel="import">' // no href |
| 41 '</head></html>', | 41 '</head></html>', |
| 42 }, { | 42 }, { |
| 43 'a|web/test.html': | 43 'a|web/test.html': |
| 44 '<!DOCTYPE html><html><head>' | 44 '<!DOCTYPE html><html><head>' |
| 45 '</head><body></body></html>', | 45 '</head><body></body></html>', |
| 46 'a|web/test.html.scriptUrls': '[]', | 46 'a|web/test.html._data': EMPTY_DATA, |
| 47 'a|web/test2.html': | 47 'a|web/test2.html': |
| 48 '<!DOCTYPE html><html><head>' | 48 '<!DOCTYPE html><html><head>' |
| 49 '</head><body></body></html>', | 49 '</head><body></body></html>', |
| 50 'a|web/test2.html.scriptUrls': '[]', | 50 'a|web/test2.html._data': EMPTY_DATA, |
| 51 }); | 51 }); |
| 52 | 52 |
| 53 testPhases('shallow, no elements', phases, { | 53 testPhases('shallow, no elements', phases, { |
| 54 'a|web/test.html': | 54 'a|web/test.html': |
| 55 '<!DOCTYPE html><html><head>' | 55 '<!DOCTYPE html><html><head>' |
| 56 '<link rel="import" href="test2.html">' | 56 '<link rel="import" href="test2.html">' |
| 57 '</head></html>', | 57 '</head></html>', |
| 58 'a|web/test2.html': | 58 'a|web/test2.html': |
| 59 '<!DOCTYPE html><html><head>' | 59 '<!DOCTYPE html><html><head>' |
| 60 '</head></html>', | 60 '</head></html>', |
| 61 }, { | 61 }, { |
| 62 'a|web/test.html': | 62 'a|web/test.html': |
| 63 '<!DOCTYPE html><html><head>' | 63 '<!DOCTYPE html><html><head>' |
| 64 '</head><body></body></html>', | 64 '</head><body></body></html>', |
| 65 'a|web/test.html.scriptUrls': '[]', | 65 'a|web/test.html._data': EMPTY_DATA, |
| 66 'a|web/test2.html': | 66 'a|web/test2.html': |
| 67 '<!DOCTYPE html><html><head>' | 67 '<!DOCTYPE html><html><head>' |
| 68 '</head></html>', | 68 '</head></html>', |
| 69 'a|web/test2.html.scriptUrls': '[]', | 69 'a|web/test2.html._data': EMPTY_DATA, |
| 70 }); | 70 }); |
| 71 | 71 |
| 72 testPhases('shallow, elements, one import', phases, | 72 testPhases('shallow, elements, one import', phases, |
| 73 { | 73 { |
| 74 'a|web/test.html': | 74 'a|web/test.html': |
| 75 '<!DOCTYPE html><html><head>' | 75 '<!DOCTYPE html><html><head>' |
| 76 '<link rel="import" href="test2.html">' | 76 '<link rel="import" href="test2.html">' |
| 77 '</head></html>', | 77 '</head></html>', |
| 78 'a|web/test2.html': | 78 'a|web/test2.html': |
| 79 '<!DOCTYPE html><html><head>' | 79 '<!DOCTYPE html><html><head>' |
| 80 '</head><body><polymer-element>2</polymer-element></html>', | 80 '</head><body><polymer-element>2</polymer-element></html>', |
| 81 }, { | 81 }, { |
| 82 'a|web/test.html': | 82 'a|web/test.html': |
| 83 '<!DOCTYPE html><html><head>' | 83 '<!DOCTYPE html><html><head>' |
| 84 '</head><body>' | 84 '</head><body>' |
| 85 '<polymer-element>2</polymer-element>' | 85 '<polymer-element>2</polymer-element>' |
| 86 '</body></html>', | 86 '</body></html>', |
| 87 'a|web/test.html.scriptUrls': '[]', | 87 'a|web/test.html._data': EMPTY_DATA, |
| 88 'a|web/test2.html': | 88 'a|web/test2.html': |
| 89 '<!DOCTYPE html><html><head>' | 89 '<!DOCTYPE html><html><head>' |
| 90 '</head><body><polymer-element>2</polymer-element></html>', | 90 '</head><body><polymer-element>2</polymer-element></html>', |
| 91 'a|web/test2.html.scriptUrls': '[]', | 91 'a|web/test2.html._data': EMPTY_DATA, |
| 92 }); | 92 }); |
| 93 | 93 |
| 94 testPhases('preserves order of scripts', phases, | 94 testPhases('preserves order of scripts', phases, |
| 95 { | 95 { |
| 96 'a|web/test.html': | 96 'a|web/test.html': |
| 97 '<!DOCTYPE html><html><head>' | 97 '<!DOCTYPE html><html><head>' |
| 98 '<script type="text/javascript">/*first*/</script>' | 98 '<script type="text/javascript">/*first*/</script>' |
| 99 '<script src="second.js"></script>' | 99 '<script src="second.js"></script>' |
| 100 '<link rel="import" href="test2.html">' | 100 '<link rel="import" href="test2.html">' |
| 101 '<script>/*forth*/</script>' | 101 '<script>/*forth*/</script>' |
| 102 '</head></html>', | 102 '</head></html>', |
| 103 'a|web/test2.html': | 103 'a|web/test2.html': |
| 104 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 104 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 105 '</head><body><polymer-element>2</polymer-element></html>', | 105 '</head><body><polymer-element>2</polymer-element></html>', |
| 106 'a|web/second.js': '/*second*/' | 106 'a|web/second.js': '/*second*/' |
| 107 }, { | 107 }, { |
| 108 'a|web/test.html': | 108 'a|web/test.html': |
| 109 '<!DOCTYPE html><html><head>' | 109 '<!DOCTYPE html><html><head>' |
| 110 '</head><body>' | 110 '</head><body>' |
| 111 '<script type="text/javascript">/*first*/</script>' | 111 '<script type="text/javascript">/*first*/</script>' |
| 112 '<script src="second.js"></script>' | 112 '<script src="second.js"></script>' |
| 113 '<script>/*third*/</script>' | 113 '<script>/*third*/</script>' |
| 114 '<polymer-element>2</polymer-element>' | 114 '<polymer-element>2</polymer-element>' |
| 115 '<script>/*forth*/</script>' | 115 '<script>/*forth*/</script>' |
| 116 '</body></html>', | 116 '</body></html>', |
| 117 'a|web/test.html.scriptUrls': '[]', | 117 'a|web/test.html._data': EMPTY_DATA, |
| 118 'a|web/test2.html': | 118 'a|web/test2.html': |
| 119 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 119 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 120 '</head><body><polymer-element>2</polymer-element></html>', | 120 '</head><body><polymer-element>2</polymer-element></html>', |
| 121 'a|web/test2.html.scriptUrls': '[]', | 121 'a|web/test2.html._data': EMPTY_DATA, |
| 122 'a|web/second.js': '/*second*/' | 122 'a|web/second.js': '/*second*/' |
| 123 }); | 123 }); |
| 124 | 124 |
| 125 testPhases('preserves order of scripts, including Dart scripts', phases, | 125 testPhases('preserves order of scripts, extract Dart scripts', phases, |
| 126 { | 126 { |
| 127 'a|web/test.html': | 127 'a|web/test.html': |
| 128 '<!DOCTYPE html><html><head>' | 128 '<!DOCTYPE html><html><head>' |
| 129 '<script type="text/javascript">/*first*/</script>' | 129 '<script type="text/javascript">/*first*/</script>' |
| 130 '<script src="second.js"></script>' | 130 '<script src="second.js"></script>' |
| 131 '<link rel="import" href="test2.html">' | 131 '<link rel="import" href="test2.html">' |
| 132 '<script type="application/dart">/*forth*/</script>' | 132 '<script type="application/dart">/*fifth*/</script>' |
| 133 '</head></html>', | 133 '</head></html>', |
| 134 'a|web/test2.html': | 134 'a|web/test2.html': |
| 135 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 135 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 136 '<script type="application/dart">/*forth*/</script>' |
| 136 '</head><body><polymer-element>2</polymer-element></html>', | 137 '</head><body><polymer-element>2</polymer-element></html>', |
| 137 'a|web/second.js': '/*second*/' | 138 'a|web/second.js': '/*second*/' |
| 138 }, { | 139 }, { |
| 139 'a|web/test.html': | |
| 140 '<!DOCTYPE html><html><head>' | |
| 141 '</head><body>' | |
| 142 '<script type="text/javascript">/*first*/</script>' | |
| 143 '<script src="second.js"></script>' | |
| 144 '<script>/*third*/</script>' | |
| 145 '<polymer-element>2</polymer-element>' | |
| 146 '<script type="application/dart" src="test.html.0.dart"></script>' | |
| 147 '</body></html>', | |
| 148 'a|web/test.html.scriptUrls': '[]', | |
| 149 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*forth*/', | |
| 150 'a|web/test2.html': | |
| 151 '<!DOCTYPE html><html><head><script>/*third*/</script>' | |
| 152 '</head><body><polymer-element>2</polymer-element></html>', | |
| 153 'a|web/test2.html.scriptUrls': '[]', | |
| 154 'a|web/second.js': '/*second*/' | |
| 155 }); | |
| 156 | |
| 157 testPhases('preserves order, extract component scripts', phases, | |
| 158 { | |
| 159 'a|web/test.html': | |
| 160 '<!DOCTYPE html><html><head>' | |
| 161 '<script type="text/javascript">/*first*/</script>' | |
| 162 '<script src="second.js"></script>' | |
| 163 '<link rel="import" href="test2.html">' | |
| 164 '<script type="application/dart;component=1">/*forth*/</script>' | |
| 165 '<script type="application/dart;component=1">/*fifth*/</script>' | |
| 166 '</head></html>', | |
| 167 'a|web/test2.html': | |
| 168 '<!DOCTYPE html><html><head><script>/*third*/</script>' | |
| 169 '</head><body><polymer-element>2</polymer-element></html>', | |
| 170 'a|web/second.js': '/*second*/' | |
| 171 }, { | |
| 172 'a|web/test.html': | 140 'a|web/test.html': |
| 173 '<!DOCTYPE html><html><head>' | 141 '<!DOCTYPE html><html><head>' |
| 174 '</head><body>' | 142 '</head><body>' |
| 175 '<script type="text/javascript">/*first*/</script>' | 143 '<script type="text/javascript">/*first*/</script>' |
| 176 '<script src="second.js"></script>' | 144 '<script src="second.js"></script>' |
| 177 '<script>/*third*/</script>' | 145 '<script>/*third*/</script>' |
| 178 '<polymer-element>2</polymer-element>' | 146 '<polymer-element>2</polymer-element>' |
| 179 '</body></html>', | 147 '</body></html>', |
| 180 'a|web/test.html.scriptUrls': | 148 'a|web/test.html._data': expectedData([ |
| 181 '[["a","web/test.html.0.dart"],["a","web/test.html.1.dart"]]', | 149 'web/test.html.1.dart','web/test.html.0.dart']), |
| 182 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*forth*/', | 150 'a|web/test.html.1.dart': 'library a.web.test2_html_1;\n/*forth*/', |
| 183 'a|web/test.html.1.dart': 'library a.web.test_html_1;\n/*fifth*/', | 151 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*fifth*/', |
| 184 'a|web/test2.html': | 152 'a|web/test2.html': |
| 185 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 153 '<!DOCTYPE html><html><head></head><body><script>/*third*/</script>' |
| 186 '</head><body><polymer-element>2</polymer-element></html>', | 154 '<polymer-element>2</polymer-element></body></html>', |
| 187 'a|web/test2.html.scriptUrls': '[]', | 155 'a|web/test2.html._data': expectedData(['web/test2.html.0.dart']), |
| 156 'a|web/test2.html.0.dart': 'library a.web.test2_html_0;\n/*forth*/', |
| 188 'a|web/second.js': '/*second*/' | 157 'a|web/second.js': '/*second*/' |
| 189 }); | 158 }); |
| 190 | 159 |
| 191 testPhases('no transformation outside web/', phases, | 160 testPhases('no transformation outside web/', phases, |
| 192 { | 161 { |
| 193 'a|lib/test.html': | 162 'a|lib/test.html': |
| 194 '<!DOCTYPE html><html><head>' | 163 '<!DOCTYPE html><html><head>' |
| 195 '<link rel="import" href="test2.html">' | 164 '<link rel="import" href="test2.html">' |
| 196 '</head></html>', | 165 '</head></html>', |
| 197 'a|lib/test2.html': | 166 'a|lib/test2.html': |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 '</head><body><polymer-element>2</polymer-element>' | 364 '</head><body><polymer-element>2</polymer-element>' |
| 396 '<script src="s2"></script></html>', | 365 '<script src="s2"></script></html>', |
| 397 }, { | 366 }, { |
| 398 'a|web/test.html': | 367 'a|web/test.html': |
| 399 '<!DOCTYPE html><html><head>' | 368 '<!DOCTYPE html><html><head>' |
| 400 '</head><body>' | 369 '</head><body>' |
| 401 '<polymer-element>2</polymer-element>' | 370 '<polymer-element>2</polymer-element>' |
| 402 '<script src="s2"></script>' | 371 '<script src="s2"></script>' |
| 403 '<polymer-element>1</polymer-element>' | 372 '<polymer-element>1</polymer-element>' |
| 404 '<script src="s1"></script></body></html>', | 373 '<script src="s1"></script></body></html>', |
| 405 'a|web/test.html.scriptUrls': '[]', | 374 'a|web/test.html._data': EMPTY_DATA, |
| 406 'a|web/test_1.html': | 375 'a|web/test_1.html': |
| 407 '<!DOCTYPE html><html><head>' | 376 '<!DOCTYPE html><html><head>' |
| 408 '</head><body>' | 377 '</head><body>' |
| 409 '<polymer-element>2</polymer-element>' | 378 '<polymer-element>2</polymer-element>' |
| 410 '<script src="s2"></script>' | 379 '<script src="s2"></script>' |
| 411 '<polymer-element>1</polymer-element>' | 380 '<polymer-element>1</polymer-element>' |
| 412 '<script src="s1"></script></body></html>', | 381 '<script src="s1"></script></body></html>', |
| 413 'a|web/test_1.html.scriptUrls': '[]', | 382 'a|web/test_1.html._data': EMPTY_DATA, |
| 414 'a|web/test_2.html': | 383 'a|web/test_2.html': |
| 415 '<!DOCTYPE html><html><head>' | 384 '<!DOCTYPE html><html><head>' |
| 416 '</head><body>' | 385 '</head><body>' |
| 417 '<polymer-element>1</polymer-element>' | 386 '<polymer-element>1</polymer-element>' |
| 418 '<script src="s1"></script>' | 387 '<script src="s1"></script>' |
| 419 '<polymer-element>2</polymer-element>' | 388 '<polymer-element>2</polymer-element>' |
| 420 '<script src="s2"></script></body></html>', | 389 '<script src="s2"></script></body></html>', |
| 421 'a|web/test_2.html.scriptUrls': '[]', | 390 'a|web/test_2.html._data': EMPTY_DATA, |
| 422 }); | 391 }); |
| 423 | 392 |
| 424 testPhases('imports cycle, 1-step lasso, Dart scripts too', phases, { | 393 testPhases('imports cycle, 1-step lasso, Dart scripts too', phases, { |
| 425 'a|web/test.html': | 394 'a|web/test.html': |
| 426 '<!DOCTYPE html><html><head>' | 395 '<!DOCTYPE html><html><head>' |
| 427 '<link rel="import" href="test_1.html">' | 396 '<link rel="import" href="test_1.html">' |
| 428 '</head></html>', | 397 '</head></html>', |
| 429 'a|web/test_1.html': | 398 'a|web/test_1.html': |
| 430 '<!DOCTYPE html><html><head>' | 399 '<!DOCTYPE html><html><head>' |
| 431 '<link rel="import" href="test_2.html">' | 400 '<link rel="import" href="test_2.html">' |
| 432 '</head><body><polymer-element>1</polymer-element>' | 401 '</head><body><polymer-element>1</polymer-element>' |
| 433 '<script type="application/dart" src="s1.dart"></script></html>', | 402 '<script type="application/dart" src="s1.dart">' |
| 434 'a|web/test_2.html': | |
| 435 '<!DOCTYPE html><html><head>' | |
| 436 '<link rel="import" href="test_1.html">' | |
| 437 '</head><body><polymer-element>2</polymer-element>' | |
| 438 '<script type="application/dart" src="s2.dart"></script></html>', | |
| 439 'a|web/s1.dart': '', | |
| 440 'a|web/s2.dart': '', | |
| 441 }, { | |
| 442 'a|web/test.html': | |
| 443 '<!DOCTYPE html><html><head>' | |
| 444 '</head><body>' | |
| 445 '<polymer-element>2</polymer-element>' | |
| 446 '<script type="application/dart" src="s2.dart"></script>' | |
| 447 '<polymer-element>1</polymer-element>' | |
| 448 '<script type="application/dart" src="s1.dart"></script>' | |
| 449 '</body></html>', | |
| 450 'a|web/test.html.scriptUrls': '[]', | |
| 451 'a|web/test_1.html': | |
| 452 '<!DOCTYPE html><html><head>' | |
| 453 '</head><body>' | |
| 454 '<polymer-element>2</polymer-element>' | |
| 455 '<script type="application/dart" src="s2.dart"></script>' | |
| 456 '<polymer-element>1</polymer-element>' | |
| 457 '<script type="application/dart" src="s1.dart"></script>' | |
| 458 '</body></html>', | |
| 459 'a|web/test_1.html.scriptUrls': '[]', | |
| 460 'a|web/test_2.html': | |
| 461 '<!DOCTYPE html><html><head>' | |
| 462 '</head><body>' | |
| 463 '<polymer-element>1</polymer-element>' | |
| 464 '<script type="application/dart" src="s1.dart"></script>' | |
| 465 '<polymer-element>2</polymer-element>' | |
| 466 '<script type="application/dart" src="s2.dart"></script>' | |
| 467 '</body></html>', | |
| 468 'a|web/test_2.html.scriptUrls': '[]', | |
| 469 }); | |
| 470 | |
| 471 testPhases('imports cycle, 1-step lasso, Dart components scripts', phases, { | |
| 472 'a|web/test.html': | |
| 473 '<!DOCTYPE html><html><head>' | |
| 474 '<link rel="import" href="test_1.html">' | |
| 475 '</head></html>', | |
| 476 'a|web/test_1.html': | |
| 477 '<!DOCTYPE html><html><head>' | |
| 478 '<link rel="import" href="test_2.html">' | |
| 479 '</head><body><polymer-element>1</polymer-element>' | |
| 480 '<script type="application/dart;component=1" src="s1.dart">' | |
| 481 '</script></html>', | 403 '</script></html>', |
| 482 'a|web/test_2.html': | 404 'a|web/test_2.html': |
| 483 '<!DOCTYPE html><html><head>' | 405 '<!DOCTYPE html><html><head>' |
| 484 '<link rel="import" href="test_1.html">' | 406 '<link rel="import" href="test_1.html">' |
| 485 '</head><body><polymer-element>2' | 407 '</head><body><polymer-element>2' |
| 486 '<script type="application/dart;component=1" src="s2.dart"></script>' | 408 '<script type="application/dart" src="s2.dart"></script>' |
| 487 '</polymer-element>' | 409 '</polymer-element>' |
| 488 '</html>', | 410 '</html>', |
| 489 'a|web/s1.dart': '', | 411 'a|web/s1.dart': '', |
| 490 'a|web/s2.dart': '', | 412 'a|web/s2.dart': '', |
| 491 }, { | 413 }, { |
| 492 'a|web/test.html': | 414 'a|web/test.html': |
| 493 '<!DOCTYPE html><html><head>' | 415 '<!DOCTYPE html><html><head>' |
| 494 '</head><body>' | 416 '</head><body>' |
| 495 '<polymer-element>2</polymer-element>' | 417 '<polymer-element>2</polymer-element>' |
| 496 '<polymer-element>1</polymer-element>' | 418 '<polymer-element>1</polymer-element>' |
| 497 '</body></html>', | 419 '</body></html>', |
| 498 'a|web/test.html.scriptUrls': '[["a","web/s2.dart"],["a","web/s1.dart"]]', | 420 'a|web/test.html._data': expectedData(['web/s2.dart', 'web/s1.dart']), |
| 499 'a|web/test_1.html': | 421 'a|web/test_1.html': |
| 500 '<!DOCTYPE html><html><head>' | 422 '<!DOCTYPE html><html><head>' |
| 501 '</head><body>' | 423 '</head><body>' |
| 502 '<polymer-element>2</polymer-element>' | 424 '<polymer-element>2</polymer-element>' |
| 503 '<polymer-element>1</polymer-element>' | 425 '<polymer-element>1</polymer-element>' |
| 504 '</body></html>', | 426 '</body></html>', |
| 505 'a|web/test_1.html.scriptUrls': | 427 'a|web/test_1.html._data': expectedData(['web/s2.dart', 'web/s1.dart']), |
| 506 '[["a","web/s2.dart"],["a","web/s1.dart"]]', | |
| 507 'a|web/test_2.html': | 428 'a|web/test_2.html': |
| 508 '<!DOCTYPE html><html><head>' | 429 '<!DOCTYPE html><html><head>' |
| 509 '</head><body>' | 430 '</head><body>' |
| 510 '<polymer-element>1</polymer-element>' | 431 '<polymer-element>1</polymer-element>' |
| 511 '<polymer-element>2</polymer-element>' | 432 '<polymer-element>2' |
| 433 '</polymer-element>' |
| 512 '</body></html>', | 434 '</body></html>', |
| 513 'a|web/test_2.html.scriptUrls': | 435 'a|web/test_2.html._data': expectedData(['web/s1.dart', 'web/s2.dart']), |
| 514 '[["a","web/s1.dart"],["a","web/s2.dart"]]', | |
| 515 }); | 436 }); |
| 516 | 437 |
| 517 testPhases('imports with Dart script after JS script', phases, { | 438 testPhases('imports with Dart script after JS script', phases, { |
| 518 'a|web/test.html': | 439 'a|web/test.html': |
| 519 '<!DOCTYPE html><html><head>' | 440 '<!DOCTYPE html><html><head>' |
| 520 '<link rel="import" href="test_1.html">' | 441 '<link rel="import" href="test_1.html">' |
| 521 '</head></html>', | 442 '</head></html>', |
| 522 'a|web/test_1.html': | 443 'a|web/test_1.html': |
| 523 '<!DOCTYPE html><html><head>' | 444 '<!DOCTYPE html><html><head>' |
| 524 '<link rel="import" href="test_1.html">' | 445 '<link rel="import" href="test_1.html">' |
| 525 '</head><body>' | 446 '</head><body>' |
| 526 '<foo>42</foo><bar-baz></bar-baz>' | 447 '<foo>42</foo><bar-baz></bar-baz>' |
| 527 '<polymer-element>1' | 448 '<polymer-element>1' |
| 528 '<script src="s1.js"></script>' | 449 '<script src="s1.js"></script>' |
| 529 '<script type="application/dart;component=1" src="s1.dart"></script>' | 450 '<script type="application/dart" src="s1.dart"></script>' |
| 530 '</polymer-element>' | 451 '</polymer-element>' |
| 531 'FOO</body></html>', | 452 'FOO</body></html>', |
| 532 'a|web/s1.dart': '', | 453 'a|web/s1.dart': '', |
| 533 }, { | 454 }, { |
| 534 'a|web/test.html': | 455 'a|web/test.html': |
| 535 '<!DOCTYPE html><html><head>' | 456 '<!DOCTYPE html><html><head>' |
| 536 '</head><body>' | 457 '</head><body>' |
| 537 '<foo>42</foo><bar-baz></bar-baz>' | 458 '<foo>42</foo><bar-baz></bar-baz>' |
| 538 '<polymer-element>1' | 459 '<polymer-element>1' |
| 539 '<script src="s1.js"></script>' | 460 '<script src="s1.js"></script>' |
| 540 '</polymer-element>' | 461 '</polymer-element>' |
| 541 'FOO</body></html>', | 462 'FOO</body></html>', |
| 542 'a|web/test.html.scriptUrls': '[["a","web/s1.dart"]]', | 463 'a|web/test.html._data': expectedData(['web/s1.dart']), |
| 543 'a|web/test_1.html': | 464 'a|web/test_1.html': |
| 544 '<!DOCTYPE html><html><head>' | 465 '<!DOCTYPE html><html><head>' |
| 545 '</head><body>' | 466 '</head><body>' |
| 546 '<foo>42</foo><bar-baz></bar-baz>' | 467 '<foo>42</foo><bar-baz></bar-baz>' |
| 547 '<polymer-element>1' | 468 '<polymer-element>1' |
| 548 '<script src="s1.js"></script>' | 469 '<script src="s1.js"></script>' |
| 549 '</polymer-element>' | 470 '</polymer-element>' |
| 550 'FOO</body></html>', | 471 'FOO</body></html>', |
| 551 'a|web/test_1.html.scriptUrls': '[["a","web/s1.dart"]]', | 472 'a|web/test_1.html._data': expectedData(['web/s1.dart']), |
| 552 }); | 473 }); |
| 553 | 474 |
| 554 testPhases('imports cycle, 2-step lasso', phases, { | 475 testPhases('imports cycle, 2-step lasso', phases, { |
| 555 'a|web/test.html': | 476 'a|web/test.html': |
| 556 '<!DOCTYPE html><html><head>' | 477 '<!DOCTYPE html><html><head>' |
| 557 '<link rel="import" href="test_1.html">' | 478 '<link rel="import" href="test_1.html">' |
| 558 '</head></html>', | 479 '</head></html>', |
| 559 'a|web/test_1.html': | 480 'a|web/test_1.html': |
| 560 '<!DOCTYPE html><html><head>' | 481 '<!DOCTYPE html><html><head>' |
| 561 '<link rel="import" href="test_2.html">' | 482 '<link rel="import" href="test_2.html">' |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 '</head></html>', | 586 '</head></html>', |
| 666 'a|web/test2.html': | 587 'a|web/test2.html': |
| 667 '<!DOCTYPE html><html><head>' | 588 '<!DOCTYPE html><html><head>' |
| 668 '<link rel="stylesheet">' // no href | 589 '<link rel="stylesheet">' // no href |
| 669 '</head></html>', | 590 '</head></html>', |
| 670 }, { | 591 }, { |
| 671 'a|web/test.html': | 592 'a|web/test.html': |
| 672 '<!DOCTYPE html><html><head>' | 593 '<!DOCTYPE html><html><head>' |
| 673 '<link rel="stylesheet" href="">' // empty href | 594 '<link rel="stylesheet" href="">' // empty href |
| 674 '</head></html>', | 595 '</head></html>', |
| 675 'a|web/test.html.scriptUrls': '[]', | 596 'a|web/test.html._data': EMPTY_DATA, |
| 676 'a|web/test2.html': | 597 'a|web/test2.html': |
| 677 '<!DOCTYPE html><html><head>' | 598 '<!DOCTYPE html><html><head>' |
| 678 '<link rel="stylesheet">' // no href | 599 '<link rel="stylesheet">' // no href |
| 679 '</head></html>', | 600 '</head></html>', |
| 680 'a|web/test2.html.scriptUrls': '[]', | 601 'a|web/test2.html._data': EMPTY_DATA, |
| 681 }); | 602 }); |
| 682 | 603 |
| 683 testPhases('absolute uri', phases, { | 604 testPhases('absolute uri', phases, { |
| 684 'a|web/test.html': | 605 'a|web/test.html': |
| 685 '<!DOCTYPE html><html><head>' | 606 '<!DOCTYPE html><html><head>' |
| 686 '<link rel="stylesheet" href="/foo.css">' | 607 '<link rel="stylesheet" href="/foo.css">' |
| 687 '</head></html>', | 608 '</head></html>', |
| 688 'a|web/test2.html': | 609 'a|web/test2.html': |
| 689 '<!DOCTYPE html><html><head>' | 610 '<!DOCTYPE html><html><head>' |
| 690 '<link rel="stylesheet" href="http://example.com/bar.css">' | 611 '<link rel="stylesheet" href="http://example.com/bar.css">' |
| 691 '</head></html>', | 612 '</head></html>', |
| 692 }, { | 613 }, { |
| 693 'a|web/test.html': | 614 'a|web/test.html': |
| 694 '<!DOCTYPE html><html><head>' | 615 '<!DOCTYPE html><html><head>' |
| 695 '<link rel="stylesheet" href="/foo.css">' | 616 '<link rel="stylesheet" href="/foo.css">' |
| 696 '</head></html>', | 617 '</head></html>', |
| 697 'a|web/test.html.scriptUrls': '[]', | 618 'a|web/test.html._data': EMPTY_DATA, |
| 698 'a|web/test2.html': | 619 'a|web/test2.html': |
| 699 '<!DOCTYPE html><html><head>' | 620 '<!DOCTYPE html><html><head>' |
| 700 '<link rel="stylesheet" href="http://example.com/bar.css">' | 621 '<link rel="stylesheet" href="http://example.com/bar.css">' |
| 701 '</head></html>', | 622 '</head></html>', |
| 702 'a|web/test2.html.scriptUrls': '[]', | 623 'a|web/test2.html._data': EMPTY_DATA, |
| 703 }); | 624 }); |
| 704 | 625 |
| 705 testPhases('shallow, inlines css', phases, { | 626 testPhases('shallow, inlines css', phases, { |
| 706 'a|web/test.html': | 627 'a|web/test.html': |
| 707 '<!DOCTYPE html><html><head>' | 628 '<!DOCTYPE html><html><head>' |
| 708 '<link rel="stylesheet" href="test2.css">' | 629 '<link rel="stylesheet" href="test2.css">' |
| 709 '</head></html>', | 630 '</head></html>', |
| 710 'a|web/test2.css': | 631 'a|web/test2.css': |
| 711 'h1 { font-size: 70px; }', | 632 'h1 { font-size: 70px; }', |
| 712 }, { | 633 }, { |
| 713 'a|web/test.html': | 634 'a|web/test.html': |
| 714 '<!DOCTYPE html><html><head></head><body>' | 635 '<!DOCTYPE html><html><head></head><body>' |
| 715 '<style>h1 { font-size: 70px; }</style>' | 636 '<style>h1 { font-size: 70px; }</style>' |
| 716 '</body></html>', | 637 '</body></html>', |
| 717 'a|web/test.html.scriptUrls': '[]', | 638 'a|web/test.html._data': EMPTY_DATA, |
| 718 'a|web/test2.css': | 639 'a|web/test2.css': |
| 719 'h1 { font-size: 70px; }', | 640 'h1 { font-size: 70px; }', |
| 720 }); | 641 }); |
| 721 | 642 |
| 722 testPhases('deep, inlines css', phases, { | 643 testPhases('deep, inlines css', phases, { |
| 723 'a|web/test.html': | 644 'a|web/test.html': |
| 724 '<!DOCTYPE html><html><head>' | 645 '<!DOCTYPE html><html><head>' |
| 725 '<link rel="import" href="test2.html">' | 646 '<link rel="import" href="test2.html">' |
| 726 '</head></html>', | 647 '</head></html>', |
| 727 'a|web/test2.html': | 648 'a|web/test2.html': |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 '</head></html>', | 728 '</head></html>', |
| 808 'a|web/test2.css': | 729 'a|web/test2.css': |
| 809 'h1 { font-size: 70px; }', | 730 'h1 { font-size: 70px; }', |
| 810 }, { | 731 }, { |
| 811 'a|web/test.html': | 732 'a|web/test.html': |
| 812 '<!DOCTYPE html><html><head></head><body>' | 733 '<!DOCTYPE html><html><head></head><body>' |
| 813 '<style>.first { color: black }</style>' | 734 '<style>.first { color: black }</style>' |
| 814 '<style>h1 { font-size: 70px; }</style>' | 735 '<style>h1 { font-size: 70px; }</style>' |
| 815 '<style>.second { color: black }</style>' | 736 '<style>.second { color: black }</style>' |
| 816 '</body></html>', | 737 '</body></html>', |
| 817 'a|web/test.html.scriptUrls': '[]', | 738 'a|web/test.html._data': EMPTY_DATA, |
| 818 'a|web/test2.css': | 739 'a|web/test2.css': |
| 819 'h1 { font-size: 70px; }', | 740 'h1 { font-size: 70px; }', |
| 820 }); | 741 }); |
| 821 } | 742 } |
| OLD | NEW |