OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 @TestOn('vm') | 4 @TestOn('vm') |
5 library initialize.transformer_test; | 5 library initialize.transformer_test; |
6 | 6 |
7 import 'common.dart'; | 7 import 'common.dart'; |
8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
9 import 'package:dart_style/dart_style.dart'; | 9 import 'package:dart_style/dart_style.dart'; |
10 import 'package:initialize/transformer.dart'; | 10 import 'package:initialize/transformer.dart'; |
11 import 'package:test/test.dart'; | 11 import 'package:test/test.dart'; |
12 | 12 |
13 var formatter = new DartFormatter(); | 13 var formatter = new DartFormatter(); |
14 | 14 |
15 main() { | 15 main() { |
16 group('Html entry points', htmlEntryPointTests); | 16 group('Html entry points', htmlEntryPointTests); |
17 group('Dart entry points', dartEntryPointTests); | 17 group('Dart entry points', dartEntryPointTests); |
18 group('InitializerPlugins', pluginTests); | 18 group('InitializerPlugins', pluginTests); |
19 } | 19 } |
20 | 20 |
21 void htmlEntryPointTests() { | 21 void htmlEntryPointTests() { |
22 var phases = [[new InitializeTransformer(['web/*.html'])]]; | 22 var phases = [ |
| 23 [ |
| 24 new InitializeTransformer(['web/*.html']) |
| 25 ] |
| 26 ]; |
23 | 27 |
24 testPhases('basic', phases, { | 28 testPhases('basic', phases, { |
25 'a|web/index.html': ''' | 29 'a|web/index.html': ''' |
26 <html><head></head><body> | 30 <html><head></head><body> |
27 <script type="application/dart" src="index.dart"></script> | 31 <script type="application/dart" src="index.dart"></script> |
28 </body></html> | 32 </body></html> |
29 '''.replaceAll(' ', ''), | 33 ''' |
| 34 .replaceAll(' ', ''), |
30 'a|web/index.dart': ''' | 35 'a|web/index.dart': ''' |
31 library web_foo; | 36 library web_foo; |
32 | 37 |
33 import 'foo.dart'; | 38 import 'foo.dart'; |
34 ''', | 39 ''', |
35 'a|web/foo.dart': ''' | 40 'a|web/foo.dart': ''' |
36 @constInit | 41 @constInit |
37 library foo; | 42 library foo; |
38 | 43 |
39 import 'package:initialize/initialize.dart'; | 44 import 'package:initialize/initialize.dart'; |
(...skipping 30 matching lines...) Expand all Loading... |
70 import 'package:test_initializers/common.dart'; | 75 import 'package:test_initializers/common.dart'; |
71 ''', | 76 ''', |
72 // Mock out the Initialize package plus some initializers. | 77 // Mock out the Initialize package plus some initializers. |
73 'initialize|lib/initialize.dart': mockInitialize, | 78 'initialize|lib/initialize.dart': mockInitialize, |
74 'test_initializers|lib/common.dart': commonInitializers, | 79 'test_initializers|lib/common.dart': commonInitializers, |
75 }, { | 80 }, { |
76 'a|web/index.html': ''' | 81 'a|web/index.html': ''' |
77 <html><head></head><body> | 82 <html><head></head><body> |
78 <script type="application/dart" src="index.initialize.dart"></script> | 83 <script type="application/dart" src="index.initialize.dart"></script> |
79 | 84 |
80 </body></html>'''.replaceAll(' ', ''), | 85 </body></html>''' |
| 86 .replaceAll(' ', ''), |
81 'a|web/index.initialize.dart': formatter.format(''' | 87 'a|web/index.initialize.dart': formatter.format(''' |
82 import 'package:initialize/src/static_loader.dart'; | 88 import 'package:initialize/src/static_loader.dart'; |
83 import 'package:initialize/initialize.dart'; | 89 import 'package:initialize/initialize.dart'; |
84 import 'index.dart' as i0; | 90 import 'index.dart' as i0; |
85 import 'package:bar/baz.dart' as i1; | 91 import 'package:bar/baz.dart' as i1; |
86 import 'package:test_initializers/common.dart' as i2; | 92 import 'package:test_initializers/common.dart' as i2; |
87 import 'package:bar/bar.dart' as i3; | 93 import 'package:bar/bar.dart' as i3; |
88 import 'package:initialize/initialize.dart' as i4; | 94 import 'package:initialize/initialize.dart' as i4; |
89 import 'foo.dart' as i5; | 95 import 'foo.dart' as i5; |
90 | 96 |
(...skipping 11 matching lines...) Expand all Loading... |
102 new InitEntry(i2.constInit, i5.Foo), | 108 new InitEntry(i2.constInit, i5.Foo), |
103 ]); | 109 ]); |
104 | 110 |
105 return i0.main(); | 111 return i0.main(); |
106 } | 112 } |
107 ''') | 113 ''') |
108 }, []); | 114 }, []); |
109 } | 115 } |
110 | 116 |
111 void dartEntryPointTests() { | 117 void dartEntryPointTests() { |
112 var phases = [[new InitializeTransformer(['web/index.dart'])]]; | 118 var phases = [ |
| 119 [ |
| 120 new InitializeTransformer(['web/index.dart']) |
| 121 ] |
| 122 ]; |
113 | 123 |
114 testPhases('constructor arguments', phases, { | 124 testPhases('constructor arguments', phases, { |
115 'a|web/index.dart': ''' | 125 'a|web/index.dart': ''' |
116 @DynamicInit(foo) | 126 @DynamicInit(foo) |
117 @DynamicInit(_foo) | 127 @DynamicInit(_foo) |
118 @DynamicInit(Foo.foo) | 128 @DynamicInit(Foo.foo) |
119 @DynamicInit(bar.Foo.bar) | 129 @DynamicInit(bar.Foo.bar) |
120 @DynamicInit(bar.Foo.foo) | 130 @DynamicInit(bar.Foo.foo) |
121 @DynamicInit(const [foo, Foo.foo, 'foo']) | 131 @DynamicInit(const [foo, Foo.foo, 'foo']) |
122 @DynamicInit(const {'foo': foo, 'Foo.foo': Foo.foo, 'bar': 'bar'}) | 132 @DynamicInit(const {'foo': foo, 'Foo.foo': Foo.foo, 'bar': 'bar'}) |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 initializers.addAll([ | 420 initializers.addAll([ |
411 new InitEntry(i2.initMethod, i1.foo), | 421 new InitEntry(i2.initMethod, i1.foo), |
412 new InitEntry(i2.initMethod, i0.index), | 422 new InitEntry(i2.initMethod, i0.index), |
413 ]); | 423 ]); |
414 | 424 |
415 return i0.main(); | 425 return i0.main(); |
416 } | 426 } |
417 ''') | 427 ''') |
418 }, []); | 428 }, []); |
419 } | 429 } |
OLD | NEW |