| Index: sdk/lib/_internal/pub/test/transformer/can_log_messages_test.dart
|
| diff --git a/sdk/lib/_internal/pub/test/transformer/can_log_messages_test.dart b/sdk/lib/_internal/pub/test/transformer/can_log_messages_test.dart
|
| index 528b9c8a068568cdd5dba7aa43c14d3019dfee4a..3144d3206364ab9aa53d0ce33dc39ae2e07beadf 100644
|
| --- a/sdk/lib/_internal/pub/test/transformer/can_log_messages_test.dart
|
| +++ b/sdk/lib/_internal/pub/test/transformer/can_log_messages_test.dart
|
| @@ -11,7 +11,7 @@ import '../../lib/src/exit_codes.dart' as exit_codes;
|
| import '../descriptor.dart' as d;
|
| import '../test_pub.dart';
|
|
|
| -const TRANSFORMER = """
|
| +const SOURCE_MAPS_TRANSFORMER = """
|
| import 'dart:async';
|
|
|
| import 'package:barback/barback.dart';
|
| @@ -38,52 +38,83 @@ class RewriteTransformer extends Transformer {
|
| }
|
| """;
|
|
|
| +const SOURCE_SPAN_TRANSFORMER = """
|
| +import 'dart:async';
|
| +
|
| +import 'package:barback/barback.dart';
|
| +import 'package:source_span/source_span.dart';
|
| +
|
| +class RewriteTransformer extends Transformer {
|
| + RewriteTransformer.asPlugin();
|
| +
|
| + String get allowedExtensions => '.txt';
|
| +
|
| + Future apply(Transform transform) {
|
| + transform.logger.info('info!');
|
| + transform.logger.warning('Warning!',
|
| + asset: transform.primaryInput.id.changeExtension('.foo'));
|
| + var sourceFile = new SourceFile('not a real\\ndart file',
|
| + url: 'http://fake.com/not_real.dart');
|
| + transform.logger.error('ERROR!', span: sourceFile.span(11, 12));
|
| + return transform.primaryInput.readAsString().then((contents) {
|
| + var id = transform.primaryInput.id.changeExtension(".out");
|
| + transform.addOutput(new Asset.fromString(id, "\$contents.out"));
|
| + });
|
| + }
|
| +}
|
| +""";
|
| +
|
| main() {
|
| initConfig();
|
| - withBarbackVersions("any", () {
|
| - integration("can log messages", () {
|
| - d.dir(appPath, [
|
| - d.pubspec({
|
| - "name": "myapp",
|
| - "transformers": ["myapp/src/transformer"]
|
| - }),
|
| - d.dir("lib", [d.dir("src", [
|
| - d.file("transformer.dart", TRANSFORMER)
|
| - ])]),
|
| - d.dir("web", [
|
| - d.file("foo.txt", "foo")
|
| - ])
|
| - ]).create();
|
| -
|
| - createLockFile('myapp', pkg: ['barback']);
|
| -
|
| - var pub = startPub(args: ["build"]);
|
| - pub.stdout.expect(startsWith("Loading source assets..."));
|
| - pub.stdout.expect(consumeWhile(matches("Loading .* transformers...")));
|
| - pub.stdout.expect(startsWith("Building myapp..."));
|
| -
|
| - pub.stdout.expect(emitsLines("""
|
| + // This intentionally tests barback 0.14.2 with both transformers, since it
|
| + // supports both types of span.
|
| + withBarbackVersions("<0.15.0", () => runTest(SOURCE_MAPS_TRANSFORMER));
|
| + withBarbackVersions(">=0.14.2", () => runTest(SOURCE_SPAN_TRANSFORMER));
|
| +}
|
| +
|
| +void runTest(String transformerText) {
|
| + integration("can log messages", () {
|
| + d.dir(appPath, [
|
| + d.pubspec({
|
| + "name": "myapp",
|
| + "transformers": ["myapp/src/transformer"]
|
| + }),
|
| + d.dir("lib", [d.dir("src", [
|
| + d.file("transformer.dart", transformerText)
|
| + ])]),
|
| + d.dir("web", [
|
| + d.file("foo.txt", "foo")
|
| + ])
|
| + ]).create();
|
| +
|
| + createLockFile('myapp', pkg: ['barback']);
|
| +
|
| + var pub = startPub(args: ["build"]);
|
| + pub.stdout.expect(startsWith("Loading source assets..."));
|
| + pub.stdout.expect(consumeWhile(matches("Loading .* transformers...")));
|
| + pub.stdout.expect(startsWith("Building myapp..."));
|
| +
|
| + pub.stdout.expect(emitsLines("""
|
| [Rewrite on myapp|web/foo.txt]:
|
| info!"""));
|
|
|
| - pub.stderr.expect(emitsLines("""
|
| + pub.stderr.expect(emitsLines("""
|
| [Rewrite on myapp|web/foo.txt with input myapp|web/foo.foo]:
|
| Warning!
|
| [Rewrite on myapp|web/foo.txt]:"""));
|
|
|
| - // The details of the analyzer's error message change pretty frequently,
|
| - // so instead of validating the entire line, just look for a couple of
|
| - // salient bits of information.
|
| - pub.stderr.expect(allOf([
|
| - contains("2"), // The line number.
|
| - contains("1"), // The column number.
|
| - contains("http://fake.com/not_real.dart"), // The library.
|
| - contains("ERROR"), // That it's an error.
|
| - ]));
|
| + // The details of the analyzer's error message change pretty frequently,
|
| + // so instead of validating the entire line, just look for a couple of
|
| + // salient bits of information.
|
| + pub.stderr.expect(allOf([
|
| + contains("2"), // The line number.
|
| + contains("1"), // The column number.
|
| + contains("http://fake.com/not_real.dart"), // The library.
|
| + contains("ERROR"), // That it's an error.
|
| + ]));
|
|
|
| - pub.stderr.expect("Build failed.");
|
| + pub.stderr.expect("Build failed.");
|
|
|
| - pub.shouldExit(exit_codes.DATA);
|
| - });
|
| + pub.shouldExit(exit_codes.DATA);
|
| });
|
| }
|
|
|