OLD | NEW |
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:test/test.dart'; | 5 import 'package:test/test.dart'; |
6 import 'package:source_span/source_span.dart'; | 6 import 'package:source_span/source_span.dart'; |
7 import 'package:source_span/src/colors.dart' as colors; | 7 import 'package:source_span/src/colors.dart' as colors; |
8 | 8 |
9 main() { | 9 main() { |
10 var span; | 10 var span; |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 ${colors.RED}foo bar${colors.NONE} | 227 ${colors.RED}foo bar${colors.NONE} |
228 ${colors.RED}^^^^^^^${colors.NONE}""")); | 228 ${colors.RED}^^^^^^^${colors.NONE}""")); |
229 }); | 229 }); |
230 | 230 |
231 test("uses the given color if it's passed", () { | 231 test("uses the given color if it's passed", () { |
232 expect(span.message("oh no", color: colors.YELLOW), equals(""" | 232 expect(span.message("oh no", color: colors.YELLOW), equals(""" |
233 line 1, column 6 of foo.dart: oh no | 233 line 1, column 6 of foo.dart: oh no |
234 ${colors.YELLOW}foo bar${colors.NONE} | 234 ${colors.YELLOW}foo bar${colors.NONE} |
235 ${colors.YELLOW}^^^^^^^${colors.NONE}""")); | 235 ${colors.YELLOW}^^^^^^^${colors.NONE}""")); |
236 }); | 236 }); |
237 }); | |
238 | 237 |
239 group("message() with context", () { | 238 test("with context, underlines the right column", () { |
240 var spanWithContext; | 239 var spanWithContext = new SourceSpanWithContext( |
241 setUp(() { | |
242 spanWithContext = new SourceSpanWithContext( | |
243 new SourceLocation(5, sourceUrl: "foo.dart"), | 240 new SourceLocation(5, sourceUrl: "foo.dart"), |
244 new SourceLocation(12, sourceUrl: "foo.dart"), | 241 new SourceLocation(12, sourceUrl: "foo.dart"), |
245 "foo bar", | 242 "foo bar", |
246 "-----foo bar-----"); | 243 "-----foo bar-----"); |
247 }); | |
248 | 244 |
249 test("underlines under the right column", () { | |
250 expect(spanWithContext.message("oh no", color: colors.YELLOW), equals(""" | 245 expect(spanWithContext.message("oh no", color: colors.YELLOW), equals(""" |
251 line 1, column 6 of foo.dart: oh no | 246 line 1, column 6 of foo.dart: oh no |
252 -----${colors.YELLOW}foo bar${colors.NONE}----- | 247 -----${colors.YELLOW}foo bar${colors.NONE}----- |
253 ${colors.YELLOW}^^^^^^^${colors.NONE}""")); | 248 ${colors.YELLOW}^^^^^^^${colors.NONE}""")); |
254 }); | 249 }); |
255 | |
256 test("underlines correctly when text appears twice", () { | |
257 var span = new SourceSpanWithContext( | |
258 new SourceLocation(9, column: 9, sourceUrl: "foo.dart"), | |
259 new SourceLocation(12, column: 12, sourceUrl: "foo.dart"), | |
260 "foo", | |
261 "-----foo foo-----"); | |
262 expect(span.message("oh no", color: colors.YELLOW), equals(""" | |
263 line 1, column 10 of foo.dart: oh no | |
264 -----foo ${colors.YELLOW}foo${colors.NONE}----- | |
265 ${colors.YELLOW}^^^${colors.NONE}""")); | |
266 }); | |
267 | |
268 test("supports lines of preceeding context", () { | |
269 var span = new SourceSpanWithContext( | |
270 new SourceLocation(5, line: 3, column: 5, sourceUrl: "foo.dart"), | |
271 new SourceLocation(12, line: 3, column: 12, sourceUrl: "foo.dart"), | |
272 "foo bar", | |
273 "previous\nlines\n-----foo bar-----\nfollowing line\n"); | |
274 | |
275 expect(span.message("oh no", color: colors.YELLOW), equals(""" | |
276 line 4, column 6 of foo.dart: oh no | |
277 previous | |
278 lines | |
279 -----${colors.YELLOW}foo bar${colors.NONE}----- | |
280 ${colors.YELLOW}^^^^^^^${colors.NONE}""")); | |
281 }); | |
282 }); | 250 }); |
283 | 251 |
284 group("compareTo()", () { | 252 group("compareTo()", () { |
285 test("sorts by start location first", () { | 253 test("sorts by start location first", () { |
286 var other = new SourceSpan( | 254 var other = new SourceSpan( |
287 new SourceLocation(6, sourceUrl: "foo.dart"), | 255 new SourceLocation(6, sourceUrl: "foo.dart"), |
288 new SourceLocation(14, sourceUrl: "foo.dart"), | 256 new SourceLocation(14, sourceUrl: "foo.dart"), |
289 "oo bar b"); | 257 "oo bar b"); |
290 | 258 |
291 expect(span.compareTo(other), lessThan(0)); | 259 expect(span.compareTo(other), lessThan(0)); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 test("a different source URL isn't equal", () { | 306 test("a different source URL isn't equal", () { |
339 var other = new SourceSpan( | 307 var other = new SourceSpan( |
340 new SourceLocation(5, sourceUrl: "bar.dart"), | 308 new SourceLocation(5, sourceUrl: "bar.dart"), |
341 new SourceLocation(12, sourceUrl: "bar.dart"), | 309 new SourceLocation(12, sourceUrl: "bar.dart"), |
342 "foo bar"); | 310 "foo bar"); |
343 | 311 |
344 expect(span, isNot(equals(other))); | 312 expect(span, isNot(equals(other))); |
345 }); | 313 }); |
346 }); | 314 }); |
347 } | 315 } |
OLD | NEW |