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

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

Issue 211393006: Enables codegen support in polymer (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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
« no previous file with comments | « pkg/polymer/pubspec.yaml ('k') | pkg/polymer/test/build/common.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.all_phases_test; 5 library polymer.test.build.all_phases_test;
6 6
7 import 'package:code_transformers/tests.dart' show testingDartSdkDirectory;
7 import 'package:polymer/src/build/common.dart'; 8 import 'package:polymer/src/build/common.dart';
8 import 'package:polymer/src/build/script_compactor.dart' show MAIN_HEADER; 9 import 'package:polymer/src/build/script_compactor.dart' show MAIN_HEADER;
9 import 'package:polymer/transformer.dart'; 10 import 'package:polymer/transformer.dart';
11 import 'package:smoke/codegen/generator.dart' show DEFAULT_IMPORTS;
10 import 'package:unittest/compact_vm_config.dart'; 12 import 'package:unittest/compact_vm_config.dart';
11 13
12 import 'common.dart'; 14 import 'common.dart';
13 15
14 void main() { 16 void main() {
15 useCompactVMConfiguration(); 17 useCompactVMConfiguration();
16 var phases = new PolymerTransformerGroup(new TransformOptions()).phases; 18 var phases = createDeployPhases(new TransformOptions(),
19 sdkDir: testingDartSdkDirectory);
17 20
18 testPhases('no changes', phases, { 21 testPhases('no changes', phases, {
19 'a|web/test.html': '<!DOCTYPE html><html></html>', 22 'a|web/test.html': '<!DOCTYPE html><html></html>',
20 }, {}, [ 23 }, {}, [
21 'error: To run a polymer application, you need to call "initPolymer". You' 24 'error: To run a polymer application, you need to call "initPolymer". You'
22 ' can either include a generic script tag that does this for you:\'<' 25 ' can either include a generic script tag that does this for you:\'<'
23 'script type="application/dart">export "package:polymer/init.dart";' 26 'script type="application/dart">export "package:polymer/init.dart";'
24 '</script>\' or add your own script tag and call that function. Make sure' 27 '</script>\' or add your own script tag and call that function. Make sure'
25 ' the script tag is placed after all HTML imports.' 28 ' the script tag is placed after all HTML imports.'
26 ]); 29 ]);
(...skipping 15 matching lines...) Expand all
42 'a|web/test.html': 45 'a|web/test.html':
43 '<!DOCTYPE html><html><head>' 46 '<!DOCTYPE html><html><head>'
44 '$WEB_COMPONENTS_TAG' 47 '$WEB_COMPONENTS_TAG'
45 '$INTEROP_TAG' 48 '$INTEROP_TAG'
46 '<script src="test.html_bootstrap.dart.js"></script>' 49 '<script src="test.html_bootstrap.dart.js"></script>'
47 '</head><body></body></html>', 50 '</head><body></body></html>',
48 51
49 'a|web/test.html_bootstrap.dart': 52 'a|web/test.html_bootstrap.dart':
50 '''$MAIN_HEADER 53 '''$MAIN_HEADER
51 import 'a.dart' as i0; 54 import 'a.dart' as i0;
55 ${DEFAULT_IMPORTS.join('\n')}
52 56
53 void main() { 57 void main() {
58 useGeneratedCode(new StaticConfiguration(
59 checkedMode: false));
54 configureForDeployment([ 60 configureForDeployment([
55 ]); 61 ]);
56 i0.main(); 62 i0.main();
57 } 63 }
58 '''.replaceAll('\n ', '\n'), 64 '''.replaceAll('\n ', '\n'),
59 'a|web/a.dart': _sampleObservableOutput('A', 'foo'), 65 'a|web/a.dart': _sampleObservableOutput('A', 'foo'),
60 }); 66 });
61 67
62 testPhases('single inline script', phases, { 68 testPhases('single inline script', phases, {
63 'a|web/test.html': 69 'a|web/test.html':
64 '<!DOCTYPE html><html><head>' 70 '<!DOCTYPE html><html><head>'
65 '<script type="application/dart">' 71 '<script type="application/dart">'
66 '${_sampleObservable("B", "bar")}</script>', 72 '${_sampleObservable("B", "bar")}</script>',
67 }, { 73 }, {
68 'a|web/test.html': 74 'a|web/test.html':
69 '<!DOCTYPE html><html><head>' 75 '<!DOCTYPE html><html><head>'
70 '$WEB_COMPONENTS_TAG' 76 '$WEB_COMPONENTS_TAG'
71 '$INTEROP_TAG' 77 '$INTEROP_TAG'
72 '</head><body>' 78 '</head><body>'
73 '<script src="test.html_bootstrap.dart.js"></script>' 79 '<script src="test.html_bootstrap.dart.js"></script>'
74 '</body></html>', 80 '</body></html>',
75 81
76 'a|web/test.html_bootstrap.dart': 82 'a|web/test.html_bootstrap.dart':
77 '''$MAIN_HEADER 83 '''$MAIN_HEADER
78 import 'test.html.0.dart' as i0; 84 import 'test.html.0.dart' as i0;
85 ${DEFAULT_IMPORTS.join('\n')}
79 86
80 void main() { 87 void main() {
88 useGeneratedCode(new StaticConfiguration(
89 checkedMode: false));
81 configureForDeployment([ 90 configureForDeployment([
82 ]); 91 ]);
83 i0.main(); 92 i0.main();
84 } 93 }
85 '''.replaceAll('\n ', '\n'), 94 '''.replaceAll('\n ', '\n'),
86 'a|web/test.html.0.dart': 95 'a|web/test.html.0.dart':
87 _sampleObservableOutput("B", "bar"), 96 _sampleObservableOutput("B", "bar"),
88 }); 97 });
89 98
90 const onlyOne = 'warning: Only one "application/dart" script tag per document' 99 const onlyOne = 'warning: Only one "application/dart" script tag per document'
(...skipping 24 matching lines...) Expand all
115 '$WEB_COMPONENTS_TAG' 124 '$WEB_COMPONENTS_TAG'
116 '$INTEROP_TAG' 125 '$INTEROP_TAG'
117 '</head><body>' 126 '</head><body>'
118 '<script src="test.html_bootstrap.dart.js"></script>' 127 '<script src="test.html_bootstrap.dart.js"></script>'
119 '<div></div>' 128 '<div></div>'
120 '</body></html>', 129 '</body></html>',
121 130
122 'a|web/test.html_bootstrap.dart': 131 'a|web/test.html_bootstrap.dart':
123 '''$MAIN_HEADER 132 '''$MAIN_HEADER
124 import 'a.dart' as i0; 133 import 'a.dart' as i0;
134 ${DEFAULT_IMPORTS.join('\n')}
125 135
126 void main() { 136 void main() {
137 useGeneratedCode(new StaticConfiguration(
138 checkedMode: false));
127 configureForDeployment([ 139 configureForDeployment([
128 ]); 140 ]);
129 i0.main(); 141 i0.main();
130 } 142 }
131 '''.replaceAll('\n ', '\n'), 143 '''.replaceAll('\n ', '\n'),
132 'a|web/a.dart': _sampleObservableOutput('A', 'foo'), 144 'a|web/a.dart': _sampleObservableOutput('A', 'foo'),
133 }, [ 145 }, [
134 // These should not be emitted multiple times. See: 146 // These should not be emitted multiple times. See:
135 // https://code.google.com/p/dart/issues/detail?id=17197 147 // https://code.google.com/p/dart/issues/detail?id=17197
136 '$onlyOne (web/test.html 0 81)', 148 '$onlyOne (web/test.html 0 81)',
137 '$onlyOne (web/test.html 7 27)', 149 '$onlyOne (web/test.html 8 27)',
138 '$onlyOne (web/test.html 14 15)', 150 '$onlyOne (web/test.html 16 15)',
139 '$moreNotSupported (web/test.html 0 81)', 151 '$moreNotSupported (web/test.html 0 81)',
140 '$moreNotSupported (web/test.html 7 27)', 152 '$moreNotSupported (web/test.html 8 27)',
141 '$moreNotSupported (web/test.html 14 15)' 153 '$moreNotSupported (web/test.html 16 15)'
142 ]); 154 ]);
143 155
144 testPhases('with imports', phases, { 156 testPhases('with imports', phases, {
145 'a|web/index.html': 157 'a|web/index.html':
146 '<!DOCTYPE html><html><head>' 158 '<!DOCTYPE html><html><head>'
147 '<link rel="import" href="test2.html">' 159 '<link rel="import" href="test2.html">'
148 '</head><body>' 160 '</head><body>'
149 '<script type="application/dart" src="b.dart"></script>', 161 '<script type="application/dart" src="b.dart"></script>',
150 'a|web/b.dart': _sampleObservable('B', 'bar'), 162 'a|web/b.dart': _sampleObservable('B', 'bar'),
151 'a|web/test2.html': 163 'a|web/test2.html':
152 '<!DOCTYPE html><html><head></head><body>' 164 '<!DOCTYPE html><html><head></head><body>'
153 '<polymer-element name="x-a">1' 165 '<polymer-element name="x-a">1'
154 '<script type="application/dart">' 166 '<script type="application/dart">'
155 '${_sampleObservable("A", "foo")}</script>' 167 '${_sampleObservable("A", "foo")}</script>'
156 '</polymer-element></html>', 168 '</polymer-element></html>',
157 }, { 169 }, {
158 'a|web/index.html': 170 'a|web/index.html':
159 '<!DOCTYPE html><html><head>' 171 '<!DOCTYPE html><html><head>'
160 '$WEB_COMPONENTS_TAG' 172 '$WEB_COMPONENTS_TAG'
161 '$INTEROP_TAG' 173 '$INTEROP_TAG'
162 '</head><body><polymer-element name="x-a">1</polymer-element>' 174 '</head><body><polymer-element name="x-a">1</polymer-element>'
163 '<script src="index.html_bootstrap.dart.js"></script>' 175 '<script src="index.html_bootstrap.dart.js"></script>'
164 '</body></html>', 176 '</body></html>',
165 'a|web/index.html_bootstrap.dart': 177 'a|web/index.html_bootstrap.dart':
166 '''$MAIN_HEADER 178 '''$MAIN_HEADER
167 import 'index.html.0.dart' as i0; 179 import 'index.html.0.dart' as i0;
168 import 'b.dart' as i1; 180 import 'b.dart' as i1;
181 ${DEFAULT_IMPORTS.join('\n')}
169 182
170 void main() { 183 void main() {
184 useGeneratedCode(new StaticConfiguration(
185 checkedMode: false));
171 configureForDeployment([ 186 configureForDeployment([
172 ]); 187 ]);
173 i1.main(); 188 i1.main();
174 } 189 }
175 '''.replaceAll('\n ', '\n'), 190 '''.replaceAll('\n ', '\n'),
176 'a|web/index.html.0.dart': _sampleObservableOutput("A", "foo"), 191 'a|web/index.html.0.dart': _sampleObservableOutput("A", "foo"),
177 'a|web/b.dart': _sampleObservableOutput('B', 'bar'), 192 'a|web/b.dart': _sampleObservableOutput('B', 'bar'),
178 }); 193 });
179 } 194 }
180 195
181 String _sampleObservable(String className, String fieldName) => ''' 196 String _sampleObservable(String className, String fieldName) => '''
182 library ${className}_$fieldName; 197 library ${className}_$fieldName;
183 import 'package:observe/observe.dart'; 198 import 'package:observe/observe.dart';
199 export 'package:polymer/init.dart';
184 200
185 class $className extends Observable { 201 class $className extends Observable {
186 @observable int $fieldName; 202 @observable int $fieldName;
187 $className(this.$fieldName); 203 $className(this.$fieldName);
188 } 204 }
189 '''; 205 ''';
190 206
191 String _sampleObservableOutput(String className, String field, 207 String _sampleObservableOutput(String className, String field,
192 {bool includeMain: false}) => 208 {bool includeMain: false}) =>
193 "library ${className}_$field;\n" 209 "library ${className}_$field;\n"
194 "import 'package:observe/observe.dart';\n\n" 210 "import 'package:observe/observe.dart';\n"
211 "export 'package:polymer/init.dart';\n\n"
195 "class $className extends ChangeNotifier {\n" 212 "class $className extends ChangeNotifier {\n"
196 " @reflectable @observable int get $field => __\$$field; " 213 " @reflectable @observable int get $field => __\$$field; "
197 "int __\$$field; " 214 "int __\$$field; "
198 "@reflectable set $field(int value) { " 215 "@reflectable set $field(int value) { "
199 "__\$$field = notifyPropertyChange(#$field, __\$$field, value); " 216 "__\$$field = notifyPropertyChange(#$field, __\$$field, value); "
200 "}\n" 217 "}\n"
201 " $className($field) : __\$$field = $field;\n" 218 " $className($field) : __\$$field = $field;\n"
202 "}\n"; 219 "}\n";
OLDNEW
« no previous file with comments | « pkg/polymer/pubspec.yaml ('k') | pkg/polymer/test/build/common.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698