| Index: mojo/public/dart/third_party/unittest/test/test_utils.dart
|
| diff --git a/mojo/public/dart/third_party/unittest/test/test_utils.dart b/mojo/public/dart/third_party/unittest/test/test_utils.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d0adda297d978934055c035217c2cde55b891654
|
| --- /dev/null
|
| +++ b/mojo/public/dart/third_party/unittest/test/test_utils.dart
|
| @@ -0,0 +1,83 @@
|
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +library unittest.matcher.test_utils;
|
| +
|
| +import 'dart:async';
|
| +
|
| +import 'package:unittest/unittest.dart';
|
| +
|
| +int _errorCount;
|
| +String _errorString;
|
| +FailureHandler _testHandler = null;
|
| +
|
| +class MyFailureHandler extends DefaultFailureHandler {
|
| + void fail(String reason) {
|
| + ++_errorCount;
|
| + _errorString = reason;
|
| + }
|
| +}
|
| +
|
| +void initUtils() {
|
| + if (_testHandler == null) {
|
| + _testHandler = new MyFailureHandler();
|
| + }
|
| +}
|
| +
|
| +void shouldFail(value, Matcher matcher, expected, {bool isAsync: false}) {
|
| + configureExpectFailureHandler(_testHandler);
|
| + _errorCount = 0;
|
| + _errorString = '';
|
| + expect(value, matcher);
|
| + afterTest() {
|
| + configureExpectFailureHandler(null);
|
| + expect(_errorCount, equals(1));
|
| + if (expected is String) {
|
| + expect(_errorString, equalsIgnoringWhitespace(expected));
|
| + } else {
|
| + expect(_errorString.replaceAll('\n', ''), expected);
|
| + }
|
| + }
|
| +
|
| + if (isAsync) {
|
| + Timer.run(expectAsync(afterTest));
|
| + } else {
|
| + afterTest();
|
| + }
|
| +}
|
| +
|
| +void shouldPass(value, Matcher matcher, {bool isAsync: false}) {
|
| + configureExpectFailureHandler(_testHandler);
|
| + _errorCount = 0;
|
| + _errorString = '';
|
| + expect(value, matcher);
|
| + afterTest() {
|
| + configureExpectFailureHandler(null);
|
| + expect(_errorCount, equals(0));
|
| + }
|
| + if (isAsync) {
|
| + Timer.run(expectAsync(afterTest));
|
| + } else {
|
| + afterTest();
|
| + }
|
| +}
|
| +
|
| +doesNotThrow() {}
|
| +doesThrow() {
|
| + throw 'X';
|
| +}
|
| +
|
| +class PrefixMatcher extends Matcher {
|
| + final String _prefix;
|
| + const PrefixMatcher(this._prefix);
|
| + bool matches(item, Map matchState) {
|
| + return item is String &&
|
| + (collapseWhitespace(item)).startsWith(collapseWhitespace(_prefix));
|
| + }
|
| +
|
| + Description describe(Description description) => description
|
| + .add('a string starting with ')
|
| + .addDescriptionOf(collapseWhitespace(_prefix))
|
| + .add(' ignoring whitespace');
|
| +}
|
|
|