OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 import '../descriptor.dart' as d; | 5 import '../descriptor.dart' as d; |
6 import '../test_pub.dart'; | 6 import '../test_pub.dart'; |
7 import '../serve/utils.dart'; | 7 import '../serve/utils.dart'; |
8 | 8 |
9 const TRANSFORMER = """ | 9 const TRANSFORMER = """ |
10 import 'dart:async'; | 10 import 'dart:async'; |
11 | 11 |
12 import 'package:barback/barback.dart'; | 12 import 'package:barback/barback.dart'; |
13 | 13 |
14 class BrokenTransformer extends Transformer { | 14 class BrokenTransformer extends Transformer { |
15 RewriteTransformer.asPlugin() { | 15 RewriteTransformer.asPlugin() { |
16 throw 'This transformer is broken!'; | 16 throw 'This transformer is broken!'; |
17 } | 17 } |
18 | 18 |
19 String get allowedExtensions => '.txt'; | 19 String get allowedExtensions => '.txt'; |
20 | 20 |
21 void apply(Transform transform) {} | 21 void apply(Transform transform) {} |
22 } | 22 } |
23 """; | 23 """; |
24 | 24 |
25 main() { | 25 main() { |
26 integration("doesn't load an unnecessary transformer", () { | 26 integration("doesn't load an unnecessary transformer", () { |
27 d.dir(appPath, [ | 27 serveBarback(); |
28 d.pubspec({ | |
29 "name": "myapp", | |
30 "transformers": [ | |
31 {"myapp/src/transformer": {r"$include": "lib/myapp.dart"}} | |
32 ] | |
33 }), | |
34 d.dir("lib", [ | |
35 d.file("myapp.dart", ""), | |
36 d.dir("src", [d.file("transformer.dart", TRANSFORMER)]) | |
37 ]), | |
38 d.dir("bin", [ | |
39 d.file("hi.dart", "void main() => print('Hello!');") | |
40 ]) | |
41 ]).create(); | |
42 | 28 |
43 createLockFile('myapp', pkg: ['barback']); | 29 d.dir(appPath, [ |
| 30 d.pubspec({ |
| 31 "name": "myapp", |
| 32 "transformers": [ |
| 33 {"myapp/src/transformer": {r"$include": "lib/myapp.dart"}} |
| 34 ], |
| 35 "dependencies": {"barback": "any"} |
| 36 }), |
| 37 d.dir("lib", [ |
| 38 d.file("myapp.dart", ""), |
| 39 d.dir("src", [d.file("transformer.dart", TRANSFORMER)]) |
| 40 ]), |
| 41 d.dir("bin", [ |
| 42 d.file("hi.dart", "void main() => print('Hello!');") |
| 43 ]) |
| 44 ]).create(); |
44 | 45 |
45 // This shouldn't load the transformer, since it doesn't transform | 46 pubGet(); |
46 // anything that the entrypoint imports. If it did load the transformer, | 47 |
47 // we'd know since it would throw an exception. | 48 // This shouldn't load the transformer, since it doesn't transform |
48 var pub = pubRun(args: ["bin/hi"]); | 49 // anything that the entrypoint imports. If it did load the transformer, |
49 pub.stdout.expect("Hello!"); | 50 // we'd know since it would throw an exception. |
50 pub.shouldExit(); | 51 var pub = pubRun(args: ["bin/hi"]); |
51 }); | 52 pub.stdout.expect("Hello!"); |
| 53 pub.shouldExit(); |
| 54 }); |
52 } | 55 } |
OLD | NEW |