Chromium Code Reviews| Index: pkg/unittest/test/pretty_print_minified_test.dart |
| diff --git a/pkg/unittest/test/pretty_print_minified_test.dart b/pkg/unittest/test/pretty_print_minified_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..16c5cd61ccf5fec5afad9bb197ba120cbf80f78b |
| --- /dev/null |
| +++ b/pkg/unittest/test/pretty_print_minified_test.dart |
| @@ -0,0 +1,61 @@ |
| +// 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. |
| + |
| +// This file is for pretty-print tests that rely on the names of various Dart |
| +// types. These tests normally fail when run in minified dart2js, since the |
| +// names will be mangled. This version of the file is modified to expect |
| +// minified names. |
| + |
| +import 'dart:collection'; |
| + |
| +import 'package:unittest/src/pretty_print.dart'; |
| +import 'package:unittest/unittest.dart'; |
| + |
| +class DefaultToString {} |
| + |
| +class CustomToString { |
|
gram
2013/05/20 22:35:58
Perhaps refactor some of this common stuff like yo
nweiz
2013/05/20 23:29:06
I thought about doing that when I wrote this, but
|
| + String toString() => "string representation"; |
| +} |
| + |
| +class _PrivateName { |
| + String toString() => "string representation"; |
| +} |
| + |
| +class _PrivateNameIterable extends IterableMixin { |
| + Iterator get iterator => [1, 2, 3].iterator; |
| +} |
| + |
| +// A regexp fragment matching a minified name. |
| +final _minifiedName = r"[A-Za-z0-9]{1,3}"; |
| + |
| +void main() { |
| + group('with an object', () { |
| + test('with a default [toString]', () { |
| + expect(prettyPrint(new DefaultToString()), |
| + matches(r"<Instance of '" + _minifiedName + r"'>")); |
| + }); |
| + |
| + test('with a custom [toString]', () { |
| + expect(prettyPrint(new CustomToString()), |
| + matches(_minifiedName + r':<string representation>')); |
| + }); |
| + |
| + test('with a custom [toString] and a private name', () { |
| + expect(prettyPrint(new _PrivateName()), |
| + matches(_minifiedName + r':<string representation>')); |
| + }); |
| + }); |
| + |
| + group('with an iterable', () { |
| + test("that's not a list", () { |
| + expect(prettyPrint([1, 2, 3, 4].map((n) => n * 2)), |
| + matches(_minifiedName + r":\[2, 4, 6, 8\]")); |
| + }); |
| + |
| + test("that's not a list and has a private name", () { |
| + expect(prettyPrint(new _PrivateNameIterable()), |
| + matches(_minifiedName + r":\[1, 2, 3\]")); |
| + }); |
| + }); |
| +} |