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

Unified Diff: pkg/polymer/test/transform/all_phases_test.dart

Issue 23011045: Declare the sequence of phases for the full polymer transform and add tests for (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/polymer/test/run_all.dart ('k') | pkg/polymer/test/transform/script_compactor_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/polymer/test/transform/all_phases_test.dart
diff --git a/pkg/polymer/test/transform/all_phases_test.dart b/pkg/polymer/test/transform/all_phases_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..a644fe5e5f30b06c0b9cd5751ec6e260b117d151
--- /dev/null
+++ b/pkg/polymer/test/transform/all_phases_test.dart
@@ -0,0 +1,206 @@
+// 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.transform.script_compactor_test;
+
+import 'package:polymer/src/transform.dart';
+import 'package:unittest/compact_vm_config.dart';
+
+import 'common.dart';
+
+void main() {
+ useCompactVMConfiguration();
+
+ testPhases('no changes', phases, {
+ 'a|web/test.html': '<!DOCTYPE html><html></html>',
+ }, {
+ 'a|web/test.html': '<!DOCTYPE html><html></html>',
+ });
+
+ testPhases('observable changes', phases, {
+ 'a|web/test.dart': _sampleObservable('A', 'foo'),
+ 'a|web/test2.dart': _sampleObservableOutput('B', 'bar'),
+ }, {
+ 'a|web/test.dart': _sampleObservableOutput('A', 'foo'),
+ 'a|web/test2.dart': _sampleObservableOutput('B', 'bar'),
+ });
+
+ testPhases('single script', phases, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head>'
+ '<script type="application/dart" src="a.dart"></script>',
+ 'a|web/test.dart': _sampleObservable('A', 'foo'),
+ }, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head></head><body>'
+ '<script type="application/dart" '
+ 'src="test.html_bootstrap.dart"></script>'
+ '<script type="text/javascript" '
+ 'src="packages/browser/dart.js"></script>'
+ '</body></html>',
+
+ 'a|web/test.html_bootstrap.dart':
+ '''library app_bootstrap;
+
+ import 'package:polymer/polymer.dart';
+ import 'dart:mirrors' show currentMirrorSystem;
+
+ import 'a.dart' as i0;
+
+ void main() {
+ initPolymer([
+ 'a.dart',
+ ], currentMirrorSystem().isolate.rootLibrary.uri.toString());
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test.dart': _sampleObservableOutput('A', 'foo'),
+ });
+
+ testPhases('single inline script', phases, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head>'
+ '<script type="application/dart">'
+ '${_sampleObservable("B", "bar")}</script>',
+ }, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head></head><body>'
+ '<script type="application/dart" '
+ 'src="test.html_bootstrap.dart"></script>'
+ '<script type="text/javascript" '
+ 'src="packages/browser/dart.js"></script>'
+ '</body></html>',
+
+ 'a|web/test.html_bootstrap.dart':
+ '''library app_bootstrap;
+
+ import 'package:polymer/polymer.dart';
+ import 'dart:mirrors' show currentMirrorSystem;
+
+ import 'test.html.0.dart' as i0;
+
+ void main() {
+ initPolymer([
+ 'test.html.0.dart',
+ ], currentMirrorSystem().isolate.rootLibrary.uri.toString());
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test.html.0.dart': _sampleObservableOutput("B", "bar"),
+ });
+
+ testPhases('several scripts', phases, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head>'
+ '<script type="application/dart" src="a.dart"></script>'
+ '<script type="application/dart">'
+ '${_sampleObservable("B", "bar")}</script>'
+ '</head><body><div>'
+ '<script type="application/dart">'
+ '${_sampleObservable("C", "car")}</script>'
+ '</div>'
+ '<script type="application/dart" src="d.dart"></script>',
+ 'a|web/a.dart': _sampleObservable('A', 'foo'),
+ }, {
+ 'a|web/test.html':
+ '<!DOCTYPE html><html><head></head><body><div></div>'
+ '<script type="application/dart" '
+ 'src="test.html_bootstrap.dart"></script>'
+ '<script type="text/javascript" '
+ 'src="packages/browser/dart.js"></script>'
+ '</body></html>',
+
+ 'a|web/test.html_bootstrap.dart':
+ '''library app_bootstrap;
+
+ import 'package:polymer/polymer.dart';
+ import 'dart:mirrors' show currentMirrorSystem;
+
+ import 'a.dart' as i0;
+ import 'test.html.0.dart' as i1;
+ import 'test.html.1.dart' as i2;
+ import 'd.dart' as i3;
+
+ void main() {
+ initPolymer([
+ 'a.dart',
+ 'test.html.0.dart',
+ 'test.html.1.dart',
+ 'd.dart',
+ ], currentMirrorSystem().isolate.rootLibrary.uri.toString());
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/a.dart': _sampleObservableOutput('A', 'foo'),
+ 'a|web/test.html.0.dart': _sampleObservableOutput("B", "bar"),
+ 'a|web/test.html.1.dart': _sampleObservableOutput("C", "car"),
+ });
+
+ testPhases('with imports', phases, {
+ 'a|web/index.html':
+ '<!DOCTYPE html><html><head>'
+ '<link rel="import" href="test2.html">'
+ '</head><body>'
+ '<script type="application/dart" src="b.dart"></script>'
+ '<script type="application/dart">'
+ '${_sampleObservable("C", "car")}</script>',
+ 'a|web/b.dart': _sampleObservable('B', 'bar'),
+ 'a|web/test2.html':
+ '<!DOCTYPE html><html><head>'
+ '</head><body><polymer-element>1'
+ '<script type="application/dart">'
+ '${_sampleObservable("A", "foo")}</script>'
+ '</polymer-element></html>',
+ }, {
+ 'a|web/index.html':
+ '<!DOCTYPE html><html><head></head><body>'
+ '<polymer-element>1</polymer-element>'
+ '<script type="application/dart" '
+ 'src="index.html_bootstrap.dart"></script>'
+ '<script type="text/javascript" '
+ 'src="packages/browser/dart.js"></script>'
+ '</body></html>',
+ 'a|web/index.html_bootstrap.dart':
+ '''library app_bootstrap;
+
+ import 'package:polymer/polymer.dart';
+ import 'dart:mirrors' show currentMirrorSystem;
+
+ import 'test2.html.0.dart' as i0;
+ import 'b.dart' as i1;
+ import 'index.html.0.dart' as i2;
+
+ void main() {
+ initPolymer([
+ 'test2.html.0.dart',
+ 'b.dart',
+ 'index.html.0.dart',
+ ], currentMirrorSystem().isolate.rootLibrary.uri.toString());
+ }
+ '''.replaceAll('\n ', '\n'),
+ 'a|web/test2.html.0.dart': _sampleObservableOutput("A", "foo"),
+ 'a|web/b.dart': _sampleObservableOutput('B', 'bar'),
+ 'a|web/index.html.0.dart': _sampleObservableOutput("C", "car"),
+ });
+}
+
+String _sampleObservable(String className, String fieldName) => '''
+import 'package:observe/observe.dart';
+
+class $className extends ObservableBase {
+ @observable int $fieldName;
+ $className(this.$fieldName);
+}
+''';
+
+String _sampleObservableOutput(String className, String fieldName) => '''
+import 'package:observe/observe.dart';
+
+class $className extends ChangeNotifierBase {
+ int __\$$fieldName;
+ int get $fieldName => __\$$fieldName;
+ set $fieldName(int value) {
+ __\$$fieldName = notifyPropertyChange(const Symbol('$fieldName'), __\$$fieldName, value);
+ }
+
+ $className($fieldName) : __\$$fieldName = $fieldName;
+}
+''';
« no previous file with comments | « pkg/polymer/test/run_all.dart ('k') | pkg/polymer/test/transform/script_compactor_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698