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

Unified Diff: packages/polymer/test/build/all_phases_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/polymer/test/bind_test.html ('k') | packages/polymer/test/build/build_log_combiner_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/polymer/test/build/all_phases_test.dart
diff --git a/packages/polymer/test/build/all_phases_test.dart b/packages/polymer/test/build/all_phases_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..05868228231fb556191574efe30d8ffaffe35440
--- /dev/null
+++ b/packages/polymer/test/build/all_phases_test.dart
@@ -0,0 +1,323 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library polymer.test.build.all_phases_test;
+
+import 'package:code_transformers/tests.dart' show testingDartSdkDirectory;
+import 'package:polymer/src/build/common.dart';
+import 'package:polymer/src/build/polymer_smoke_generator.dart'
+ show MAIN_HEADER;
+import 'package:polymer/transformer.dart';
+import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS;
+import 'package:unittest/compact_vm_config.dart';
+
+import 'common.dart';
+
+void main() {
+ useCompactVMConfiguration();
+ var phases = createDeployPhases(new TransformOptions(),
+ sdkDir: testingDartSdkDirectory);
+
+ testPhases('observable changes', phases, {
+ 'a|web/test.dart': _sampleInput('A', 'foo'),
+ 'a|web/test2.dart': _sampleOutput('B', 'bar'),
+ }, {
+ 'a|web/test.dart': _sampleOutput('A', 'foo'),
+ 'a|web/test2.dart': _sampleOutput('B', 'bar'),
+ });
+
+ testPhases('single script', phases, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="packages/polymer/polymer.html">'
+ '<script type="application/dart" src="a.dart"></script>',
+ 'a|web/a.dart': _sampleInput('A', 'foo'),
+ }, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '$COMPATIBILITY_JS_TAGS'
+ '</head><body><div hidden="">'
+ '<script src="test.html.polymer.bootstrap.dart.js" async=""></script>'
+ '</div>'
+ '</body></html>',
+ 'a|web/test.html.polymer.bootstrap.dart': '''$MAIN_HEADER
+ import 'test.web_components.bootstrap.dart' as i0;
+ ${DEFAULT_IMPORTS.join('\n')}
+ import 'package:polymer/polymer.dart' as smoke_0;
+ import 'a.dart' as smoke_1;
+
+ main() {
+ useGeneratedCode(new StaticConfiguration(
+ checkedMode: false,
+ parents: {
+ smoke_1.XA: smoke_0.PolymerElement,
+ },
+ declarations: {
+ smoke_1.XA: {},
+ smoke_0.PolymerElement: {},
+ }));
+ configureForDeployment();
+ return i0.main();
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test.web_components.bootstrap.dart': '''
+ import 'package:initialize/src/static_loader.dart';
+ import 'package:initialize/initialize.dart';
+ import 'test.bootstrap.dart' as i0;
+ import 'a.dart' as i1;
+ import 'package:polymer/polymer.dart' as i2;
+
+ main() {
+ initializers.addAll([new InitEntry(const i2.CustomTag('x-A'), i1.XA),]);
+
+ return i0.main();
+ }
+ '''.replaceAll(' ', ''),
+ 'a|web/test.bootstrap.dart': '''
+ library a.web.test_bootstrap_dart;
+
+ import 'a.dart' as i0;
+
+ main() => i0.main();
+ '''.replaceAll(' ', ''),
+ }, []);
+
+ testPhases('single script in subfolder', phases, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="packages/polymer/polymer.html">'
+ '<script type="application/dart" src="foo/a.dart"></script>',
+ 'a|web/foo/a.dart': _sampleInput('A', 'foo'),
+ }, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '$COMPATIBILITY_JS_TAGS'
+ '</head><body><div hidden="">'
+ '<script src="test.html.polymer.bootstrap.dart.js" async=""></script>'
+ '</div>'
+ '</body></html>',
+ 'a|web/test.html.polymer.bootstrap.dart': '''$MAIN_HEADER
+ import 'test.web_components.bootstrap.dart' as i0;
+ ${DEFAULT_IMPORTS.join('\n')}
+ import 'package:polymer/polymer.dart' as smoke_0;
+ import 'foo/a.dart' as smoke_1;
+
+ main() {
+ useGeneratedCode(new StaticConfiguration(
+ checkedMode: false,
+ parents: {
+ smoke_1.XA: smoke_0.PolymerElement,
+ },
+ declarations: {
+ smoke_1.XA: {},
+ smoke_0.PolymerElement: {},
+ }));
+ configureForDeployment();
+ return i0.main();
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test.web_components.bootstrap.dart': '''
+ import 'package:initialize/src/static_loader.dart';
+ import 'package:initialize/initialize.dart';
+ import 'test.bootstrap.dart' as i0;
+ import 'foo/a.dart' as i1;
+ import 'package:polymer/polymer.dart' as i2;
+
+ main() {
+ initializers.addAll([new InitEntry(const i2.CustomTag('x-A'), i1.XA),]);
+
+ return i0.main();
+ }
+ '''.replaceAll(' ', ''),
+ 'a|web/test.bootstrap.dart': '''
+ library a.web.test_bootstrap_dart;
+
+ import 'foo/a.dart' as i0;
+
+ main() => i0.main();
+ '''.replaceAll(' ', ''),
+ }, []);
+
+ testPhases('single inline script', phases, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="packages/polymer/polymer.html">'
+ '<script type="application/dart">'
+ '${_sampleInput("B", "bar")}</script>',
+ }, {
+ 'a|web/test.html': '<!DOCTYPE html><html><head>'
+ '$COMPATIBILITY_JS_TAGS'
+ '</head><body><div hidden="">'
+ '<script src="test.html.polymer.bootstrap.dart.js" async=""></script>'
+ '</div>'
+ '</body></html>',
+ 'a|web/test.html.polymer.bootstrap.dart': '''$MAIN_HEADER
+ import 'test.web_components.bootstrap.dart' as i0;
+ ${DEFAULT_IMPORTS.join('\n')}
+ import 'package:polymer/polymer.dart' as smoke_0;
+ import 'test.html.0.dart' as smoke_1;
+
+ main() {
+ useGeneratedCode(new StaticConfiguration(
+ checkedMode: false,
+ parents: {
+ smoke_1.XB: smoke_0.PolymerElement,
+ },
+ declarations: {
+ smoke_0.PolymerElement: {},
+ smoke_1.XB: {},
+ }));
+ configureForDeployment();
+ return i0.main();
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test.web_components.bootstrap.dart': '''
+ import 'package:initialize/src/static_loader.dart';
+ import 'package:initialize/initialize.dart';
+ import 'test.bootstrap.dart' as i0;
+ import 'test.html.0.dart' as i1;
+ import 'package:polymer/polymer.dart' as i2;
+
+ main() {
+ initializers.addAll([new InitEntry(const i2.CustomTag('x-B'), i1.XB),]);
+
+ return i0.main();
+ }
+ '''.replaceAll(' ', ''),
+ 'a|web/test.bootstrap.dart': '''
+ library a.web.test_bootstrap_dart;
+
+ import 'test.html.0.dart' as i0;
+
+ main() => i0.main();
+ '''.replaceAll(' ', ''),
+ 'a|web/test.html.0.dart': _sampleOutput("B", "bar"),
+ }, []);
+
+ testPhases('with imports', phases, {
+ 'a|web/index.html': '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="packages/polymer/polymer.html">'
+ '<link rel="import" href="packages/a/test2.html">'
+ '</head><body>'
+ '<script type="application/dart" src="b.dart"></script>',
+ 'a|web/b.dart': _sampleInput('B', 'bar'),
+ 'a|lib/test2.html': '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="../../packages/polymer/polymer.html">'
+ '</head><body>'
+ '<polymer-element name="x-a">1'
+ '<script type="application/dart">'
+ '${_sampleInput("A", "foo")}</script>'
+ '</polymer-element></html>',
+ }, {
+ 'a|web/index.html': '<!DOCTYPE html><html><head>'
+ '$COMPATIBILITY_JS_TAGS'
+ '</head><body>'
+ '<div hidden="">'
+ '<polymer-element name="x-a">1</polymer-element>'
+ '</div>'
+ '<script src="index.html.polymer.bootstrap.dart.js" async=""></script>'
+ '</body></html>',
+ 'a|web/index.html.polymer.bootstrap.dart': '''$MAIN_HEADER
+ import 'index.web_components.bootstrap.dart' as i0;
+ ${DEFAULT_IMPORTS.join('\n')}
+ import 'package:polymer/polymer.dart' as smoke_0;
+ import 'index.html.0.dart' as smoke_1;
+ import 'b.dart' as smoke_2;
+
+ main() {
+ useGeneratedCode(new StaticConfiguration(
+ checkedMode: false,
+ parents: {
+ smoke_2.XB: smoke_0.PolymerElement,
+ smoke_1.XA: smoke_0.PolymerElement,
+ },
+ declarations: {
+ smoke_2.XB: {},
+ smoke_1.XA: {},
+ smoke_0.PolymerElement: {},
+ }));
+ configureForDeployment();
+ return i0.main();
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/index.web_components.bootstrap.dart': '''
+ import 'package:initialize/src/static_loader.dart';
+ import 'package:initialize/initialize.dart';
+ import 'index.bootstrap.dart' as i0;
+ import 'index.html.0.dart' as i1;
+ import 'package:polymer/polymer.dart' as i2;
+ import 'b.dart' as i3;
+
+ main() {
+ initializers.addAll([
+ new InitEntry(const i2.CustomTag('x-A'), i1.XA),
+ new InitEntry(const i2.CustomTag('x-B'), i3.XB),
+ ]);
+
+ return i0.main();
+ }
+ '''.replaceAll(' ', ''),
+ 'a|web/index.bootstrap.dart': '''
+ library a.web.index_bootstrap_dart;
+
+ import 'index.html.0.dart' as i0;
+ import 'b.dart' as i1;
+
+ main() => i1.main();
+ '''.replaceAll(' ', ''),
+ 'a|web/index.html.0.dart': _sampleOutput("A", "foo"),
+ }, []);
+
+ testPhases('test compatibility', phases, {
+ 'a|test/test.html': '<!DOCTYPE html><html><head>'
+ '<link rel="x-dart-test" href="a.dart">'
+ '<script src="packages/test/dart.js"></script>',
+ 'a|test/a.dart': _sampleInput('A', 'foo'),
+ }, {
+ 'a|test/test.html': '<!DOCTYPE html><html><head>'
+ '$COMPATIBILITY_JS_TAGS'
+ '<link rel="x-dart-test" href="test.html.polymer.bootstrap.dart">'
+ '<script src="packages/test/dart.js"></script>'
+ '</head><body></body></html>',
+ }, []);
+}
+
+String _sampleInput(String className, String fieldName) => '''
+library ${className}_$fieldName;
+import 'package:observe/observe.dart';
+import 'package:polymer/polymer.dart';
+
+class $className extends Observable {
+ @observable int $fieldName;
+ $className(this.$fieldName);
+}
+
+@CustomTag('x-$className')
+class X${className} extends PolymerElement {
+ X${className}.created() : super.created();
+}
+@initMethod m_$fieldName() {}
+main() {}
+''';
+
+String _sampleOutput(String className, String fieldName) {
+ var fieldReplacement = '@reflectable @observable '
+ 'int get $fieldName => __\$$fieldName; '
+ 'int __\$$fieldName; '
+ '@reflectable set $fieldName(int value) { '
+ '__\$$fieldName = notifyPropertyChange(#$fieldName, '
+ '__\$$fieldName, value); }';
+ return '''
+library ${className}_$fieldName;
+import 'package:observe/observe.dart';
+import 'package:polymer/polymer.dart';
+
+class $className extends ChangeNotifier {
+ $fieldReplacement
+ $className($fieldName) : __\$$fieldName = $fieldName;
+}
+
+@CustomTag('x-$className')
+class X${className} extends PolymerElement {
+ X${className}.created() : super.created();
+}
+@initMethod m_$fieldName() {}
+main() {}
+''';
+}
« no previous file with comments | « packages/polymer/test/bind_test.html ('k') | packages/polymer/test/build/build_log_combiner_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698