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

Side by Side Diff: packages/matcher/test/pretty_print_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 matcher.pretty_print_test;
6
7 import 'dart:collection'; 5 import 'dart:collection';
8 6
9 import 'package:matcher/matcher.dart'; 7 import 'package:matcher/matcher.dart';
10 import 'package:matcher/src/pretty_print.dart'; 8 import 'package:matcher/src/pretty_print.dart';
11 import 'package:test/test.dart' show group, test, expect; 9 import 'package:test/test.dart' show group, test, expect;
12 10
13 class DefaultToString {} 11 class DefaultToString {}
14 12
15 class CustomToString { 13 class CustomToString {
16 String toString() => "string representation"; 14 String toString() => "string representation";
17 } 15 }
18 16
19 class _PrivateName { 17 class _PrivateName {
20 String toString() => "string representation"; 18 String toString() => "string representation";
21 } 19 }
22 20
23 class _PrivateNameIterable extends IterableMixin { 21 class _PrivateNameIterable extends IterableMixin {
24 Iterator get iterator => [1, 2, 3].iterator; 22 Iterator get iterator => [1, 2, 3].iterator;
25 } 23 }
26 24
27 void main() { 25 void main() {
28 test('with primitive objects', () { 26 test('with primitive objects', () {
29 expect(prettyPrint(12), equals('<12>')); 27 expect(prettyPrint(12), equals('<12>'));
30 expect(prettyPrint(12.13), equals('<12.13>')); 28 expect(prettyPrint(12.13), equals('<12.13>'));
31 expect(prettyPrint(true), equals('<true>')); 29 expect(prettyPrint(true), equals('<true>'));
32 expect(prettyPrint(null), equals('<null>')); 30 expect(prettyPrint(null), equals('<null>'));
33 expect(prettyPrint(() => 12), matches(r'<Closure(: \(\) => dynamic)?>')); 31 expect(prettyPrint(() => 12), matches(r'<Closure.*>'));
34 }); 32 });
35 33
36 group('with a string', () { 34 group('with a string', () {
37 test('containing simple characters', () { 35 test('containing simple characters', () {
38 expect(prettyPrint('foo'), equals("'foo'")); 36 expect(prettyPrint('foo'), equals("'foo'"));
39 }); 37 });
40 38
41 test('containing newlines', () { 39 test('containing newlines', () {
42 expect(prettyPrint('foo\nbar\nbaz'), equals("'foo\\n'\n" 40 expect(
43 " 'bar\\n'\n" 41 prettyPrint('foo\nbar\nbaz'),
44 " 'baz'")); 42 equals("'foo\\n'\n"
43 " 'bar\\n'\n"
44 " 'baz'"));
45 }); 45 });
46 46
47 test('containing escapable characters', () { 47 test('containing escapable characters', () {
48 expect( 48 expect(prettyPrint("foo\rbar\tbaz'qux\v"),
49 prettyPrint("foo\rbar\tbaz'qux\v"), equals(r"'foo\rbar\tbaz\'qux\v'")) ; 49 equals(r"'foo\rbar\tbaz\'qux\v'"));
50 }); 50 });
51 }); 51 });
52 52
53 group('with an iterable', () { 53 group('with an iterable', () {
54 test('containing primitive objects', () { 54 test('containing primitive objects', () {
55 expect(prettyPrint([1, true, 'foo']), equals("[1, true, 'foo']")); 55 expect(prettyPrint([1, true, 'foo']), equals("[1, true, 'foo']"));
56 }); 56 });
57 57
58 test('containing a multiline string', () { 58 test('containing a multiline string', () {
59 expect(prettyPrint(['foo', 'bar\nbaz\nbip', 'qux']), equals("[\n" 59 expect(
60 " 'foo',\n" 60 prettyPrint(['foo', 'bar\nbaz\nbip', 'qux']),
61 " 'bar\\n'\n" 61 equals("[\n"
62 " 'baz\\n'\n" 62 " 'foo',\n"
63 " 'bip',\n" 63 " 'bar\\n'\n"
64 " 'qux'\n" 64 " 'baz\\n'\n"
65 "]")); 65 " 'bip',\n"
66 " 'qux'\n"
67 "]"));
66 }); 68 });
67 69
68 test('containing a matcher', () { 70 test('containing a matcher', () {
69 expect(prettyPrint(['foo', endsWith('qux')]), 71 expect(prettyPrint(['foo', endsWith('qux')]),
70 equals("['foo', <a string ending with 'qux'>]")); 72 equals("['foo', <a string ending with 'qux'>]"));
71 }); 73 });
72 74
73 test("that's under maxLineLength", () { 75 test("that's under maxLineLength", () {
74 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxLineLength: 30), 76 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxLineLength: 30),
75 equals("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]")); 77 equals("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"));
76 }); 78 });
77 79
78 test("that's over maxLineLength", () { 80 test("that's over maxLineLength", () {
79 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxLineLength: 29), 81 expect(
82 prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxLineLength: 29),
80 equals("[\n" 83 equals("[\n"
81 " 0,\n" 84 " 0,\n"
82 " 1,\n" 85 " 1,\n"
83 " 2,\n" 86 " 2,\n"
84 " 3,\n" 87 " 3,\n"
85 " 4,\n" 88 " 4,\n"
86 " 5,\n" 89 " 5,\n"
87 " 6,\n" 90 " 6,\n"
88 " 7,\n" 91 " 7,\n"
89 " 8,\n" 92 " 8,\n"
90 " 9\n" 93 " 9\n"
91 "]")); 94 "]"));
92 }); 95 });
93 96
94 test("factors indentation into maxLineLength", () { 97 test("factors indentation into maxLineLength", () {
95 expect(prettyPrint(["foo\nbar", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],], 98 expect(
96 maxLineLength: 30), equals("[\n" 99 prettyPrint([
97 " 'foo\\n'\n" 100 "foo\nbar",
98 " 'bar',\n" 101 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
99 " [\n" 102 ], maxLineLength: 30),
100 " 0,\n" 103 equals("[\n"
101 " 1,\n" 104 " 'foo\\n'\n"
102 " 2,\n" 105 " 'bar',\n"
103 " 3,\n" 106 " [\n"
104 " 4,\n" 107 " 0,\n"
105 " 5,\n" 108 " 1,\n"
106 " 6,\n" 109 " 2,\n"
107 " 7,\n" 110 " 3,\n"
108 " 8,\n" 111 " 4,\n"
109 " 9\n" 112 " 5,\n"
110 " ]\n" 113 " 6,\n"
111 "]")); 114 " 7,\n"
115 " 8,\n"
116 " 9\n"
117 " ]\n"
118 "]"));
112 }); 119 });
113 120
114 test("that's under maxItems", () { 121 test("that's under maxItems", () {
115 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxItems: 10), 122 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxItems: 10),
116 equals("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]")); 123 equals("[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"));
117 }); 124 });
118 125
119 test("that's over maxItems", () { 126 test("that's over maxItems", () {
120 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxItems: 9), 127 expect(prettyPrint([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxItems: 9),
121 equals("[0, 1, 2, 3, 4, 5, 6, 7, ...]")); 128 equals("[0, 1, 2, 3, 4, 5, 6, 7, ...]"));
122 }); 129 });
123 130
124 test("that's recursive", () { 131 test("that's recursive", () {
125 var list = [1, 2, 3]; 132 var list = <dynamic>[1, 2, 3];
126 list.add(list); 133 list.add(list);
127 expect(prettyPrint(list), equals("[1, 2, 3, (recursive)]")); 134 expect(prettyPrint(list), equals("[1, 2, 3, (recursive)]"));
128 }); 135 });
129 }); 136 });
130 137
131 group("with a map", () { 138 group("with a map", () {
132 test('containing primitive objects', () { 139 test('containing primitive objects', () {
133 expect(prettyPrint({'foo': 1, 'bar': true}), 140 expect(prettyPrint({'foo': 1, 'bar': true}),
134 equals("{'foo': 1, 'bar': true}")); 141 equals("{'foo': 1, 'bar': true}"));
135 }); 142 });
136 143
137 test('containing a multiline string key', () { 144 test('containing a multiline string key', () {
138 expect(prettyPrint({'foo\nbar': 1, 'bar': true}), equals("{\n" 145 expect(
139 " 'foo\\n'\n" 146 prettyPrint({'foo\nbar': 1, 'bar': true}),
140 " 'bar': 1,\n" 147 equals("{\n"
141 " 'bar': true\n" 148 " 'foo\\n'\n"
142 "}")); 149 " 'bar': 1,\n"
150 " 'bar': true\n"
151 "}"));
143 }); 152 });
144 153
145 test('containing a multiline string value', () { 154 test('containing a multiline string value', () {
146 expect(prettyPrint({'foo': 'bar\nbaz', 'qux': true}), equals("{\n" 155 expect(
147 " 'foo': 'bar\\n'\n" 156 prettyPrint({'foo': 'bar\nbaz', 'qux': true}),
148 " 'baz',\n" 157 equals("{\n"
149 " 'qux': true\n" 158 " 'foo': 'bar\\n'\n"
150 "}")); 159 " 'baz',\n"
160 " 'qux': true\n"
161 "}"));
151 }); 162 });
152 163
153 test('containing a multiline string key/value pair', () { 164 test('containing a multiline string key/value pair', () {
154 expect(prettyPrint({'foo\nbar': 'baz\nqux'}), equals("{\n" 165 expect(
155 " 'foo\\n'\n" 166 prettyPrint({'foo\nbar': 'baz\nqux'}),
156 " 'bar': 'baz\\n'\n" 167 equals("{\n"
157 " 'qux'\n" 168 " 'foo\\n'\n"
158 "}")); 169 " 'bar': 'baz\\n'\n"
170 " 'qux'\n"
171 "}"));
159 }); 172 });
160 173
161 test('containing a matcher key', () { 174 test('containing a matcher key', () {
162 expect(prettyPrint({endsWith('bar'): 'qux'}), 175 expect(prettyPrint({endsWith('bar'): 'qux'}),
163 equals("{<a string ending with 'bar'>: 'qux'}")); 176 equals("{<a string ending with 'bar'>: 'qux'}"));
164 }); 177 });
165 178
166 test('containing a matcher value', () { 179 test('containing a matcher value', () {
167 expect(prettyPrint({'foo': endsWith('qux')}), 180 expect(prettyPrint({'foo': endsWith('qux')}),
168 equals("{'foo': <a string ending with 'qux'>}")); 181 equals("{'foo': <a string ending with 'qux'>}"));
169 }); 182 });
170 183
171 test("that's under maxLineLength", () { 184 test("that's under maxLineLength", () {
172 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxLineLength: 32), 185 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxLineLength: 32),
173 equals("{'0': 1, '2': 3, '4': 5, '6': 7}")); 186 equals("{'0': 1, '2': 3, '4': 5, '6': 7}"));
174 }); 187 });
175 188
176 test("that's over maxLineLength", () { 189 test("that's over maxLineLength", () {
177 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxLineLength: 31), 190 expect(
191 prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxLineLength: 31),
178 equals("{\n" 192 equals("{\n"
179 " '0': 1,\n" 193 " '0': 1,\n"
180 " '2': 3,\n" 194 " '2': 3,\n"
181 " '4': 5,\n" 195 " '4': 5,\n"
182 " '6': 7\n" 196 " '6': 7\n"
183 "}")); 197 "}"));
184 }); 198 });
185 199
186 test("factors indentation into maxLineLength", () { 200 test("factors indentation into maxLineLength", () {
187 expect(prettyPrint(["foo\nbar", {'0': 1, '2': 3, '4': 5, '6': 7}], 201 expect(
188 maxLineLength: 32), equals("[\n" 202 prettyPrint([
189 " 'foo\\n'\n" 203 "foo\nbar",
190 " 'bar',\n" 204 {'0': 1, '2': 3, '4': 5, '6': 7}
191 " {\n" 205 ], maxLineLength: 32),
192 " '0': 1,\n" 206 equals("[\n"
193 " '2': 3,\n" 207 " 'foo\\n'\n"
194 " '4': 5,\n" 208 " 'bar',\n"
195 " '6': 7\n" 209 " {\n"
196 " }\n" 210 " '0': 1,\n"
197 "]")); 211 " '2': 3,\n"
212 " '4': 5,\n"
213 " '6': 7\n"
214 " }\n"
215 "]"));
198 }); 216 });
199 217
200 test("that's under maxItems", () { 218 test("that's under maxItems", () {
201 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxItems: 4), 219 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxItems: 4),
202 equals("{'0': 1, '2': 3, '4': 5, '6': 7}")); 220 equals("{'0': 1, '2': 3, '4': 5, '6': 7}"));
203 }); 221 });
204 222
205 test("that's over maxItems", () { 223 test("that's over maxItems", () {
206 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxItems: 3), 224 expect(prettyPrint({'0': 1, '2': 3, '4': 5, '6': 7}, maxItems: 3),
207 equals("{'0': 1, '2': 3, ...}")); 225 equals("{'0': 1, '2': 3, ...}"));
(...skipping 20 matching lines...) Expand all
228 test("that's not a list", () { 246 test("that's not a list", () {
229 expect(prettyPrint([1, 2, 3, 4].map((n) => n * 2)), 247 expect(prettyPrint([1, 2, 3, 4].map((n) => n * 2)),
230 equals("MappedListIterable:[2, 4, 6, 8]")); 248 equals("MappedListIterable:[2, 4, 6, 8]"));
231 }); 249 });
232 250
233 test("that's not a list and has a private name", () { 251 test("that's not a list and has a private name", () {
234 expect(prettyPrint(new _PrivateNameIterable()), equals("?:[1, 2, 3]")); 252 expect(prettyPrint(new _PrivateNameIterable()), equals("?:[1, 2, 3]"));
235 }); 253 });
236 }); 254 });
237 } 255 }
OLDNEW
« no previous file with comments | « packages/matcher/test/order_matchers_test.dart ('k') | packages/matcher/test/string_matchers_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698