Chromium Code Reviews

Side by Side Diff: test/transformer/can_log_messages_test.dart

Issue 1530353002: Drop support for older Barback versions. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.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 pub_tests; 5 library pub_tests;
6 6
7 import 'package:pub/src/exit_codes.dart' as exit_codes; 7 import 'package:pub/src/exit_codes.dart' as exit_codes;
8 import 'package:scheduled_test/scheduled_test.dart'; 8 import 'package:scheduled_test/scheduled_test.dart';
9 import 'package:scheduled_test/scheduled_stream.dart'; 9 import 'package:scheduled_test/scheduled_stream.dart';
10 10
11 import '../descriptor.dart' as d; 11 import '../descriptor.dart' as d;
12 import '../test_pub.dart'; 12 import '../test_pub.dart';
13 13
14 const SOURCE_MAPS_TRANSFORMER = """ 14 const TRANSFORMER = """
15 import 'dart:async'; 15 import 'dart:async';
16 16
17 import 'package:barback/barback.dart'; 17 import 'package:barback/barback.dart';
18 import 'package:source_maps/source_maps.dart';
19
20 class RewriteTransformer extends Transformer {
21 RewriteTransformer.asPlugin();
22
23 String get allowedExtensions => '.txt';
24
25 Future apply(Transform transform) {
26 transform.logger.info('info!');
27 transform.logger.warning('Warning!',
28 asset: transform.primaryInput.id.changeExtension('.foo'));
29 var sourceFile = new SourceFile.text(
30 'http://fake.com/not_real.dart',
31 'not a real\\ndart file');
32 transform.logger.error('ERROR!', span: new FileSpan(sourceFile, 11));
33 return transform.primaryInput.readAsString().then((contents) {
34 var id = transform.primaryInput.id.changeExtension(".out");
35 transform.addOutput(new Asset.fromString(id, "\$contents.out"));
36 });
37 }
38 }
39 """;
40
41 const SOURCE_SPAN_TRANSFORMER = """
42 import 'dart:async';
43
44 import 'package:barback/barback.dart';
45 import 'package:source_span/source_span.dart'; 18 import 'package:source_span/source_span.dart';
46 19
47 class RewriteTransformer extends Transformer { 20 class RewriteTransformer extends Transformer {
48 RewriteTransformer.asPlugin(); 21 RewriteTransformer.asPlugin();
49 22
50 String get allowedExtensions => '.txt'; 23 String get allowedExtensions => '.txt';
51 24
52 Future apply(Transform transform) { 25 Future apply(Transform transform) {
53 transform.logger.info('info!'); 26 transform.logger.info('info!');
54 transform.logger.warning('Warning!', 27 transform.logger.warning('Warning!',
55 asset: transform.primaryInput.id.changeExtension('.foo')); 28 asset: transform.primaryInput.id.changeExtension('.foo'));
56 var sourceFile = new SourceFile('not a real\\ndart file', 29 var sourceFile = new SourceFile('not a real\\ndart file',
57 url: 'http://fake.com/not_real.dart'); 30 url: 'http://fake.com/not_real.dart');
58 transform.logger.error('ERROR!', span: sourceFile.span(11, 12)); 31 transform.logger.error('ERROR!', span: sourceFile.span(11, 12));
59 return transform.primaryInput.readAsString().then((contents) { 32 return transform.primaryInput.readAsString().then((contents) {
60 var id = transform.primaryInput.id.changeExtension(".out"); 33 var id = transform.primaryInput.id.changeExtension(".out");
61 transform.addOutput(new Asset.fromString(id, "\$contents.out")); 34 transform.addOutput(new Asset.fromString(id, "\$contents.out"));
62 }); 35 });
63 } 36 }
64 } 37 }
65 """; 38 """;
66 39
67 main() { 40 main() {
68 // This intentionally tests barback 0.14.2 with both transformers, since it
69 // supports both types of span.
70 withBarbackVersions("<0.15.0", () => runTest(SOURCE_MAPS_TRANSFORMER));
71 withBarbackVersions(">=0.14.2", () => runTest(SOURCE_SPAN_TRANSFORMER));
72 }
73
74 void runTest(String transformerText) {
75 integration("can log messages", () { 41 integration("can log messages", () {
76 d.dir(appPath, [ 42 d.dir(appPath, [
77 d.pubspec({ 43 d.pubspec({
78 "name": "myapp", 44 "name": "myapp",
79 "transformers": ["myapp/src/transformer"] 45 "transformers": ["myapp/src/transformer"]
80 }), 46 }),
81 d.dir("lib", [d.dir("src", [ 47 d.dir("lib", [d.dir("src", [
82 d.file("transformer.dart", transformerText) 48 d.file("transformer.dart", TRANSFORMER)
83 ])]), 49 ])]),
84 d.dir("web", [ 50 d.dir("web", [
85 d.file("foo.txt", "foo") 51 d.file("foo.txt", "foo")
86 ]) 52 ])
87 ]).create(); 53 ]).create();
88 54
89 createLockFile('myapp', pkg: ['barback']); 55 createLockFile('myapp', pkg: ['barback']);
90 56
91 var pub = startPub(args: ["build"]); 57 var pub = startPub(args: ["build"]);
92 pub.stdout.expect(startsWith("Loading source assets...")); 58 pub.stdout.expect(startsWith("Loading source assets..."));
(...skipping 21 matching lines...)
114 80
115 // In barback >=0.15.0, the span will point to the location where the error 81 // In barback >=0.15.0, the span will point to the location where the error
116 // occurred. 82 // occurred.
117 pub.stderr.expect(allow(inOrder(["d", "^"]))); 83 pub.stderr.expect(allow(inOrder(["d", "^"])));
118 84
119 pub.stderr.expect("Build failed."); 85 pub.stderr.expect("Build failed.");
120 86
121 pub.shouldExit(exit_codes.DATA); 87 pub.shouldExit(exit_codes.DATA);
122 }); 88 });
123 } 89 }
OLDNEW

Powered by Google App Engine