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'; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 'a|web/test2.html.scriptUrls': '[]', | 91 'a|web/test2.html.scriptUrls': '[]', |
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>' |
| 102 '</head></html>', |
| 103 'a|web/test2.html': |
| 104 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 105 '</head><body><polymer-element>2</polymer-element></html>', |
| 106 'a|web/second.js': '/*second*/' |
| 107 }, { |
| 108 'a|web/test.html': |
| 109 '<!DOCTYPE html><html><head>' |
| 110 '</head><body>' |
| 111 '<script type="text/javascript">/*first*/</script>' |
| 112 '<script src="second.js"></script>' |
| 113 '<script>/*third*/</script>' |
| 114 '<polymer-element>2</polymer-element>' |
| 115 '<script>/*forth*/</script>' |
| 116 '</body></html>', |
| 117 'a|web/test.html.scriptUrls': '[]', |
| 118 'a|web/test2.html': |
| 119 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 120 '</head><body><polymer-element>2</polymer-element></html>', |
| 121 'a|web/test2.html.scriptUrls': '[]', |
| 122 'a|web/second.js': '/*second*/' |
| 123 }); |
| 124 |
| 125 testPhases('preserves order of scripts, including Dart scripts', phases, |
| 126 { |
| 127 'a|web/test.html': |
| 128 '<!DOCTYPE html><html><head>' |
| 129 '<script type="text/javascript">/*first*/</script>' |
| 130 '<script src="second.js"></script>' |
| 131 '<link rel="import" href="test2.html">' |
101 '<script type="application/dart">/*forth*/</script>' | 132 '<script type="application/dart">/*forth*/</script>' |
102 '</head></html>', | 133 '</head></html>', |
103 'a|web/test2.html': | 134 'a|web/test2.html': |
104 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 135 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
105 '</head><body><polymer-element>2</polymer-element></html>', | 136 '</head><body><polymer-element>2</polymer-element></html>', |
106 'a|web/second.js': '/*second*/' | 137 'a|web/second.js': '/*second*/' |
107 }, { | 138 }, { |
108 'a|web/test.html': | 139 'a|web/test.html': |
109 '<!DOCTYPE html><html><head>' | 140 '<!DOCTYPE html><html><head>' |
110 '</head><body>' | 141 '</head><body>' |
111 '<script type="text/javascript">/*first*/</script>' | 142 '<script type="text/javascript">/*first*/</script>' |
112 '<script src="second.js"></script>' | 143 '<script src="second.js"></script>' |
113 '<script>/*third*/</script>' | 144 '<script>/*third*/</script>' |
114 '<polymer-element>2</polymer-element>' | 145 '<polymer-element>2</polymer-element>' |
115 '<script type="application/dart" src="test.html.0.dart"></script>' | 146 '<script type="application/dart" src="test.html.0.dart"></script>' |
116 '</body></html>', | 147 '</body></html>', |
117 'a|web/test.html.scriptUrls': '[]', | 148 'a|web/test.html.scriptUrls': '[]', |
118 'a|web/test.html.0.dart': 'library a.web.test_html;\n/*forth*/', | 149 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*forth*/', |
119 'a|web/test2.html': | 150 'a|web/test2.html': |
120 '<!DOCTYPE html><html><head><script>/*third*/</script>' | 151 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
121 '</head><body><polymer-element>2</polymer-element></html>', | 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': |
| 173 '<!DOCTYPE html><html><head>' |
| 174 '</head><body>' |
| 175 '<script type="text/javascript">/*first*/</script>' |
| 176 '<script src="second.js"></script>' |
| 177 '<script>/*third*/</script>' |
| 178 '<polymer-element>2</polymer-element>' |
| 179 '</body></html>', |
| 180 'a|web/test.html.scriptUrls': |
| 181 '[["a","web/test.html.0.dart"],["a","web/test.html.1.dart"]]', |
| 182 'a|web/test.html.0.dart': 'library a.web.test_html_0;\n/*forth*/', |
| 183 'a|web/test.html.1.dart': 'library a.web.test_html_1;\n/*fifth*/', |
| 184 'a|web/test2.html': |
| 185 '<!DOCTYPE html><html><head><script>/*third*/</script>' |
| 186 '</head><body><polymer-element>2</polymer-element></html>', |
122 'a|web/test2.html.scriptUrls': '[]', | 187 'a|web/test2.html.scriptUrls': '[]', |
123 'a|web/second.js': '/*second*/' | 188 'a|web/second.js': '/*second*/' |
124 }); | 189 }); |
125 | 190 |
126 testPhases('no transformation outside web/', phases, | 191 testPhases('no transformation outside web/', phases, |
127 { | 192 { |
128 'a|lib/test.html': | 193 'a|lib/test.html': |
129 '<!DOCTYPE html><html><head>' | 194 '<!DOCTYPE html><html><head>' |
130 '<link rel="import" href="test2.html">' | 195 '<link rel="import" href="test2.html">' |
131 '</head></html>', | 196 '</head></html>', |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
362 '<link rel="import" href="test_1.html">' | 427 '<link rel="import" href="test_1.html">' |
363 '</head></html>', | 428 '</head></html>', |
364 'a|web/test_1.html': | 429 'a|web/test_1.html': |
365 '<!DOCTYPE html><html><head>' | 430 '<!DOCTYPE html><html><head>' |
366 '<link rel="import" href="test_2.html">' | 431 '<link rel="import" href="test_2.html">' |
367 '</head><body><polymer-element>1</polymer-element>' | 432 '</head><body><polymer-element>1</polymer-element>' |
368 '<script type="application/dart" src="s1.dart"></script></html>', | 433 '<script type="application/dart" src="s1.dart"></script></html>', |
369 'a|web/test_2.html': | 434 'a|web/test_2.html': |
370 '<!DOCTYPE html><html><head>' | 435 '<!DOCTYPE html><html><head>' |
371 '<link rel="import" href="test_1.html">' | 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 }, { |
| 440 'a|web/test.html': |
| 441 '<!DOCTYPE html><html><head>' |
| 442 '</head><body>' |
| 443 '<polymer-element>2</polymer-element>' |
| 444 '<script type="application/dart" src="s2.dart"></script>' |
| 445 '<polymer-element>1</polymer-element>' |
| 446 '<script type="application/dart" src="s1.dart"></script>' |
| 447 '</body></html>', |
| 448 'a|web/test.html.scriptUrls': '[]', |
| 449 'a|web/test_1.html': |
| 450 '<!DOCTYPE html><html><head>' |
| 451 '</head><body>' |
| 452 '<polymer-element>2</polymer-element>' |
| 453 '<script type="application/dart" src="s2.dart"></script>' |
| 454 '<polymer-element>1</polymer-element>' |
| 455 '<script type="application/dart" src="s1.dart"></script>' |
| 456 '</body></html>', |
| 457 'a|web/test_1.html.scriptUrls': '[]', |
| 458 'a|web/test_2.html': |
| 459 '<!DOCTYPE html><html><head>' |
| 460 '</head><body>' |
| 461 '<polymer-element>1</polymer-element>' |
| 462 '<script type="application/dart" src="s1.dart"></script>' |
| 463 '<polymer-element>2</polymer-element>' |
| 464 '<script type="application/dart" src="s2.dart"></script>' |
| 465 '</body></html>', |
| 466 'a|web/test_2.html.scriptUrls': '[]', |
| 467 }); |
| 468 |
| 469 testPhases('imports cycle, 1-step lasso, Dart components scripts', phases, { |
| 470 'a|web/test.html': |
| 471 '<!DOCTYPE html><html><head>' |
| 472 '<link rel="import" href="test_1.html">' |
| 473 '</head></html>', |
| 474 'a|web/test_1.html': |
| 475 '<!DOCTYPE html><html><head>' |
| 476 '<link rel="import" href="test_2.html">' |
| 477 '</head><body><polymer-element>1</polymer-element>' |
| 478 '<script type="application/dart;component=1" src="s1.dart">' |
| 479 '</script></html>', |
| 480 'a|web/test_2.html': |
| 481 '<!DOCTYPE html><html><head>' |
| 482 '<link rel="import" href="test_1.html">' |
372 '</head><body><polymer-element>2' | 483 '</head><body><polymer-element>2' |
373 '<script type="application/dart" src="s2.dart"></script>' | 484 '<script type="application/dart;component=1" src="s2.dart"></script>' |
374 '</polymer-element>' | 485 '</polymer-element>' |
375 '</html>', | 486 '</html>', |
376 }, { | 487 }, { |
377 'a|web/test.html': | 488 'a|web/test.html': |
378 '<!DOCTYPE html><html><head>' | 489 '<!DOCTYPE html><html><head>' |
379 '</head><body>' | 490 '</head><body>' |
380 '<polymer-element>2</polymer-element>' | 491 '<polymer-element>2</polymer-element>' |
381 '<polymer-element>1</polymer-element>' | 492 '<polymer-element>1</polymer-element>' |
382 '</body></html>', | 493 '</body></html>', |
383 'a|web/test.html.scriptUrls': '[["a","web/s2.dart"],["a","web/s1.dart"]]', | 494 'a|web/test.html.scriptUrls': '[["a","web/s2.dart"],["a","web/s1.dart"]]', |
384 'a|web/test_1.html': | 495 'a|web/test_1.html': |
385 '<!DOCTYPE html><html><head>' | 496 '<!DOCTYPE html><html><head>' |
386 '</head><body>' | 497 '</head><body>' |
387 '<polymer-element>2</polymer-element>' | 498 '<polymer-element>2</polymer-element>' |
388 '<polymer-element>1</polymer-element>' | 499 '<polymer-element>1</polymer-element>' |
389 '<script type="application/dart" src="s1.dart"></script>' | |
390 '</body></html>', | 500 '</body></html>', |
391 'a|web/test_1.html.scriptUrls': | 501 'a|web/test_1.html.scriptUrls': |
392 '[["a","web/s2.dart"]]', | 502 '[["a","web/s2.dart"],["a","web/s1.dart"]]', |
393 'a|web/test_2.html': | 503 'a|web/test_2.html': |
394 '<!DOCTYPE html><html><head>' | 504 '<!DOCTYPE html><html><head>' |
395 '</head><body>' | 505 '</head><body>' |
396 '<polymer-element>1</polymer-element>' | 506 '<polymer-element>1</polymer-element>' |
397 '<polymer-element>2' | 507 '<polymer-element>2</polymer-element>' |
398 '<script type="application/dart" src="s2.dart"></script>' | |
399 '</polymer-element>' | |
400 '</body></html>', | 508 '</body></html>', |
401 'a|web/test_2.html.scriptUrls': | 509 'a|web/test_2.html.scriptUrls': |
402 '[["a","web/s1.dart"]]', | 510 '[["a","web/s1.dart"],["a","web/s2.dart"]]', |
403 }); | 511 }); |
404 | 512 |
405 testPhases('imports with Dart script after JS script', phases, { | 513 testPhases('imports with Dart script after JS script', phases, { |
406 'a|web/test.html': | 514 'a|web/test.html': |
407 '<!DOCTYPE html><html><head>' | 515 '<!DOCTYPE html><html><head>' |
408 '<link rel="import" href="test_1.html">' | 516 '<link rel="import" href="test_1.html">' |
409 '</head></html>', | 517 '</head></html>', |
410 'a|web/test_1.html': | 518 'a|web/test_1.html': |
411 '<!DOCTYPE html><html><head>' | 519 '<!DOCTYPE html><html><head>' |
412 '<link rel="import" href="test_1.html">' | 520 '<link rel="import" href="test_1.html">' |
413 '</head><body>' | 521 '</head><body>' |
414 '<foo>42</foo><bar-baz></bar-baz>' | 522 '<foo>42</foo><bar-baz></bar-baz>' |
415 '<polymer-element>1' | 523 '<polymer-element>1' |
416 '<script src="s1.js"></script>' | 524 '<script src="s1.js"></script>' |
417 '<script type="application/dart" src="s1.dart"></script>' | 525 '<script type="application/dart;component=1" src="s1.dart"></script>' |
418 '</polymer-element>' | 526 '</polymer-element>' |
419 'FOO</body></html>', | 527 'FOO</body></html>', |
420 }, { | 528 }, { |
421 'a|web/test.html': | 529 'a|web/test.html': |
422 '<!DOCTYPE html><html><head>' | 530 '<!DOCTYPE html><html><head>' |
423 '</head><body>' | 531 '</head><body>' |
424 '<foo>42</foo><bar-baz></bar-baz>' | 532 '<foo>42</foo><bar-baz></bar-baz>' |
425 '<polymer-element>1' | 533 '<polymer-element>1' |
426 '<script src="s1.js"></script>' | 534 '<script src="s1.js"></script>' |
427 '</polymer-element>' | 535 '</polymer-element>' |
428 'FOO</body></html>', | 536 'FOO</body></html>', |
429 'a|web/test.html.scriptUrls': '[["a","web/s1.dart"]]', | 537 'a|web/test.html.scriptUrls': '[["a","web/s1.dart"]]', |
430 'a|web/test_1.html': | 538 'a|web/test_1.html': |
431 '<!DOCTYPE html><html><head>' | 539 '<!DOCTYPE html><html><head>' |
432 '</head><body>' | 540 '</head><body>' |
433 '<foo>42</foo><bar-baz></bar-baz>' | 541 '<foo>42</foo><bar-baz></bar-baz>' |
434 '<polymer-element>1' | 542 '<polymer-element>1' |
435 '<script src="s1.js"></script>' | 543 '<script src="s1.js"></script>' |
436 '<script type="application/dart" src="s1.dart"></script>' | |
437 '</polymer-element>' | 544 '</polymer-element>' |
438 'FOO</body></html>', | 545 'FOO</body></html>', |
439 'a|web/test_1.html.scriptUrls': '[]', | 546 'a|web/test_1.html.scriptUrls': '[["a","web/s1.dart"]]', |
440 }); | 547 }); |
441 | 548 |
442 testPhases('imports cycle, 2-step lasso', phases, { | 549 testPhases('imports cycle, 2-step lasso', phases, { |
443 'a|web/test.html': | 550 'a|web/test.html': |
444 '<!DOCTYPE html><html><head>' | 551 '<!DOCTYPE html><html><head>' |
445 '<link rel="import" href="test_1.html">' | 552 '<link rel="import" href="test_1.html">' |
446 '</head></html>', | 553 '</head></html>', |
447 'a|web/test_1.html': | 554 'a|web/test_1.html': |
448 '<!DOCTYPE html><html><head>' | 555 '<!DOCTYPE html><html><head>' |
449 '<link rel="import" href="test_2.html">' | 556 '<link rel="import" href="test_2.html">' |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 '<style>h1 { font-size: 70px; }</style>' | 809 '<style>h1 { font-size: 70px; }</style>' |
703 '<style>.second { color: black }</style>' | 810 '<style>.second { color: black }</style>' |
704 '</body></html>', | 811 '</body></html>', |
705 'a|web/test.html.scriptUrls': '[]', | 812 'a|web/test.html.scriptUrls': '[]', |
706 'a|web/test2.css': | 813 'a|web/test2.css': |
707 'h1 { font-size: 70px; }', | 814 'h1 { font-size: 70px; }', |
708 }); | 815 }); |
709 | 816 |
710 } | 817 } |
711 | 818 |
OLD | NEW |