| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 library mock_compiler; | 5 library mock_compiler; |
| 6 | 6 |
| 7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'dart:collection'; | 9 import 'dart:collection'; |
| 10 | 10 |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 String foundValue = '${message.arguments[key]}'; | 471 String foundValue = '${message.arguments[key]}'; |
| 472 if (expectedValue != foundValue) { | 472 if (expectedValue != foundValue) { |
| 473 return 'Expected argument $key with value $expectedValue, ' | 473 return 'Expected argument $key with value $expectedValue, ' |
| 474 'found $foundValue.'; | 474 'found $foundValue.'; |
| 475 } | 475 } |
| 476 } | 476 } |
| 477 return null; | 477 return null; |
| 478 }; | 478 }; |
| 479 } | 479 } |
| 480 | 480 |
| 481 /// [expectedWarnings] must be a list of either [MessageKind] or [CheckMessage]. | |
| 482 void compareWarningKinds(String text, | 481 void compareWarningKinds(String text, |
| 483 List expectedWarnings, | 482 List expectedWarnings, |
| 484 List<WarningMessage> foundWarnings) { | 483 List<WarningMessage> foundWarnings) { |
| 484 compareMessageKinds(text, expectedWarnings, foundWarnings, 'warning'); |
| 485 } |
| 486 |
| 487 /// [expectedMessages] must be a list of either [MessageKind] or [CheckMessage]. |
| 488 void compareMessageKinds(String text, |
| 489 List expectedMessages, |
| 490 List<WarningMessage> foundMessages, |
| 491 String kind) { |
| 485 var fail = (message) => Expect.fail('$text: $message'); | 492 var fail = (message) => Expect.fail('$text: $message'); |
| 486 HasNextIterator expectedIterator = | 493 HasNextIterator expectedIterator = |
| 487 new HasNextIterator(expectedWarnings.iterator); | 494 new HasNextIterator(expectedMessages.iterator); |
| 488 HasNextIterator<WarningMessage> foundIterator = | 495 HasNextIterator<WarningMessage> foundIterator = |
| 489 new HasNextIterator(foundWarnings.iterator); | 496 new HasNextIterator(foundMessages.iterator); |
| 490 while (expectedIterator.hasNext && foundIterator.hasNext) { | 497 while (expectedIterator.hasNext && foundIterator.hasNext) { |
| 491 var expected = expectedIterator.next(); | 498 var expected = expectedIterator.next(); |
| 492 var found = foundIterator.next(); | 499 var found = foundIterator.next(); |
| 493 if (expected is MessageKind) { | 500 if (expected is MessageKind) { |
| 494 Expect.equals(expected, found.message.kind); | 501 Expect.equals(expected, found.message.kind); |
| 495 } else if (expected is CheckMessage) { | 502 } else if (expected is CheckMessage) { |
| 496 String error = expected(found.message); | 503 String error = expected(found.message); |
| 497 Expect.isNull(error, error); | 504 Expect.isNull(error, error); |
| 498 } else { | 505 } else { |
| 499 Expect.fail("Unexpected expectedWarnings value: $expected."); | 506 Expect.fail("Unexpected $kind value: $expected."); |
| 500 } | 507 } |
| 501 } | 508 } |
| 502 if (expectedIterator.hasNext) { | 509 if (expectedIterator.hasNext) { |
| 503 do { | 510 do { |
| 504 var expected = expectedIterator.next(); | 511 var expected = expectedIterator.next(); |
| 505 if (expected is CheckMessage) expected = expected(null); | 512 if (expected is CheckMessage) expected = expected(null); |
| 506 print('Expected warning "${expected}" did not occur'); | 513 print('Expected $kind "${expected}" did not occur'); |
| 507 } while (expectedIterator.hasNext); | 514 } while (expectedIterator.hasNext); |
| 508 fail('Too few warnings'); | 515 fail('Too few ${kind}s'); |
| 509 } | 516 } |
| 510 if (foundIterator.hasNext) { | 517 if (foundIterator.hasNext) { |
| 511 do { | 518 do { |
| 512 print('Additional warning "${foundIterator.next()}"'); | 519 print('Additional $kind "${foundIterator.next()}"'); |
| 513 } while (foundIterator.hasNext); | 520 } while (foundIterator.hasNext); |
| 514 fail('Too many warnings'); | 521 fail('Too many ${kind}s'); |
| 515 } | 522 } |
| 516 } | 523 } |
| 517 | 524 |
| 518 void importLibrary(LibraryElement target, LibraryElementX imported, | 525 void importLibrary(LibraryElement target, LibraryElementX imported, |
| 519 Compiler compiler) { | 526 Compiler compiler) { |
| 520 for (var element in imported.localMembers) { | 527 for (var element in imported.localMembers) { |
| 521 compiler.withCurrentElement(element, () { | 528 compiler.withCurrentElement(element, () { |
| 522 target.addToScope(element, compiler); | 529 target.addToScope(element, compiler); |
| 523 }); | 530 }); |
| 524 } | 531 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 } else { | 572 } else { |
| 566 sourceFile = compiler.sourceFiles[uri.toString()]; | 573 sourceFile = compiler.sourceFiles[uri.toString()]; |
| 567 } | 574 } |
| 568 if (sourceFile != null && begin != null && end != null) { | 575 if (sourceFile != null && begin != null && end != null) { |
| 569 print(sourceFile.getLocationMessage(message, begin, end, true, (x) => x)); | 576 print(sourceFile.getLocationMessage(message, begin, end, true, (x) => x)); |
| 570 } else { | 577 } else { |
| 571 print(message); | 578 print(message); |
| 572 } | 579 } |
| 573 }; | 580 }; |
| 574 } | 581 } |
| OLD | NEW |