Index: pkg/polymer/test/build/script_compactor_test.dart |
diff --git a/pkg/polymer/test/build/script_compactor_test.dart b/pkg/polymer/test/build/script_compactor_test.dart |
index ba536305d9b90ea31c60c36c2eabe4eac358a444..60dc5855e70934397cf6d9ba71fda3f2b3e0cd8a 100644 |
--- a/pkg/polymer/test/build/script_compactor_test.dart |
+++ b/pkg/polymer/test/build/script_compactor_test.dart |
@@ -4,6 +4,8 @@ |
library polymer.test.build.script_compactor_test; |
+import 'dart:convert'; |
+ |
import 'package:code_transformers/tests.dart' show testingDartSdkDirectory; |
import 'package:polymer/src/build/common.dart'; |
import 'package:polymer/src/build/script_compactor.dart'; |
@@ -20,6 +22,7 @@ void main() { |
group('initializers', () => initializerTests(phases)); |
group('experimental', () => initializerTestsExperimental(phases)); |
group('codegen', () => codegenTests(phases)); |
+ group('log element injection', logElementInjectionTests); |
} |
initializerTests(phases) { |
@@ -153,43 +156,61 @@ initializerTests(phases) { |
'''.replaceAll('\n ', '\n'), |
}); |
- testPhases('invalid const expression', phases, { |
- 'a|web/test.html': |
- '<!DOCTYPE html><html><head>', |
- 'a|web/test.html._data': expectedData(['web/a.dart']), |
- 'a|web/a.dart': |
- 'library a;\n' |
- 'import "package:polymer/polymer.dart";\n' |
- '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
- 'class XFoo extends PolymerElement {\n' |
- '}\n' |
- 'main(){}', |
- }, { |
- 'a|web/test.html_bootstrap.dart': |
- '''$MAIN_HEADER |
- import 'a.dart' as i0; |
- ${DEFAULT_IMPORTS.join('\n')} |
- import 'a.dart' as smoke_0; |
- import 'package:polymer/polymer.dart' as smoke_1; |
- void main() { |
- useGeneratedCode(new StaticConfiguration( |
- checkedMode: false, |
- parents: { |
- smoke_0.XFoo: smoke_1.PolymerElement, |
- }, |
- declarations: { |
- smoke_0.XFoo: {}, |
- })); |
- configureForDeployment([]); |
- i0.main(); |
- } |
- '''.replaceAll('\n ', '\n'), |
+ testLogOutput( |
+ (options) => |
+ new ScriptCompactor(options, sdkDir: testingDartSdkDirectory), |
+ 'invalid const expression logs', { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': expectedData(['web/a.dart']), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, {}, [ |
+ 'warning: The parameter to @CustomTag seems to be invalid. ' |
+ '(web/a.dart 2 11)', |
+ ]); |
+ |
+ testPhases( |
+ 'invalid const expression', phases, { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': expectedData(['web/a.dart']), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, { |
+ 'a|web/test.html_bootstrap.dart': |
+ '''$MAIN_HEADER |
+ import 'a.dart' as i0; |
+ ${DEFAULT_IMPORTS.join('\n')} |
+ import 'a.dart' as smoke_0; |
+ import 'package:polymer/polymer.dart' as smoke_1; |
+ |
+ void main() { |
+ useGeneratedCode(new StaticConfiguration( |
+ checkedMode: false, |
+ parents: { |
+ smoke_0.XFoo: smoke_1.PolymerElement, |
+ }, |
+ declarations: { |
+ smoke_0.XFoo: {}, |
+ })); |
+ configureForDeployment([]); |
+ i0.main(); |
+ } |
+ '''.replaceAll('\n ', '\n'), |
- }, [ |
- 'warning: The parameter to @CustomTag seems to be invalid. ' |
- '(web/a.dart 2 11)', |
- ]); |
+ }); |
testPhases('no polymer import (no warning, but no crash either)', phases, { |
'a|web/test.html': |
@@ -465,71 +486,107 @@ initializerTestsExperimental(phases) { |
'''.replaceAll('\n ', '\n'), |
}); |
- testPhases('invalid const expression', phases, { |
- 'a|web/test.html': |
- '<!DOCTYPE html><html><head>', |
- 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true), |
- 'a|web/a.dart': |
- 'library a;\n' |
- 'import "package:polymer/polymer.dart";\n' |
- '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
- 'class XFoo extends PolymerElement {\n' |
- '}\n' |
- 'main(){}', |
- }, { |
- 'a|web/test.html_bootstrap.dart': |
- '''$MAIN_HEADER |
- import 'a.dart' as i0; |
- ${DEFAULT_IMPORTS.join('\n')} |
- import 'a.dart' as smoke_0; |
- import 'package:polymer/polymer.dart' as smoke_1; |
- |
- void main() { |
- useGeneratedCode(new StaticConfiguration( |
- checkedMode: false, |
- parents: { |
- smoke_0.XFoo: smoke_1.PolymerElement, |
- }, |
- declarations: { |
- smoke_0.XFoo: {}, |
- })); |
- startPolymer([]); |
- } |
- '''.replaceAll('\n ', '\n'), |
- |
- }, [ |
- 'warning: The parameter to @CustomTag seems to be invalid. ' |
- '(web/a.dart 2 11)', |
- 'warning: $NO_INITIALIZERS_ERROR', |
- ]); |
- |
- testPhases('no polymer import (no warning, but no crash either)', phases, { |
- 'a|web/test.html': |
- '<!DOCTYPE html><html><head>', |
- 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true), |
- 'a|web/a.dart': |
- 'library a;\n' |
- 'import "package:polymer/polymer.broken.import.dart";\n' |
- '@CustomTag("x-foo")\n' |
- 'class XFoo extends PolymerElement {\n' |
- '}\n' |
- 'main(){}', |
- }, { |
- 'a|web/test.html_bootstrap.dart': |
- '''$MAIN_HEADER |
- import 'a.dart' as i0; |
- ${DEFAULT_IMPORTS.join('\n')} |
- |
- void main() { |
- useGeneratedCode(new StaticConfiguration( |
- checkedMode: false)); |
- startPolymer([]); |
- } |
- '''.replaceAll('\n ', '\n'), |
- |
- }, [ |
- 'warning: $NO_INITIALIZERS_ERROR', |
- ]); |
+ testLogOutput( |
+ (options) => |
+ new ScriptCompactor(options, sdkDir: testingDartSdkDirectory), |
+ 'invalid const expression logs', { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': |
+ expectedData(['web/a.dart'], experimental: true), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, {}, [ |
+ 'warning: The parameter to @CustomTag seems to be invalid. ' |
+ '(web/a.dart 2 11)', |
+ 'warning: $NO_INITIALIZERS_ERROR', |
+ ]); |
+ |
+ testPhases( |
+ 'invalid const expression', phases, { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': |
+ expectedData(['web/a.dart'], experimental: true), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ '@CustomTag("\${x}-foo")\n' // invalid, x is not defined |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, { |
+ 'a|web/test.html_bootstrap.dart': |
+ '''$MAIN_HEADER |
+ import 'a.dart' as i0; |
+ ${DEFAULT_IMPORTS.join('\n')} |
+ import 'a.dart' as smoke_0; |
+ import 'package:polymer/polymer.dart' as smoke_1; |
+ |
+ void main() { |
+ useGeneratedCode(new StaticConfiguration( |
+ checkedMode: false, |
+ parents: { |
+ smoke_0.XFoo: smoke_1.PolymerElement, |
+ }, |
+ declarations: { |
+ smoke_0.XFoo: {}, |
+ })); |
+ startPolymer([]); |
+ } |
+ '''.replaceAll('\n ', '\n'), |
+ }); |
+ |
+ testLogOutput( |
+ (options) => |
+ new ScriptCompactor(options, sdkDir: testingDartSdkDirectory), |
+ 'no polymer import logs', { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': expectedData(['web/a.dart'], experimental: true), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.broken.import.dart";\n' |
+ '@CustomTag("x-foo")\n' |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, {}, [ |
+ 'warning: $NO_INITIALIZERS_ERROR', |
+ ]); |
+ |
+ testPhases( |
+ 'no polymer import', phases, { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': |
+ expectedData(['web/a.dart'], experimental: true), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.broken.import.dart";\n' |
+ '@CustomTag("x-foo")\n' |
+ 'class XFoo extends PolymerElement {\n' |
+ '}\n' |
+ 'main(){}', |
+ }, { |
+ 'a|web/test.html_bootstrap.dart': |
+ '''$MAIN_HEADER |
+ import 'a.dart' as i0; |
+ ${DEFAULT_IMPORTS.join('\n')} |
+ |
+ void main() { |
+ useGeneratedCode(new StaticConfiguration( |
+ checkedMode: false)); |
+ startPolymer([]); |
+ } |
+ '''.replaceAll('\n ', '\n'), |
+ |
+ }); |
testPhases('several scripts', phases, { |
'a|web/test.html': |
@@ -1093,3 +1150,44 @@ codegenTests(phases) { |
}); |
} |
+void logElementInjectionTests() { |
+ final outputLogsPhases = [[new ScriptCompactor( |
+ new TransformOptions(injectBuildLogsInOutput: true, releaseMode: false), |
+ sdkDir: testingDartSdkDirectory)]]; |
+ |
+ testPhases('Injects logging element and styles', outputLogsPhases, { |
+ 'a|web/test.html': '<!DOCTYPE html><html><head>', |
+ 'a|web/test.html._data': expectedData(['web/a.dart']), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ 'main(){}', |
+ }, { |
+ 'a|web/test.html': |
+ '<!DOCTYPE html><html><head>' |
+ '<link rel="stylesheet" type="text/css" ' |
+ 'href="packages/polymer/src/build/log_injector.css">' |
+ '</head><body>' |
+ '<script type="application/dart" ' |
+ 'src="test.html_bootstrap.dart"></script>' |
+ '</body></html>', |
+ 'a|web/test.html_bootstrap.dart': |
+ '''$MAIN_HEADER |
+ import 'a.dart' as i0; |
+ import 'package:polymer/src/build/log_injector.dart'; |
+ ${DEFAULT_IMPORTS.join('\n')} |
+ |
+ void main() { |
+ useGeneratedCode(new StaticConfiguration( |
+ checkedMode: false)); |
+ new LogInjector().injectLogsFromUrl(); |
+ configureForDeployment([]); |
+ i0.main(); |
+ } |
+ '''.replaceAll('\n ', '\n'), |
+ 'a|web/a.dart': |
+ 'library a;\n' |
+ 'import "package:polymer/polymer.dart";\n' |
+ 'main(){}', |
+ }); |
+} |