Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Side by Side Diff: pkg/polymer/test/build/script_compactor_test.dart

Issue 427623002: Polymer transformer logs now show on the frontend for pub serve. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: dont wrap the logger in release mode Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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.script_compactor_test; 5 library polymer.test.build.script_compactor_test;
6 6
7 import 'dart:convert';
8
7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory; 9 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory;
8 import 'package:polymer/src/build/common.dart'; 10 import 'package:polymer/src/build/common.dart';
9 import 'package:polymer/src/build/script_compactor.dart'; 11 import 'package:polymer/src/build/script_compactor.dart';
10 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS; 12 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS;
11 import 'package:unittest/compact_vm_config.dart'; 13 import 'package:unittest/compact_vm_config.dart';
12 import 'package:unittest/unittest.dart'; 14 import 'package:unittest/unittest.dart';
13 15
14 import 'common.dart'; 16 import 'common.dart';
15 17
16 void main() { 18 void main() {
17 useCompactVMConfiguration(); 19 useCompactVMConfiguration();
18 var phases = [[new ScriptCompactor(new TransformOptions(), 20 var phases = [[new ScriptCompactor(new TransformOptions(),
19 sdkDir: testingDartSdkDirectory)]]; 21 sdkDir: testingDartSdkDirectory)]];
20 group('initializers', () => initializerTests(phases)); 22 group('initializers', () => initializerTests(phases));
21 group('experimental', () => initializerTestsExperimental(phases)); 23 group('experimental', () => initializerTestsExperimental(phases));
22 group('codegen', () => codegenTests(phases)); 24 group('codegen', () => codegenTests(phases));
25 group('log element injection', logElementInjectionTests);
23 } 26 }
24 27
25 initializerTests(phases) { 28 initializerTests(phases) {
26 testPhases('no changes', phases, { 29 testPhases('no changes', phases, {
27 'a|web/test.html': '<!DOCTYPE html><html></html>', 30 'a|web/test.html': '<!DOCTYPE html><html></html>',
28 'a|web/test.html._data': EMPTY_DATA, 31 'a|web/test.html._data': EMPTY_DATA,
29 }, { 32 }, {
30 'a|web/test.html': '<!DOCTYPE html><html></html>', 33 'a|web/test.html': '<!DOCTYPE html><html></html>',
31 }); 34 });
32 35
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 smoke_0.XFoo: {}, 149 smoke_0.XFoo: {},
147 })); 150 }));
148 configureForDeployment([ 151 configureForDeployment([
149 () => Polymer.register(\'x-foo2\', i0.XFoo), 152 () => Polymer.register(\'x-foo2\', i0.XFoo),
150 ]); 153 ]);
151 i0.main(); 154 i0.main();
152 } 155 }
153 '''.replaceAll('\n ', '\n'), 156 '''.replaceAll('\n ', '\n'),
154 }); 157 });
155 158
156 testPhases('invalid const expression', phases, {
157 'a|web/test.html':
158 '<!DOCTYPE html><html><head>',
159 'a|web/test.html._data': expectedData(['web/a.dart']),
160 'a|web/a.dart':
161 'library a;\n'
162 'import "package:polymer/polymer.dart";\n'
163 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined
164 'class XFoo extends PolymerElement {\n'
165 '}\n'
166 'main(){}',
167 }, {
168 'a|web/test.html_bootstrap.dart':
169 '''$MAIN_HEADER
170 import 'a.dart' as i0;
171 ${DEFAULT_IMPORTS.join('\n')}
172 import 'a.dart' as smoke_0;
173 import 'package:polymer/polymer.dart' as smoke_1;
174 159
175 void main() { 160 testLogOutput(
176 useGeneratedCode(new StaticConfiguration( 161 (options) =>
177 checkedMode: false, 162 new ScriptCompactor(options, sdkDir: testingDartSdkDirectory),
178 parents: { 163 'invalid const expression logs', {
179 smoke_0.XFoo: smoke_1.PolymerElement, 164 'a|web/test.html':
180 }, 165 '<!DOCTYPE html><html><head>',
181 declarations: { 166 'a|web/test.html._data': expectedData(['web/a.dart']),
182 smoke_0.XFoo: {}, 167 'a|web/a.dart':
183 })); 168 'library a;\n'
184 configureForDeployment([]); 169 'import "package:polymer/polymer.dart";\n'
185 i0.main(); 170 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined
186 } 171 'class XFoo extends PolymerElement {\n'
187 '''.replaceAll('\n ', '\n'), 172 '}\n'
173 'main(){}',
174 }, {}, [
175 'warning: The parameter to @CustomTag seems to be invalid. '
176 '(web/a.dart 2 11)',
177 ]);
188 178
189 }, [ 179 testPhases(
190 'warning: The parameter to @CustomTag seems to be invalid. ' 180 'invalid const expression', phases, {
191 '(web/a.dart 2 11)', 181 'a|web/test.html':
192 ]); 182 '<!DOCTYPE html><html><head>',
183 'a|web/test.html._data': expectedData(['web/a.dart']),
184 'a|web/a.dart':
185 'library a;\n'
186 'import "package:polymer/polymer.dart";\n'
187 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined
188 'class XFoo extends PolymerElement {\n'
189 '}\n'
190 'main(){}',
191 }, {
192 'a|web/test.html_bootstrap.dart':
193 '''$MAIN_HEADER
194 import 'a.dart' as i0;
195 ${DEFAULT_IMPORTS.join('\n')}
196 import 'a.dart' as smoke_0;
197 import 'package:polymer/polymer.dart' as smoke_1;
198
199 void main() {
200 useGeneratedCode(new StaticConfiguration(
201 checkedMode: false,
202 parents: {
203 smoke_0.XFoo: smoke_1.PolymerElement,
204 },
205 declarations: {
206 smoke_0.XFoo: {},
207 }));
208 configureForDeployment([]);
209 i0.main();
210 }
211 '''.replaceAll('\n ', '\n'),
212
213 });
193 214
194 testPhases('no polymer import (no warning, but no crash either)', phases, { 215 testPhases('no polymer import (no warning, but no crash either)', phases, {
195 'a|web/test.html': 216 'a|web/test.html':
196 '<!DOCTYPE html><html><head>', 217 '<!DOCTYPE html><html><head>',
197 'a|web/test.html._data': expectedData(['web/a.dart']), 218 'a|web/test.html._data': expectedData(['web/a.dart']),
198 'a|web/a.dart': 219 'a|web/a.dart':
199 'library a;\n' 220 'library a;\n'
200 'import "package:polymer/polymer.broken.import.dart";\n' 221 'import "package:polymer/polymer.broken.import.dart";\n'
201 '@CustomTag("x-foo")\n' 222 '@CustomTag("x-foo")\n'
202 'class XFoo extends PolymerElement {\n' 223 'class XFoo extends PolymerElement {\n'
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 declarations: { 479 declarations: {
459 smoke_0.XFoo: {}, 480 smoke_0.XFoo: {},
460 })); 481 }));
461 startPolymer([ 482 startPolymer([
462 () => Polymer.register(\'x-foo2\', i0.XFoo), 483 () => Polymer.register(\'x-foo2\', i0.XFoo),
463 ]); 484 ]);
464 } 485 }
465 '''.replaceAll('\n ', '\n'), 486 '''.replaceAll('\n ', '\n'),
466 }); 487 });
467 488
468 testPhases('invalid const expression', phases, { 489 testLogOutput(
469 'a|web/test.html': 490 (options) =>
470 '<!DOCTYPE html><html><head>', 491 new ScriptCompactor(options, sdkDir: testingDartSdkDirectory),
471 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true), 492 'invalid const expression logs', {
472 'a|web/a.dart': 493 'a|web/test.html':
473 'library a;\n' 494 '<!DOCTYPE html><html><head>',
474 'import "package:polymer/polymer.dart";\n' 495 'a|web/test.html._data':
475 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined 496 expectedData(['web/a.dart'], experimental: true),
476 'class XFoo extends PolymerElement {\n' 497 'a|web/a.dart':
477 '}\n' 498 'library a;\n'
478 'main(){}', 499 'import "package:polymer/polymer.dart";\n'
479 }, { 500 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined
480 'a|web/test.html_bootstrap.dart': 501 'class XFoo extends PolymerElement {\n'
481 '''$MAIN_HEADER 502 '}\n'
482 import 'a.dart' as i0; 503 'main(){}',
483 ${DEFAULT_IMPORTS.join('\n')} 504 }, {}, [
484 import 'a.dart' as smoke_0; 505 'warning: The parameter to @CustomTag seems to be invalid. '
485 import 'package:polymer/polymer.dart' as smoke_1; 506 '(web/a.dart 2 11)',
507 'warning: $NO_INITIALIZERS_ERROR',
508 ]);
486 509
487 void main() { 510 testPhases(
488 useGeneratedCode(new StaticConfiguration( 511 'invalid const expression', phases, {
489 checkedMode: false, 512 'a|web/test.html':
490 parents: { 513 '<!DOCTYPE html><html><head>',
491 smoke_0.XFoo: smoke_1.PolymerElement, 514 'a|web/test.html._data':
492 }, 515 expectedData(['web/a.dart'], experimental: true),
493 declarations: { 516 'a|web/a.dart':
494 smoke_0.XFoo: {}, 517 'library a;\n'
495 })); 518 'import "package:polymer/polymer.dart";\n'
496 startPolymer([]); 519 '@CustomTag("\${x}-foo")\n' // invalid, x is not defined
497 } 520 'class XFoo extends PolymerElement {\n'
498 '''.replaceAll('\n ', '\n'), 521 '}\n'
522 'main(){}',
523 }, {
524 'a|web/test.html_bootstrap.dart':
525 '''$MAIN_HEADER
526 import 'a.dart' as i0;
527 ${DEFAULT_IMPORTS.join('\n')}
528 import 'a.dart' as smoke_0;
529 import 'package:polymer/polymer.dart' as smoke_1;
499 530
500 }, [ 531 void main() {
501 'warning: The parameter to @CustomTag seems to be invalid. ' 532 useGeneratedCode(new StaticConfiguration(
502 '(web/a.dart 2 11)', 533 checkedMode: false,
503 'warning: $NO_INITIALIZERS_ERROR', 534 parents: {
504 ]); 535 smoke_0.XFoo: smoke_1.PolymerElement,
536 },
537 declarations: {
538 smoke_0.XFoo: {},
539 }));
540 startPolymer([]);
541 }
542 '''.replaceAll('\n ', '\n'),
543 });
505 544
506 testPhases('no polymer import (no warning, but no crash either)', phases, { 545 testLogOutput(
507 'a|web/test.html': 546 (options) =>
508 '<!DOCTYPE html><html><head>', 547 new ScriptCompactor(options, sdkDir: testingDartSdkDirectory),
509 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true), 548 'no polymer import logs', {
510 'a|web/a.dart': 549 'a|web/test.html':
511 'library a;\n' 550 '<!DOCTYPE html><html><head>',
512 'import "package:polymer/polymer.broken.import.dart";\n' 551 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true ),
513 '@CustomTag("x-foo")\n' 552 'a|web/a.dart':
514 'class XFoo extends PolymerElement {\n' 553 'library a;\n'
515 '}\n' 554 'import "package:polymer/polymer.broken.import.dart";\n'
516 'main(){}', 555 '@CustomTag("x-foo")\n'
517 }, { 556 'class XFoo extends PolymerElement {\n'
518 'a|web/test.html_bootstrap.dart': 557 '}\n'
519 '''$MAIN_HEADER 558 'main(){}',
520 import 'a.dart' as i0; 559 }, {}, [
521 ${DEFAULT_IMPORTS.join('\n')} 560 'warning: $NO_INITIALIZERS_ERROR',
561 ]);
522 562
523 void main() { 563 testPhases(
524 useGeneratedCode(new StaticConfiguration( 564 'no polymer import', phases, {
525 checkedMode: false)); 565 'a|web/test.html':
526 startPolymer([]); 566 '<!DOCTYPE html><html><head>',
527 } 567 'a|web/test.html._data':
528 '''.replaceAll('\n ', '\n'), 568 expectedData(['web/a.dart'], experimental: true),
569 'a|web/a.dart':
570 'library a;\n'
571 'import "package:polymer/polymer.broken.import.dart";\n'
572 '@CustomTag("x-foo")\n'
573 'class XFoo extends PolymerElement {\n'
574 '}\n'
575 'main(){}',
576 }, {
577 'a|web/test.html_bootstrap.dart':
578 '''$MAIN_HEADER
579 import 'a.dart' as i0;
580 ${DEFAULT_IMPORTS.join('\n')}
529 581
530 }, [ 582 void main() {
531 'warning: $NO_INITIALIZERS_ERROR', 583 useGeneratedCode(new StaticConfiguration(
532 ]); 584 checkedMode: false));
585 startPolymer([]);
586 }
587 '''.replaceAll('\n ', '\n'),
588
589 });
533 590
534 testPhases('several scripts', phases, { 591 testPhases('several scripts', phases, {
535 'a|web/test.html': 592 'a|web/test.html':
536 '<!DOCTYPE html><html><head>' 593 '<!DOCTYPE html><html><head>'
537 '</head><body><div></div>', 594 '</head><body><div></div>',
538 'a|web/test.html._data': 595 'a|web/test.html._data':
539 expectedData(['web/a.dart', 'web/b.dart', 'web/c.dart', 'web/d.dart'], experimental: true), 596 expectedData(['web/a.dart', 'web/b.dart', 'web/c.dart', 'web/d.dart'], experimental: true),
540 'a|web/d.dart': 597 'a|web/d.dart':
541 'library d;\n' 598 'library d;\n'
542 'import "package:polymer/polymer.dart";\n' 599 'import "package:polymer/polymer.dart";\n'
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 })); 1143 }));
1087 configureForDeployment([ 1144 configureForDeployment([
1088 () => Polymer.register(\'x-foo\', i0.XFoo), 1145 () => Polymer.register(\'x-foo\', i0.XFoo),
1089 ]); 1146 ]);
1090 i0.main(); 1147 i0.main();
1091 } 1148 }
1092 '''.replaceAll('\n ', '\n'), 1149 '''.replaceAll('\n ', '\n'),
1093 }); 1150 });
1094 } 1151 }
1095 1152
1153 void logElementInjectionTests() {
1154 final outputLogsPhases = [[new ScriptCompactor(
1155 new TransformOptions(injectBuildLogsInOutput: true, releaseMode: false),
1156 sdkDir: testingDartSdkDirectory)]];
1157
1158 testPhases('Injects logging element and styles', outputLogsPhases, {
1159 'a|web/test.html': '<!DOCTYPE html><html><head>',
1160 'a|web/test.html._data': expectedData(['web/a.dart']),
1161 'a|web/a.dart':
1162 'library a;\n'
1163 'import "package:polymer/polymer.dart";\n'
1164 'main(){}',
1165 }, {
1166 'a|web/test.html':
1167 '<!DOCTYPE html><html><head>'
1168 '<link rel="stylesheet" type="text/css" '
1169 'href="packages/polymer/src/build/log_injector.css">'
1170 '</head><body>'
1171 '<script type="application/dart" '
1172 'src="test.html_bootstrap.dart"></script>'
1173 '</body></html>',
1174 'a|web/test.html_bootstrap.dart':
1175 '''$MAIN_HEADER
1176 import 'a.dart' as i0;
1177 import 'package:polymer/src/build/log_injector.dart';
1178 ${DEFAULT_IMPORTS.join('\n')}
1179
1180 void main() {
1181 useGeneratedCode(new StaticConfiguration(
1182 checkedMode: false));
1183 new LogInjector().injectLogsFromUrl();
1184 configureForDeployment([]);
1185 i0.main();
1186 }
1187 '''.replaceAll('\n ', '\n'),
1188 'a|web/a.dart':
1189 'library a;\n'
1190 'import "package:polymer/polymer.dart";\n'
1191 'main(){}',
1192 });
1193 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698