Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1340)

Side by Side Diff: test/file_test.dart

Issue 1028813002: Introduce span with line context (Closed) Base URL: git@github.com:dart-lang/source_span.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 'package:unittest/unittest.dart'; 5 import 'package:unittest/unittest.dart';
6 import 'package:source_span/source_span.dart'; 6 import 'package:source_span/source_span.dart';
7 7
8 main() { 8 main() {
9 var file; 9 var file;
10 setUp(() { 10 setUp(() {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 expect(() => file.getOffset(1, -1), throwsRangeError); 80 expect(() => file.getOffset(1, -1), throwsRangeError);
81 }); 81 });
82 82
83 test("line may not be outside the file", () { 83 test("line may not be outside the file", () {
84 expect(() => file.getOffset(100), throwsRangeError); 84 expect(() => file.getOffset(100), throwsRangeError);
85 }); 85 });
86 86
87 test("column may not be outside the file", () { 87 test("column may not be outside the file", () {
88 expect(() => file.getOffset(2, 100), throwsRangeError); 88 expect(() => file.getOffset(2, 100), throwsRangeError);
89 }); 89 });
90 90
91 test("column may not be outside the line", () { 91 test("column may not be outside the line", () {
92 expect(() => file.getOffset(1, 20), throwsRangeError); 92 expect(() => file.getOffset(1, 20), throwsRangeError);
93 }); 93 });
94 }); 94 });
95 95
96 group("for getText()", () { 96 group("for getText()", () {
97 test("end must come after start", () { 97 test("end must come after start", () {
98 expect(() => file.getText(10, 5), throwsArgumentError); 98 expect(() => file.getText(10, 5), throwsArgumentError);
99 }); 99 });
100 100
101 test("start may not be negative", () { 101 test("start may not be negative", () {
102 expect(() => file.getText(-1, 5), throwsRangeError); 102 expect(() => file.getText(-1, 5), throwsRangeError);
103 }); 103 });
104 104
105 test("end may not be outside the file", () { 105 test("end may not be outside the file", () {
106 expect(() => file.getText(10, 100), throwsRangeError); 106 expect(() => file.getText(10, 100), throwsRangeError);
107 }); 107 });
108 }); 108 });
109 109
110 group("for span().union()", () { 110 group("for span().union()", () {
111 test("source URLs must match", () { 111 test("source URLs must match", () {
112 var other = new SourceSpan( 112 var other =
113 new SourceLocation(10), new SourceLocation(11), "_"); 113 new SourceSpan(new SourceLocation(10), new SourceLocation(11), "_");
114 114
115 expect(() => file.span(9, 10).union(other), throwsArgumentError); 115 expect(() => file.span(9, 10).union(other), throwsArgumentError);
116 }); 116 });
117 117
118 test("spans may not be disjoint", () { 118 test("spans may not be disjoint", () {
119 expect(() => file.span(9, 10).union(file.span(11, 12)), 119 expect(() => file.span(9, 10).union(file.span(11, 12)),
120 throwsArgumentError); 120 throwsArgumentError);
121 }); 121 });
122 }); 122 });
123 123
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 test("works with an external overlapping span", () { 299 test("works with an external overlapping span", () {
300 var other = file.span(0, 16); 300 var other = file.span(0, 16);
301 expect(span.union(other), equals(other)); 301 expect(span.union(other), equals(other));
302 }); 302 });
303 303
304 test("returns a FileSpan for a FileSpan input", () { 304 test("returns a FileSpan for a FileSpan input", () {
305 expect(span.union(file.span(0, 5)), new isInstanceOf<FileSpan>()); 305 expect(span.union(file.span(0, 5)), new isInstanceOf<FileSpan>());
306 }); 306 });
307 307
308 test("returns a base SourceSpan for a SourceSpan input", () { 308 test("returns a base SourceSpan for a SourceSpan input", () {
309 var other = new SourceSpan( 309 var other = new SourceSpan(new SourceLocation(0, sourceUrl: "foo.dart"),
310 new SourceLocation(0, sourceUrl: "foo.dart"), 310 new SourceLocation(5, sourceUrl: "foo.dart"), "hey, ");
311 new SourceLocation(5, sourceUrl: "foo.dart"),
312 "hey, ");
313 var result = span.union(other); 311 var result = span.union(other);
314 expect(result, isNot(new isInstanceOf<FileSpan>())); 312 expect(result, isNot(new isInstanceOf<FileSpan>()));
315 expect(result.start, equals(other.start)); 313 expect(result.start, equals(other.start));
316 expect(result.end, equals(span.end)); 314 expect(result.end, equals(span.end));
317 expect(result.text, equals("hey, ar baz\n")); 315 expect(result.text, equals("hey, ar baz\n"));
318 }); 316 });
319 }); 317 });
320 318
321 group("expand()", () { 319 group("expand()", () {
322 var span; 320 var span;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 var other = file.span(7, 10); 358 var other = file.span(7, 10);
361 expect(span.expand(other), equals(span)); 359 expect(span.expand(other), equals(span));
362 }); 360 });
363 361
364 test("works with an external overlapping span", () { 362 test("works with an external overlapping span", () {
365 var other = file.span(0, 16); 363 var other = file.span(0, 16);
366 expect(span.expand(other), equals(other)); 364 expect(span.expand(other), equals(other));
367 }); 365 });
368 }); 366 });
369 }); 367 });
370 } 368 }
OLDNEW
« lib/src/span.dart ('K') | « test/file_message_test.dart ('k') | test/location_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698