Index: sdk/lib/_internal/pub_generated/test/transformer/multiple_transformers_reject_their_config_test.dart |
diff --git a/sdk/lib/_internal/pub_generated/test/transformer/multiple_transformers_reject_their_config_test.dart b/sdk/lib/_internal/pub_generated/test/transformer/multiple_transformers_reject_their_config_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6a87bcbe06d5c241f05f36dc765cec467e792760 |
--- /dev/null |
+++ b/sdk/lib/_internal/pub_generated/test/transformer/multiple_transformers_reject_their_config_test.dart |
@@ -0,0 +1,72 @@ |
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS d.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 pub_tests; |
+ |
+import 'package:scheduled_test/scheduled_stream.dart'; |
+import 'package:scheduled_test/scheduled_test.dart'; |
+ |
+import '../descriptor.dart' as d; |
+import '../test_pub.dart'; |
+import '../serve/utils.dart'; |
+ |
+const REJECT_CONFIG_TRANSFORMER = """ |
+import 'dart:async'; |
+ |
+import 'package:barback/barback.dart'; |
+ |
+class RejectConfigTransformer extends Transformer { |
+ RejectConfigTransformer.asPlugin(BarbackSettings settings) { |
+ throw "I hate these settings!"; |
+ } |
+ |
+ Future<bool> isPrimary(_) => new Future.value(true); |
+ Future apply(Transform transform) {} |
+} |
+"""; |
+ |
+main() { |
+ initConfig(); |
+ |
+ withBarbackVersions("any", () { |
+ integration( |
+ "multiple transformers in the same phase reject their " "configurations", |
+ () { |
+ d.dir(appPath, [d.pubspec({ |
+ "name": "myapp", |
+ "transformers": [[{ |
+ "myapp/src/transformer": { |
+ 'foo': 'bar' |
+ } |
+ }, { |
+ "myapp/src/transformer": { |
+ 'baz': 'bang' |
+ } |
+ }, { |
+ "myapp/src/transformer": { |
+ 'qux': 'fblthp' |
+ } |
+ }]] |
+ }), |
+ d.dir( |
+ "lib", |
+ [ |
+ d.dir( |
+ "src", |
+ [d.file("transformer.dart", REJECT_CONFIG_TRANSFORMER)])])]).create(); |
+ |
+ createLockFile('myapp', pkg: ['barback']); |
+ |
+ // We should see three instances of the error message, once for each |
+ // use of the transformer. |
+ var pub = startPubServe(); |
+ for (var i = 0; i < 3; i++) { |
+ pub.stderr.expect( |
+ consumeThrough( |
+ endsWith('Error loading transformer: ' 'I hate these settings!'))); |
+ } |
+ pub.shouldExit(1); |
+ }); |
+ }); |
+} |