| Index: packages/source_span/test/highlight_test.dart
|
| diff --git a/packages/source_span/test/file_message_test.dart b/packages/source_span/test/highlight_test.dart
|
| similarity index 51%
|
| rename from packages/source_span/test/file_message_test.dart
|
| rename to packages/source_span/test/highlight_test.dart
|
| index 5935c58820e76a8ba7ea42d2c2ca2bdb51b19c4f..74faed52a820a9a8f48b21d53afef44658557d2c 100644
|
| --- a/packages/source_span/test/file_message_test.dart
|
| +++ b/packages/source_span/test/highlight_test.dart
|
| @@ -13,86 +13,104 @@ main() {
|
| foo bar baz
|
| whiz bang boom
|
| zip zap zop
|
| -""", url: "foo.dart");
|
| +""");
|
| });
|
|
|
| test("points to the span in the source", () {
|
| - expect(file.span(4, 7).message("oh no"), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.span(4, 7).highlight(), equals("""
|
| foo bar baz
|
| ^^^"""));
|
| });
|
|
|
| test("gracefully handles a missing source URL", () {
|
| var span = new SourceFile("foo bar baz").span(4, 7);
|
| - expect(span.message("oh no"), equals("""
|
| -line 1, column 5: oh no
|
| + expect(span.highlight(), equals("""
|
| foo bar baz
|
| ^^^"""));
|
| });
|
|
|
| test("highlights the first line of a multiline span", () {
|
| - expect(file.span(4, 20).message("oh no"), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.span(4, 20).highlight(), equals("""
|
| foo bar baz
|
| ^^^^^^^^"""));
|
| });
|
|
|
| test("works for a point span", () {
|
| - expect(file.location(4).pointSpan().message("oh no"), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.location(4).pointSpan().highlight(), equals("""
|
| foo bar baz
|
| ^"""));
|
| });
|
|
|
| test("works for a point span at the end of a line", () {
|
| - expect(file.location(11).pointSpan().message("oh no"), equals("""
|
| -line 1, column 12 of foo.dart: oh no
|
| + expect(file.location(11).pointSpan().highlight(), equals("""
|
| foo bar baz
|
| ^"""));
|
| });
|
|
|
| test("works for a point span at the end of the file", () {
|
| - expect(file.location(38).pointSpan().message("oh no"), equals("""
|
| -line 3, column 12 of foo.dart: oh no
|
| + expect(file.location(38).pointSpan().highlight(), equals("""
|
| +zip zap zop
|
| + ^"""));
|
| + });
|
| +
|
| + test("works for a point span at the end of the file with no trailing newline",
|
| + () {
|
| + file = new SourceFile("zip zap zop");
|
| + expect(file.location(11).pointSpan().highlight(), equals("""
|
| zip zap zop
|
| ^"""));
|
| });
|
|
|
| test("works for a point span in an empty file", () {
|
| - expect(new SourceFile("").location(0).pointSpan().message("oh no"),
|
| + expect(new SourceFile("").location(0).pointSpan().highlight(),
|
| equals("""
|
| -line 1, column 1: oh no
|
|
|
| ^"""));
|
| });
|
|
|
| test("works for a single-line file without a newline", () {
|
| - expect(new SourceFile("foo bar").span(0, 7).message("oh no"),
|
| + expect(new SourceFile("foo bar").span(0, 7).highlight(),
|
| equals("""
|
| -line 1, column 1: oh no
|
| foo bar
|
| ^^^^^^^"""));
|
| });
|
|
|
| + test("emits tabs for tabs", () {
|
| + expect(new SourceFile(" \t \t\tfoo bar").span(5, 8).highlight(),
|
| + equals("""
|
| + \t \t\tfoo bar
|
| + \t \t\t^^^"""));
|
| + });
|
| +
|
| + test("supports lines of preceding context", () {
|
| + var span = new SourceSpanWithContext(
|
| + new SourceLocation(5, line: 3, column: 5, sourceUrl: "foo.dart"),
|
| + new SourceLocation(12, line: 3, column: 12, sourceUrl: "foo.dart"),
|
| + "foo bar",
|
| + "previous\nlines\n-----foo bar-----\nfollowing line\n");
|
| +
|
| + expect(span.highlight(color: colors.YELLOW), equals("""
|
| +previous
|
| +lines
|
| +-----${colors.YELLOW}foo bar${colors.NONE}-----
|
| + ${colors.YELLOW}^^^^^^^${colors.NONE}"""));
|
| + });
|
| +
|
| group("colors", () {
|
| test("doesn't colorize if color is false", () {
|
| - expect(file.span(4, 7).message("oh no", color: false), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.span(4, 7).highlight(color: false), equals("""
|
| foo bar baz
|
| ^^^"""));
|
| });
|
|
|
| test("colorizes if color is true", () {
|
| - expect(file.span(4, 7).message("oh no", color: true), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.span(4, 7).highlight(color: true), equals("""
|
| foo ${colors.RED}bar${colors.NONE} baz
|
| ${colors.RED}^^^${colors.NONE}"""));
|
| });
|
|
|
| test("uses the given color if it's passed", () {
|
| - expect(file.span(4, 7).message("oh no", color: colors.YELLOW), equals("""
|
| -line 1, column 5 of foo.dart: oh no
|
| + expect(file.span(4, 7).highlight(color: colors.YELLOW), equals("""
|
| foo ${colors.YELLOW}bar${colors.NONE} baz
|
| ${colors.YELLOW}^^^${colors.NONE}"""));
|
| });
|
|
|