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

Side by Side Diff: test/codegen_expected/unittest/unittest.js

Issue 2234343003: fix #620, infer the input files from sources (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix Created 4 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
(Empty)
1 dart_library.library('unittest', null, /* Imports */[
2 'dart_sdk',
3 'stack_trace'
4 ], function load__unittest(exports, dart_sdk, stack_trace) {
5 'use strict';
6 const core = dart_sdk.core;
7 const collection = dart_sdk.collection;
8 const async = dart_sdk.async;
9 const _interceptors = dart_sdk._interceptors;
10 const isolate = dart_sdk.isolate;
11 const html = dart_sdk.html;
12 const convert = dart_sdk.convert;
13 const js = dart_sdk.js;
14 const dart = dart_sdk.dart;
15 const dartx = dart_sdk.dartx;
16 const src__trace = stack_trace.src__trace;
17 const src__frame = stack_trace.src__frame;
18 const unittest = Object.create(null);
19 const src__configuration = Object.create(null);
20 const src__simple_configuration = Object.create(null);
21 const src__matcher = Object.create(null);
22 const src__matcher__core_matchers = Object.create(null);
23 const src__matcher__description = Object.create(null);
24 const src__matcher__interfaces = Object.create(null);
25 const src__matcher__pretty_print = Object.create(null);
26 const src__matcher__util = Object.create(null);
27 const src__matcher__error_matchers = Object.create(null);
28 const src__matcher__expect = Object.create(null);
29 const src__matcher__future_matchers = Object.create(null);
30 const src__matcher__iterable_matchers = Object.create(null);
31 const src__matcher__map_matchers = Object.create(null);
32 const src__matcher__numeric_matchers = Object.create(null);
33 const src__matcher__operator_matchers = Object.create(null);
34 const src__matcher__prints_matcher = Object.create(null);
35 const src__matcher__string_matchers = Object.create(null);
36 const src__matcher__throws_matcher = Object.create(null);
37 const src__matcher__throws_matchers = Object.create(null);
38 const src__internal_test_case = Object.create(null);
39 const src__test_environment = Object.create(null);
40 const src__group_context = Object.create(null);
41 const src__utils = Object.create(null);
42 const src__test_case = Object.create(null);
43 const src__expected_function = Object.create(null);
44 const html_config = Object.create(null);
45 const html_individual_config = Object.create(null);
46 const html_enhanced_config = Object.create(null);
47 let UnmodifiableListViewOfTestCase = () => (UnmodifiableListViewOfTestCase = d art.constFn(collection.UnmodifiableListView$(src__test_case.TestCase)))();
48 let VoidTobool = () => (VoidTobool = dart.constFn(dart.functionType(core.bool, [])))();
49 let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.functionType(dart.void, [])))();
50 let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.functionType(dart .dynamic, [])))();
51 let dynamicAnddynamicTobool = () => (dynamicAnddynamicTobool = dart.constFn(da rt.functionType(core.bool, [dart.dynamic, dart.dynamic])))();
52 let isInstanceOf = () => (isInstanceOf = dart.constFn(src__matcher__core_match ers.isInstanceOf$()))();
53 let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.functionType(core .bool, [dart.dynamic])))();
54 let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String)) )();
55 let PairOfString$StackTrace = () => (PairOfString$StackTrace = dart.constFn(sr c__utils.Pair$(core.String, core.StackTrace)))();
56 let JSArrayOfPairOfString$StackTrace = () => (JSArrayOfPairOfString$StackTrace = dart.constFn(_interceptors.JSArray$(PairOfString$StackTrace())))();
57 let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSAr ray$(core.String)))();
58 let ListOfbool = () => (ListOfbool = dart.constFn(core.List$(core.bool)))();
59 let ListOfMatcher = () => (ListOfMatcher = dart.constFn(core.List$(src__matche r__interfaces.Matcher)))();
60 let ListOfInternalTestCase = () => (ListOfInternalTestCase = dart.constFn(core .List$(src__internal_test_case.InternalTestCase)))();
61 let Pair = () => (Pair = dart.constFn(src__utils.Pair$()))();
62 let ListOfTestCase = () => (ListOfTestCase = dart.constFn(core.List$(src__test _case.TestCase)))();
63 let LinkedHashMapOfString$ListOfTestCase = () => (LinkedHashMapOfString$ListOf TestCase = dart.constFn(collection.LinkedHashMap$(core.String, ListOfTestCase()) ))();
64 let StringTovoid = () => (StringTovoid = dart.constFn(dart.definiteFunctionTyp e(dart.void, [core.String])))();
65 let StringAndTestFunctionTovoid = () => (StringAndTestFunctionTovoid = dart.co nstFn(dart.definiteFunctionType(dart.void, [core.String, unittest.TestFunction]) ))();
66 let StringToString = () => (StringToString = dart.constFn(dart.definiteFunctio nType(core.String, [core.String])))();
67 let Function__ToFunction = () => (Function__ToFunction = dart.constFn(dart.def initeFunctionType(core.Function, [core.Function], {count: core.int, max: core.in t, id: core.String, reason: core.String})))();
68 let FunctionAndFn__ToFunction = () => (FunctionAndFn__ToFunction = dart.constF n(dart.definiteFunctionType(core.Function, [core.Function, VoidTobool()], {id: c ore.String, reason: core.String})))();
69 let StringAndFnTovoid = () => (StringAndFnTovoid = dart.constFn(dart.definiteF unctionType(dart.void, [core.String, VoidTovoid()])))();
70 let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctio nType(dart.void, [core.Function])))();
71 let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType( dart.void, [])))();
72 let dynamicAndString__Tovoid = () => (dynamicAndString__Tovoid = dart.constFn( dart.definiteFunctionType(dart.void, [dart.dynamic, core.String], [dart.dynamic] )))();
73 let InternalTestCaseTobool = () => (InternalTestCaseTobool = dart.constFn(dart .definiteFunctionType(core.bool, [src__internal_test_case.InternalTestCase])))() ;
74 let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionT ype(dart.void, [dart.dynamic])))();
75 let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunct ionType(dart.void, [dart.dynamic], [core.StackTrace])))();
76 let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.cons tFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
77 let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctio nType(dart.dynamic, [])))();
78 let dynamic__ToFunction = () => (dynamic__ToFunction = dart.constFn(dart.defin iteFunctionType(core.Function, [dart.dynamic], [dart.dynamic])))();
79 let boolTovoid = () => (boolTovoid = dart.constFn(dart.definiteFunctionType(da rt.void, [core.bool])))();
80 let intTovoid = () => (intTovoid = dart.constFn(dart.definiteFunctionType(dart .void, [core.int])))();
81 let int__Tovoid = () => (int__Tovoid = dart.constFn(dart.definiteFunctionType( dart.void, [core.int], {enable: core.bool})))();
82 let FnTodynamic = () => (FnTodynamic = dart.constFn(dart.definiteFunctionType( dart.dynamic, [VoidTodynamic()])))();
83 let __ToErrorFormatter = () => (__ToErrorFormatter = dart.constFn(dart.definit eFunctionType(src__matcher__expect.ErrorFormatter, [], [src__matcher__expect.Err orFormatter])))();
84 let dynamic__ToMatcher = () => (dynamic__ToMatcher = dart.constFn(dart.definit eFunctionType(src__matcher__interfaces.Matcher, [dart.dynamic], [core.int])))();
85 let IterableAndFnAndStringToMatcher = () => (IterableAndFnAndStringToMatcher = dart.constFn(dart.definiteFunctionType(src__matcher__interfaces.Matcher, [core. Iterable, dynamicAnddynamicTobool(), core.String])))();
86 let dynamicToMatcher = () => (dynamicToMatcher = dart.constFn(dart.definiteFun ctionType(src__matcher__interfaces.Matcher, [dart.dynamic])))();
87 let dynamicAnddynamic__Tovoid = () => (dynamicAnddynamic__Tovoid = dart.constF n(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic], {reason: co re.String, failureHandler: src__matcher__expect.FailureHandler, verbose: core.bo ol})))();
88 let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctio nType(dart.void, [core.String], {failureHandler: src__matcher__expect.FailureHan dler})))();
89 let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFun ctionType(dart.dynamic, [dart.dynamic])))();
90 let numAndnumToMatcher = () => (numAndnumToMatcher = dart.constFn(dart.definit eFunctionType(src__matcher__interfaces.Matcher, [core.num, core.num])))();
91 let StringToMatcher = () => (StringToMatcher = dart.constFn(dart.definiteFunct ionType(src__matcher__interfaces.Matcher, [core.String])))();
92 let IterableToMatcher = () => (IterableToMatcher = dart.constFn(dart.definiteF unctionType(src__matcher__interfaces.Matcher, [core.Iterable])))();
93 let MatchToString = () => (MatchToString = dart.constFn(dart.definiteFunctionT ype(core.String, [core.Match])))();
94 let Function__ToFunction$ = () => (Function__ToFunction$ = dart.constFn(dart.d efiniteFunctionType(core.Function, [core.Function], [dart.dynamic])))();
95 let Fn__ToMatcher = () => (Fn__ToMatcher = dart.constFn(dart.definiteFunctionT ype(src__matcher__interfaces.Matcher, [dynamicTobool()], [core.String])))();
96 let MapAndMapTovoid = () => (MapAndMapTovoid = dart.constFn(dart.definiteFunct ionType(dart.void, [core.Map, core.Map])))();
97 let dynamic__ToMatcher$ = () => (dynamic__ToMatcher$ = dart.constFn(dart.defin iteFunctionType(src__matcher__interfaces.Matcher, [dart.dynamic], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
98 let VoidToFailureHandler = () => (VoidToFailureHandler = dart.constFn(dart.def initeFunctionType(src__matcher__expect.FailureHandler, [])))();
99 let __Tovoid = () => (__Tovoid = dart.constFn(dart.definiteFunctionType(dart.v oid, [], [src__matcher__expect.FailureHandler])))();
100 let dynamic__ToMatcher$0 = () => (dynamic__ToMatcher$0 = dart.constFn(dart.def initeFunctionType(src__matcher__interfaces.Matcher, [dart.dynamic], [core.String ])))();
101 let dynamicAnddynamicToMatcher = () => (dynamicAnddynamicToMatcher = dart.cons tFn(dart.definiteFunctionType(src__matcher__interfaces.Matcher, [dart.dynamic, d art.dynamic])))();
102 let ListOfStringToMatcher = () => (ListOfStringToMatcher = dart.constFn(dart.d efiniteFunctionType(src__matcher__interfaces.Matcher, [ListOfString()])))();
103 let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctio nType(core.bool, [dart.dynamic])))();
104 let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunct ionType(core.String, [dart.dynamic])))();
105 let dynamicAndintAndSet__ToString = () => (dynamicAndintAndSet__ToString = dar t.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, core.int, core.S et, core.bool])))();
106 let dynamic__ToString = () => (dynamic__ToString = dart.constFn(dart.definiteF unctionType(core.String, [dart.dynamic], {maxLineLength: core.int, maxItems: cor e.int})))();
107 let intToString = () => (intToString = dart.constFn(dart.definiteFunctionType( core.String, [core.int])))();
108 let dynamicAndMatcherAndString__ToString = () => (dynamicAndMatcherAndString__ ToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, sr c__matcher__interfaces.Matcher, core.String, core.Map, core.bool])))();
109 let dynamicAnddynamicAnddynamic__ToListOfMatcher = () => (dynamicAnddynamicAnd dynamic__ToListOfMatcher = dart.constFn(dart.definiteFunctionType(ListOfMatcher( ), [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.d ynamic, dart.dynamic])))();
110 let ZoneAndZoneDelegateAndZone__Tovoid = () => (ZoneAndZoneDelegateAndZone__To void = dart.constFn(dart.definiteFunctionType(dart.void, [async.Zone, async.Zone Delegate, async.Zone, core.String])))();
111 let StringTobool = () => (StringTobool = dart.constFn(dart.definiteFunctionTyp e(core.bool, [core.String])))();
112 let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunct ionType(async.Future, [dart.dynamic])))();
113 let FrameTobool = () => (FrameTobool = dart.constFn(dart.definiteFunctionType( core.bool, [src__frame.Frame])))();
114 let dynamicAndboolAndboolToTrace = () => (dynamicAndboolAndboolToTrace = dart. constFn(dart.definiteFunctionType(src__trace.Trace, [dart.dynamic, core.bool, co re.bool])))();
115 let EventTovoid = () => (EventTovoid = dart.constFn(dart.definiteFunctionType( dart.void, [html.Event])))();
116 let intAndintAndint__Tovoid = () => (intAndintAndint__Tovoid = dart.constFn(da rt.definiteFunctionType(dart.void, [core.int, core.int, core.int, ListOfTestCase (), core.bool, core.String])))();
117 let TestCaseToString = () => (TestCaseToString = dart.constFn(dart.definiteFun ctionType(core.String, [src__test_case.TestCase])))();
118 let MessageEventTovoid = () => (MessageEventTovoid = dart.constFn(dart.definit eFunctionType(dart.void, [html.MessageEvent])))();
119 let __Tovoid$ = () => (__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart .void, [], [core.bool])))();
120 let TestCaseTobool = () => (TestCaseTobool = dart.constFn(dart.definiteFunctio nType(core.bool, [src__test_case.TestCase])))();
121 let ElementToString = () => (ElementToString = dart.constFn(dart.definiteFunct ionType(core.String, [html.Element])))();
122 let MouseEventTovoid = () => (MouseEventTovoid = dart.constFn(dart.definiteFun ctionType(dart.void, [html.MouseEvent])))();
123 let TestCaseAndTestCaseToint = () => (TestCaseAndTestCaseToint = dart.constFn( dart.definiteFunctionType(core.int, [src__test_case.TestCase, src__test_case.Tes tCase])))();
124 let ListOfTestCaseTovoid = () => (ListOfTestCaseTovoid = dart.constFn(dart.def initeFunctionType(dart.void, [ListOfTestCase()])))();
125 let dynamicAnddynamicAnddynamicTodynamic = () => (dynamicAnddynamicAnddynamicT odynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, d art.dynamic, dart.dynamic])))();
126 unittest.TestFunction = dart.typedef('TestFunction', () => dart.functionType(d art.dynamic, []));
127 dart.copyProperties(unittest, {
128 get unittestConfiguration() {
129 if (src__test_environment.config == null) src__test_environment.environmen t.config = src__configuration.Configuration.new();
130 return src__test_environment.config;
131 },
132 set unittestConfiguration(value) {
133 if (core.identical(src__test_environment.config, value)) return;
134 if (src__test_environment.config != null) {
135 unittest.logMessage('Warning: The unittestConfiguration has already been set. New ' + 'unittestConfiguration ignored.');
136 } else {
137 src__test_environment.environment.config = value;
138 }
139 }
140 });
141 unittest.formatStacks = true;
142 unittest.filterStacks = true;
143 unittest.groupSep = ' ';
144 unittest.logMessage = function(message) {
145 return src__test_environment.config.onLogMessage(unittest.currentTestCase, m essage);
146 };
147 dart.fn(unittest.logMessage, StringTovoid());
148 dart.copyProperties(unittest, {
149 get testCases() {
150 return new (UnmodifiableListViewOfTestCase())(src__test_environment.enviro nment.testCases);
151 }
152 });
153 unittest.BREATH_INTERVAL = 200;
154 dart.copyProperties(unittest, {
155 get currentTestCase() {
156 return dart.notNull(src__test_environment.environment.currentTestCaseIndex ) >= 0 && dart.notNull(src__test_environment.environment.currentTestCaseIndex) < dart.notNull(unittest.testCases[dartx.length]) ? unittest.testCases[dartx.get]( src__test_environment.environment.currentTestCaseIndex) : null;
157 }
158 });
159 dart.copyProperties(unittest, {
160 get _currentTestCase() {
161 return src__internal_test_case.InternalTestCase.as(unittest.currentTestCas e);
162 }
163 });
164 unittest.PASS = 'pass';
165 unittest.FAIL = 'fail';
166 unittest.ERROR = 'error';
167 unittest.test = function(description, body) {
168 unittest._requireNotRunning();
169 unittest.ensureInitialized();
170 if (dart.test(src__test_environment.environment.soloTestSeen) && src__test_e nvironment.environment.soloNestingLevel == 0) return;
171 let testCase = new src__internal_test_case.InternalTestCase(dart.notNull(uni ttest.testCases[dartx.length]) + 1, unittest._fullDescription(description), body );
172 src__test_environment.environment.testCases[dartx.add](testCase);
173 };
174 dart.fn(unittest.test, StringAndTestFunctionTovoid());
175 unittest._fullDescription = function(description) {
176 let group = src__test_environment.environment.currentContext.fullName;
177 if (description == null) return group;
178 return group != '' ? dart.str`${group}${unittest.groupSep}${description}` : description;
179 };
180 dart.fn(unittest._fullDescription, StringToString());
181 unittest.skip_test = function(spec, body) {
182 };
183 dart.fn(unittest.skip_test, StringAndTestFunctionTovoid());
184 unittest.solo_test = function(spec, body) {
185 unittest._requireNotRunning();
186 unittest.ensureInitialized();
187 if (!dart.test(src__test_environment.environment.soloTestSeen)) {
188 src__test_environment.environment.soloTestSeen = true;
189 src__test_environment.environment.testCases[dartx.clear]();
190 }
191 let o = src__test_environment.environment;
192 o.soloNestingLevel = dart.notNull(o.soloNestingLevel) + 1;
193 try {
194 unittest.test(spec, body);
195 } finally {
196 let o$ = src__test_environment.environment;
197 o$.soloNestingLevel = dart.notNull(o$.soloNestingLevel) - 1;
198 }
199 };
200 dart.fn(unittest.solo_test, StringAndTestFunctionTovoid());
201 unittest.expectAsync = function(callback, opts) {
202 let count = opts && 'count' in opts ? opts.count : 1;
203 let max = opts && 'max' in opts ? opts.max : 0;
204 let id = opts && 'id' in opts ? opts.id : null;
205 let reason = opts && 'reason' in opts ? opts.reason : null;
206 return new src__expected_function.ExpectedFunction(callback, count, max, {id : id, reason: reason}).func;
207 };
208 dart.fn(unittest.expectAsync, Function__ToFunction());
209 unittest.expectAsyncUntil = function(callback, isDone, opts) {
210 let id = opts && 'id' in opts ? opts.id : null;
211 let reason = opts && 'reason' in opts ? opts.reason : null;
212 return new src__expected_function.ExpectedFunction(callback, 0, -1, {id: id, reason: reason, isDone: isDone}).func;
213 };
214 dart.fn(unittest.expectAsyncUntil, FunctionAndFn__ToFunction());
215 unittest.group = function(description, body) {
216 unittest.ensureInitialized();
217 unittest._requireNotRunning();
218 src__test_environment.environment.currentContext = new src__group_context.Gr oupContext(src__test_environment.environment.currentContext, description);
219 try {
220 body();
221 } catch (e) {
222 let trace = dart.stackTrace(e);
223 let stack = trace == null ? '' : dart.str`: ${trace.toString()}`;
224 src__test_environment.environment.uncaughtErrorMessage = dart.str`${dart.t oString(e)}${stack}`;
225 }
226 finally {
227 src__test_environment.environment.currentContext = src__test_environment.e nvironment.currentContext.parent;
228 }
229 };
230 dart.fn(unittest.group, StringAndFnTovoid());
231 unittest.skip_group = function(description, body) {
232 };
233 dart.fn(unittest.skip_group, StringAndFnTovoid());
234 unittest.solo_group = function(description, body) {
235 unittest._requireNotRunning();
236 unittest.ensureInitialized();
237 if (!dart.test(src__test_environment.environment.soloTestSeen)) {
238 src__test_environment.environment.soloTestSeen = true;
239 src__test_environment.environment.testCases[dartx.clear]();
240 }
241 let o = src__test_environment.environment;
242 o.soloNestingLevel = dart.notNull(o.soloNestingLevel) + 1;
243 try {
244 unittest.group(description, body);
245 } finally {
246 let o$ = src__test_environment.environment;
247 o$.soloNestingLevel = dart.notNull(o$.soloNestingLevel) - 1;
248 }
249 };
250 dart.fn(unittest.solo_group, StringAndFnTovoid());
251 unittest.setUp = function(callback) {
252 unittest._requireNotRunning();
253 src__test_environment.environment.currentContext.testSetUp = callback;
254 };
255 dart.fn(unittest.setUp, FunctionTovoid());
256 unittest.tearDown = function(callback) {
257 unittest._requireNotRunning();
258 src__test_environment.environment.currentContext.testTearDown = callback;
259 };
260 dart.fn(unittest.tearDown, FunctionTovoid());
261 unittest._nextTestCase = function() {
262 let o = src__test_environment.environment;
263 o.currentTestCaseIndex = dart.notNull(o.currentTestCaseIndex) + 1;
264 unittest._runTest();
265 };
266 dart.fn(unittest._nextTestCase, VoidTovoid$());
267 unittest.handleExternalError = function(e, message, stackTrace) {
268 if (stackTrace === void 0) stackTrace = null;
269 let msg = dart.str`${message}\nCaught ${e}`;
270 if (unittest.currentTestCase != null) {
271 unittest._currentTestCase.error(msg, core.StackTrace._check(stackTrace));
272 } else {
273 src__test_environment.environment.uncaughtErrorMessage = dart.str`${msg}: ${stackTrace}`;
274 }
275 };
276 dart.fn(unittest.handleExternalError, dynamicAndString__Tovoid());
277 unittest._TestFilter = dart.typedef('_TestFilter', () => dart.functionType(cor e.bool, [src__internal_test_case.InternalTestCase]));
278 unittest.filterTests = function(testFilter) {
279 let filterFunction = null;
280 if (typeof testFilter == 'string') {
281 let re = core.RegExp.new(testFilter);
282 filterFunction = dart.fn(t => re.hasMatch(t.description), InternalTestCase Tobool());
283 } else if (core.RegExp.is(testFilter)) {
284 filterFunction = dart.fn(t => testFilter.hasMatch(t.description), Internal TestCaseTobool());
285 } else if (unittest._TestFilter.is(testFilter)) {
286 filterFunction = testFilter;
287 }
288 src__test_environment.environment.testCases[dartx.retainWhere](filterFunctio n);
289 };
290 dart.fn(unittest.filterTests, dynamicTovoid());
291 unittest.runTests = function() {
292 unittest._requireNotRunning();
293 unittest._ensureInitialized(false);
294 src__test_environment.environment.currentTestCaseIndex = 0;
295 src__test_environment.config.onStart();
296 unittest._runTest();
297 };
298 dart.fn(unittest.runTests, VoidTovoid$());
299 unittest.registerException = function(error, stackTrace) {
300 if (stackTrace === void 0) stackTrace = null;
301 return unittest._currentTestCase.registerException(error, stackTrace);
302 };
303 dart.fn(unittest.registerException, dynamic__Tovoid());
304 unittest._runTest = function() {
305 if (dart.notNull(src__test_environment.environment.currentTestCaseIndex) >= dart.notNull(unittest.testCases[dartx.length])) {
306 dart.assert(src__test_environment.environment.currentTestCaseIndex == unit test.testCases[dartx.length]);
307 unittest._completeTests();
308 return;
309 }
310 let testCase = unittest._currentTestCase;
311 let f = async.runZoned(async.Future)(dart.bind(testCase, 'run'), {onError: d art.fn((error, stack) => {
312 testCase.registerException(error, core.StackTrace._check(stack));
313 }, dynamicAnddynamicTodynamic())});
314 let timer = null;
315 let timeout = unittest.unittestConfiguration.timeout;
316 if (timeout != null) {
317 try {
318 timer = async.Timer.new(timeout, dart.fn(() => {
319 testCase.error(dart.str`Test timed out after ${timeout.inSeconds} seco nds.`);
320 unittest._nextTestCase();
321 }, VoidTovoid$()));
322 } catch (e) {
323 if (core.UnsupportedError.is(e)) {
324 if (e.message != "Timer greater than 0.") throw e;
325 } else
326 throw e;
327 }
328
329 }
330 f.whenComplete(dart.fn(() => {
331 if (timer != null) dart.dsend(timer, 'cancel');
332 let now = new core.DateTime.now().millisecondsSinceEpoch;
333 if (dart.notNull(now) - dart.notNull(src__test_environment.environment.las tBreath) >= unittest.BREATH_INTERVAL) {
334 src__test_environment.environment.lastBreath = now;
335 async.Timer.run(unittest._nextTestCase);
336 } else {
337 async.scheduleMicrotask(unittest._nextTestCase);
338 }
339 }, VoidTodynamic$()));
340 };
341 dart.fn(unittest._runTest, VoidTovoid$());
342 unittest._completeTests = function() {
343 if (!dart.test(src__test_environment.environment.initialized)) return;
344 let passed = 0;
345 let failed = 0;
346 let errors = 0;
347 for (let testCase of unittest.testCases) {
348 switch (testCase.result) {
349 case unittest.PASS:
350 {
351 passed++;
352 break;
353 }
354 case unittest.FAIL:
355 {
356 failed++;
357 break;
358 }
359 case unittest.ERROR:
360 {
361 errors++;
362 break;
363 }
364 }
365 }
366 src__test_environment.config.onSummary(passed, failed, errors, unittest.test Cases, src__test_environment.environment.uncaughtErrorMessage);
367 src__test_environment.config.onDone(passed > 0 && failed == 0 && errors == 0 && src__test_environment.environment.uncaughtErrorMessage == null);
368 src__test_environment.environment.initialized = false;
369 src__test_environment.environment.currentTestCaseIndex = -1;
370 };
371 dart.fn(unittest._completeTests, VoidTovoid$());
372 unittest.ensureInitialized = function() {
373 unittest._ensureInitialized(true);
374 };
375 dart.fn(unittest.ensureInitialized, VoidTovoid$());
376 unittest._ensureInitialized = function(configAutoStart) {
377 if (dart.test(src__test_environment.environment.initialized)) return;
378 src__test_environment.environment.initialized = true;
379 src__matcher__expect.wrapAsync = dart.fn((f, id) => {
380 if (id === void 0) id = null;
381 return unittest.expectAsync(core.Function._check(f), {id: core.String._che ck(id)});
382 }, dynamic__ToFunction());
383 src__test_environment.environment.uncaughtErrorMessage = null;
384 unittest.unittestConfiguration.onInit();
385 if (dart.test(configAutoStart) && dart.test(src__test_environment.config.aut oStart)) async.scheduleMicrotask(unittest.runTests);
386 };
387 dart.fn(unittest._ensureInitialized, boolTovoid());
388 unittest.setSoloTest = function(id) {
389 return src__test_environment.environment.testCases[dartx.retainWhere](dart.f n(t => t.id == id, InternalTestCaseTobool()));
390 };
391 dart.fn(unittest.setSoloTest, intTovoid());
392 unittest.enableTest = function(id) {
393 return unittest._setTestEnabledState(id, {enable: true});
394 };
395 dart.fn(unittest.enableTest, intTovoid());
396 unittest.disableTest = function(id) {
397 return unittest._setTestEnabledState(id, {enable: false});
398 };
399 dart.fn(unittest.disableTest, intTovoid());
400 unittest._setTestEnabledState = function(id, opts) {
401 let enable = opts && 'enable' in opts ? opts.enable : true;
402 if (dart.notNull(unittest.testCases[dartx.length]) > dart.notNull(id) && uni ttest.testCases[dartx.get](id).id == id) {
403 src__test_environment.environment.testCases[dartx.get](id).enabled = enabl e;
404 } else {
405 for (let i = 0; i < dart.notNull(unittest.testCases[dartx.length]); i++) {
406 if (unittest.testCases[dartx.get](i).id != id) continue;
407 src__test_environment.environment.testCases[dartx.get](i).enabled = enab le;
408 break;
409 }
410 }
411 };
412 dart.fn(unittest._setTestEnabledState, int__Tovoid());
413 unittest._requireNotRunning = function() {
414 if (src__test_environment.environment.currentTestCaseIndex == -1) return;
415 dart.throw(new core.StateError('Not allowed when tests are running.'));
416 };
417 dart.fn(unittest._requireNotRunning, VoidTovoid$());
418 let const$;
419 unittest.withTestEnvironment = function(callback) {
420 return async.runZoned(dart.dynamic)(callback, {zoneValues: dart.map([const$ || (const$ = dart.const(core.Symbol.new('unittest.environment'))), new src__test _environment.TestEnvironment()], core.Symbol, src__test_environment.TestEnvironm ent)});
421 };
422 dart.fn(unittest.withTestEnvironment, FnTodynamic());
423 let const$0;
424 src__configuration.Configuration = class Configuration extends core.Object {
425 static new() {
426 return new src__simple_configuration.SimpleConfiguration();
427 }
428 blank() {
429 this.autoStart = true;
430 this.timeout = const$0 || (const$0 = dart.const(new core.Duration({minutes : 2})));
431 }
432 onInit() {}
433 onStart() {}
434 onTestStart(testCase) {}
435 onTestResult(testCase) {}
436 onTestResultChanged(testCase) {}
437 onLogMessage(testCase, message) {}
438 onDone(success) {}
439 onSummary(passed, failed, errors, results, uncaughtError) {}
440 };
441 dart.defineNamedConstructor(src__configuration.Configuration, 'blank');
442 dart.setSignature(src__configuration.Configuration, {
443 constructors: () => ({
444 new: dart.definiteFunctionType(src__configuration.Configuration, []),
445 blank: dart.definiteFunctionType(src__configuration.Configuration, [])
446 }),
447 methods: () => ({
448 onInit: dart.definiteFunctionType(dart.void, []),
449 onStart: dart.definiteFunctionType(dart.void, []),
450 onTestStart: dart.definiteFunctionType(dart.void, [src__test_case.TestCase ]),
451 onTestResult: dart.definiteFunctionType(dart.void, [src__test_case.TestCas e]),
452 onTestResultChanged: dart.definiteFunctionType(dart.void, [src__test_case. TestCase]),
453 onLogMessage: dart.definiteFunctionType(dart.void, [src__test_case.TestCas e, core.String]),
454 onDone: dart.definiteFunctionType(dart.void, [core.bool]),
455 onSummary: dart.definiteFunctionType(dart.void, [core.int, core.int, core. int, core.List$(src__test_case.TestCase), core.String])
456 })
457 });
458 unittest.Configuration = src__configuration.Configuration;
459 src__matcher__expect.configureExpectFormatter = function(formatter) {
460 if (formatter === void 0) formatter = null;
461 if (formatter == null) {
462 formatter = src__matcher__expect._defaultErrorFormatter;
463 }
464 return src__matcher__expect._assertErrorFormatter = formatter;
465 };
466 dart.lazyFn(src__matcher__expect.configureExpectFormatter, () => __ToErrorForm atter());
467 unittest.configureExpectFormatter = src__matcher__expect.configureExpectFormat ter;
468 const _name = Symbol('_name');
469 src__matcher__interfaces.Matcher = class Matcher extends core.Object {
470 new() {
471 }
472 describeMismatch(item, mismatchDescription, matchState, verbose) {
473 return mismatchDescription;
474 }
475 };
476 dart.setSignature(src__matcher__interfaces.Matcher, {
477 constructors: () => ({new: dart.definiteFunctionType(src__matcher__interface s.Matcher, [])}),
478 methods: () => ({describeMismatch: dart.definiteFunctionType(src__matcher__i nterfaces.Description, [dart.dynamic, src__matcher__interfaces.Description, core .Map, core.bool])})
479 });
480 src__matcher__core_matchers.TypeMatcher = class TypeMatcher extends src__match er__interfaces.Matcher {
481 new(name) {
482 this[_name] = name;
483 super.new();
484 }
485 describe(description) {
486 return description.add(this[_name]);
487 }
488 };
489 dart.setSignature(src__matcher__core_matchers.TypeMatcher, {
490 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers.TypeMatcher, [core.String])}),
491 methods: () => ({describe: dart.definiteFunctionType(src__matcher__interface s.Description, [src__matcher__interfaces.Description])})
492 });
493 src__matcher__error_matchers._RangeError = class _RangeError extends src__matc her__core_matchers.TypeMatcher {
494 new() {
495 super.new("RangeError");
496 }
497 matches(item, matchState) {
498 return core.RangeError.is(item);
499 }
500 };
501 dart.setSignature(src__matcher__error_matchers._RangeError, {
502 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._RangeError, [])}),
503 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
504 });
505 src__matcher__error_matchers.isRangeError = dart.const(new src__matcher__error _matchers._RangeError());
506 unittest.isRangeError = src__matcher__error_matchers.isRangeError;
507 src__matcher__error_matchers._StateError = class _StateError extends src__matc her__core_matchers.TypeMatcher {
508 new() {
509 super.new("StateError");
510 }
511 matches(item, matchState) {
512 return core.StateError.is(item);
513 }
514 };
515 dart.setSignature(src__matcher__error_matchers._StateError, {
516 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._StateError, [])}),
517 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
518 });
519 src__matcher__error_matchers.isStateError = dart.const(new src__matcher__error _matchers._StateError());
520 unittest.isStateError = src__matcher__error_matchers.isStateError;
521 src__matcher__core_matchers.equals = function(expected, limit) {
522 if (limit === void 0) limit = 100;
523 return typeof expected == 'string' ? new src__matcher__core_matchers._String EqualsMatcher(expected) : new src__matcher__core_matchers._DeepMatcher(expected, limit);
524 };
525 dart.fn(src__matcher__core_matchers.equals, dynamic__ToMatcher());
526 unittest.equals = src__matcher__core_matchers.equals;
527 const _featureDescription = Symbol('_featureDescription');
528 const _featureName = Symbol('_featureName');
529 const _matcher = Symbol('_matcher');
530 src__matcher__core_matchers.CustomMatcher = class CustomMatcher extends src__m atcher__interfaces.Matcher {
531 new(featureDescription, featureName, matcher) {
532 this[_featureDescription] = featureDescription;
533 this[_featureName] = featureName;
534 this[_matcher] = src__matcher__util.wrapMatcher(matcher);
535 super.new();
536 }
537 featureValueOf(actual) {
538 return actual;
539 }
540 matches(item, matchState) {
541 let f = this.featureValueOf(item);
542 if (dart.test(this[_matcher].matches(f, matchState))) return true;
543 src__matcher__util.addStateInfo(matchState, dart.map({feature: f}, core.St ring, dart.dynamic));
544 return false;
545 }
546 describe(description) {
547 return description.add(this[_featureDescription]).add(' ').addDescriptionO f(this[_matcher]);
548 }
549 describeMismatch(item, mismatchDescription, matchState, verbose) {
550 mismatchDescription.add('has ').add(this[_featureName]).add(' with value ' ).addDescriptionOf(matchState[dartx.get]('feature'));
551 let innerDescription = new src__matcher__description.StringDescription();
552 this[_matcher].describeMismatch(matchState[dartx.get]('feature'), innerDes cription, core.Map._check(matchState[dartx.get]('state')), verbose);
553 if (dart.notNull(innerDescription.length) > 0) {
554 mismatchDescription.add(' which ').add(innerDescription.toString());
555 }
556 return mismatchDescription;
557 }
558 };
559 dart.setSignature(src__matcher__core_matchers.CustomMatcher, {
560 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers.CustomMatcher, [core.String, core.String, dart.dynamic])}),
561 methods: () => ({
562 featureValueOf: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]),
563 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
564 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
565 })
566 });
567 unittest.CustomMatcher = src__matcher__core_matchers.CustomMatcher;
568 src__matcher__iterable_matchers.pairwiseCompare = function(expected, comparato r, description) {
569 return new src__matcher__iterable_matchers._PairwiseCompare(expected, compar ator, description);
570 };
571 dart.fn(src__matcher__iterable_matchers.pairwiseCompare, IterableAndFnAndStrin gToMatcher());
572 unittest.pairwiseCompare = src__matcher__iterable_matchers.pairwiseCompare;
573 src__matcher__error_matchers._UnimplementedError = class _UnimplementedError e xtends src__matcher__core_matchers.TypeMatcher {
574 new() {
575 super.new("UnimplementedError");
576 }
577 matches(item, matchState) {
578 return core.UnimplementedError.is(item);
579 }
580 };
581 dart.setSignature(src__matcher__error_matchers._UnimplementedError, {
582 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._UnimplementedError, [])}),
583 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
584 });
585 src__matcher__error_matchers.isUnimplementedError = dart.const(new src__matche r__error_matchers._UnimplementedError());
586 unittest.isUnimplementedError = src__matcher__error_matchers.isUnimplementedEr ror;
587 src__matcher__core_matchers.hasLength = function(matcher) {
588 return new src__matcher__core_matchers._HasLength(src__matcher__util.wrapMat cher(matcher));
589 };
590 dart.fn(src__matcher__core_matchers.hasLength, dynamicToMatcher());
591 unittest.hasLength = src__matcher__core_matchers.hasLength;
592 src__matcher__expect.expect = function(actual, matcher, opts) {
593 let reason = opts && 'reason' in opts ? opts.reason : null;
594 let failureHandler = opts && 'failureHandler' in opts ? opts.failureHandler : null;
595 let verbose = opts && 'verbose' in opts ? opts.verbose : false;
596 matcher = src__matcher__util.wrapMatcher(matcher);
597 let doesMatch = null;
598 let matchState = dart.map();
599 try {
600 doesMatch = core.bool._check(dart.dsend(matcher, 'matches', actual, matchS tate));
601 } catch (e) {
602 let trace = dart.stackTrace(e);
603 doesMatch = false;
604 if (reason == null) {
605 reason = dart.str`${typeof e == 'string' ? e : dart.toString(e)} at ${tr ace}`;
606 }
607 }
608
609 if (!dart.test(doesMatch)) {
610 if (failureHandler == null) {
611 failureHandler = src__matcher__expect.getOrCreateExpectFailureHandler();
612 }
613 failureHandler.failMatch(actual, src__matcher__interfaces.Matcher._check(m atcher), reason, matchState, verbose);
614 }
615 };
616 dart.lazyFn(src__matcher__expect.expect, () => dynamicAnddynamic__Tovoid());
617 unittest.expect = src__matcher__expect.expect;
618 const _out = Symbol('_out');
619 src__matcher__description.StringDescription = class StringDescription extends core.Object {
620 new(init) {
621 if (init === void 0) init = '';
622 this[_out] = new core.StringBuffer();
623 this[_out].write(init);
624 }
625 get length() {
626 return this[_out].length;
627 }
628 toString() {
629 return dart.toString(this[_out]);
630 }
631 add(text) {
632 this[_out].write(text);
633 return this;
634 }
635 replace(text) {
636 this[_out].clear();
637 return this.add(text);
638 }
639 addDescriptionOf(value) {
640 if (src__matcher__interfaces.Matcher.is(value)) {
641 value.describe(this);
642 } else {
643 this.add(src__matcher__pretty_print.prettyPrint(value, {maxLineLength: 8 0, maxItems: 25}));
644 }
645 return this;
646 }
647 addAll(start, separator, end, list) {
648 let separate = false;
649 this.add(start);
650 for (let item of list) {
651 if (separate) {
652 this.add(separator);
653 }
654 this.addDescriptionOf(item);
655 separate = true;
656 }
657 this.add(end);
658 return this;
659 }
660 };
661 src__matcher__description.StringDescription[dart.implements] = () => [src__mat cher__interfaces.Description];
662 dart.setSignature(src__matcher__description.StringDescription, {
663 constructors: () => ({new: dart.definiteFunctionType(src__matcher__descripti on.StringDescription, [], [core.String])}),
664 methods: () => ({
665 add: dart.definiteFunctionType(src__matcher__interfaces.Description, [core .String]),
666 replace: dart.definiteFunctionType(src__matcher__interfaces.Description, [ core.String]),
667 addDescriptionOf: dart.definiteFunctionType(src__matcher__interfaces.Descr iption, [dart.dynamic]),
668 addAll: dart.definiteFunctionType(src__matcher__interfaces.Description, [c ore.String, core.String, core.String, core.Iterable])
669 })
670 });
671 unittest.StringDescription = src__matcher__description.StringDescription;
672 src__matcher__expect.fail = function(message, opts) {
673 let failureHandler = opts && 'failureHandler' in opts ? opts.failureHandler : null;
674 if (failureHandler == null) {
675 failureHandler = src__matcher__expect.getOrCreateExpectFailureHandler();
676 }
677 failureHandler.fail(message);
678 };
679 dart.lazyFn(src__matcher__expect.fail, () => String__Tovoid());
680 unittest.fail = src__matcher__expect.fail;
681 src__matcher__core_matchers._IsNaN = class _IsNaN extends src__matcher__interf aces.Matcher {
682 new() {
683 super.new();
684 }
685 matches(item, matchState) {
686 return core.double.NAN[dartx.compareTo](core.num._check(item)) == 0;
687 }
688 describe(description) {
689 return description.add('NaN');
690 }
691 };
692 dart.setSignature(src__matcher__core_matchers._IsNaN, {
693 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsNaN, [])}),
694 methods: () => ({
695 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
696 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
697 })
698 });
699 src__matcher__core_matchers.isNaN = dart.const(new src__matcher__core_matchers ._IsNaN());
700 unittest.isNaN = src__matcher__core_matchers.isNaN;
701 src__matcher__core_matchers.isInstanceOf$ = dart.generic(T => {
702 class isInstanceOf extends src__matcher__interfaces.Matcher {
703 new(name) {
704 if (name === void 0) name = null;
705 super.new();
706 }
707 matches(obj, matchState) {
708 return T.is(obj);
709 }
710 describe(description) {
711 return description.add(dart.str`an instance of ${dart.wrapType(T)}`);
712 }
713 }
714 dart.addTypeTests(isInstanceOf);
715 dart.setSignature(isInstanceOf, {
716 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_ma tchers.isInstanceOf$(T), [], [core.String])}),
717 methods: () => ({
718 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
719 describe: dart.definiteFunctionType(src__matcher__interfaces.Description , [src__matcher__interfaces.Description])
720 })
721 });
722 return isInstanceOf;
723 });
724 src__matcher__core_matchers.isInstanceOf = isInstanceOf();
725 unittest.isInstanceOf$ = src__matcher__core_matchers.isInstanceOf$;
726 unittest.isInstanceOf = src__matcher__core_matchers.isInstanceOf;
727 const _matcher$ = Symbol('_matcher');
728 src__matcher__throws_matcher.Throws = class Throws extends src__matcher__inter faces.Matcher {
729 new(matcher) {
730 if (matcher === void 0) matcher = null;
731 this[_matcher$] = matcher;
732 super.new();
733 }
734 matches(item, matchState) {
735 if (!core.Function.is(item) && !async.Future.is(item)) return false;
736 if (async.Future.is(item)) {
737 let done = dart.dcall(src__matcher__expect.wrapAsync, dart.fn(fn => dart .dcall(fn), dynamicTodynamic()));
738 item.then(dart.dynamic)(dart.fn(value => {
739 dart.dcall(done, dart.fn(() => {
740 src__matcher__expect.fail(dart.str`Expected future to fail, but succ eeded with '${value}'.`);
741 }, VoidTodynamic$()));
742 }, dynamicTodynamic()), {onError: dart.fn((error, trace) => {
743 dart.dcall(done, dart.fn(() => {
744 if (this[_matcher$] == null) return;
745 let reason = null;
746 if (trace != null) {
747 let stackTrace = dart.toString(trace);
748 stackTrace = dart.str` ${stackTrace[dartx.replaceAll]("\n", "\n ")}`;
749 reason = dart.str`Actual exception trace:\n${stackTrace}`;
750 }
751 src__matcher__expect.expect(error, this[_matcher$], {reason: core. String._check(reason)});
752 }, VoidTodynamic$()));
753 }, dynamicAnddynamicTodynamic())});
754 return true;
755 }
756 try {
757 dart.dcall(item);
758 return false;
759 } catch (e) {
760 let s = dart.stackTrace(e);
761 if (this[_matcher$] == null || dart.test(this[_matcher$].matches(e, matc hState))) {
762 return true;
763 } else {
764 src__matcher__util.addStateInfo(matchState, dart.map({exception: e, st ack: s}, core.String, dart.dynamic));
765 return false;
766 }
767 }
768
769 }
770 describe(description) {
771 if (this[_matcher$] == null) {
772 return description.add("throws");
773 } else {
774 return description.add('throws ').addDescriptionOf(this[_matcher$]);
775 }
776 }
777 describeMismatch(item, mismatchDescription, matchState, verbose) {
778 if (!core.Function.is(item) && !async.Future.is(item)) {
779 return mismatchDescription.add('is not a Function or Future');
780 } else if (this[_matcher$] == null || matchState[dartx.get]('exception') = = null) {
781 return mismatchDescription.add('did not throw');
782 } else {
783 mismatchDescription.add('threw ').addDescriptionOf(matchState[dartx.get] ('exception'));
784 if (dart.test(verbose)) {
785 mismatchDescription.add(' at ').add(dart.toString(matchState[dartx.get ]('stack')));
786 }
787 return mismatchDescription;
788 }
789 }
790 };
791 dart.setSignature(src__matcher__throws_matcher.Throws, {
792 constructors: () => ({new: dart.definiteFunctionType(src__matcher__throws_ma tcher.Throws, [], [src__matcher__interfaces.Matcher])}),
793 methods: () => ({
794 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
795 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
796 })
797 });
798 src__matcher__error_matchers._CyclicInitializationError = class _CyclicInitial izationError extends src__matcher__core_matchers.TypeMatcher {
799 new() {
800 super.new("CyclicInitializationError");
801 }
802 matches(item, matchState) {
803 return core.CyclicInitializationError.is(item);
804 }
805 };
806 dart.setSignature(src__matcher__error_matchers._CyclicInitializationError, {
807 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._CyclicInitializationError, [])}),
808 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
809 });
810 src__matcher__error_matchers.isCyclicInitializationError = dart.const(new src_ _matcher__error_matchers._CyclicInitializationError());
811 src__matcher__throws_matchers.throwsCyclicInitializationError = dart.const(new src__matcher__throws_matcher.Throws(src__matcher__error_matchers.isCyclicInitia lizationError));
812 unittest.throwsCyclicInitializationError = src__matcher__throws_matchers.throw sCyclicInitializationError;
813 const _matcher$0 = Symbol('_matcher');
814 const _id = Symbol('_id');
815 src__matcher__future_matchers._Completes = class _Completes extends src__match er__interfaces.Matcher {
816 new(matcher, id) {
817 this[_matcher$0] = matcher;
818 this[_id] = id;
819 super.new();
820 }
821 matches(item, matchState) {
822 if (!async.Future.is(item)) return false;
823 let done = dart.dcall(src__matcher__expect.wrapAsync, dart.fn(fn => dart.d call(fn), dynamicTodynamic()), this[_id]);
824 dart.dsend(item, 'then', dart.fn(value => {
825 dart.dcall(done, dart.fn(() => {
826 if (this[_matcher$0] != null) src__matcher__expect.expect(value, this[ _matcher$0]);
827 }, VoidTodynamic$()));
828 }, dynamicTodynamic()), {onError: dart.fn((error, trace) => {
829 let id = this[_id] == '' ? '' : dart.str`${this[_id]} `;
830 let reason = dart.str`Expected future ${id}to complete successfully, ` + dart.str`but it failed with ${error}`;
831 if (trace != null) {
832 let stackTrace = dart.toString(trace);
833 stackTrace = dart.str` ${stackTrace[dartx.replaceAll]('\n', '\n ') }`;
834 reason = dart.str`${reason}\nStack trace:\n${stackTrace}`;
835 }
836 dart.dcall(done, dart.fn(() => src__matcher__expect.fail(reason), Void Tovoid$()));
837 }, dynamicAnddynamicTodynamic())});
838 return true;
839 }
840 describe(description) {
841 if (this[_matcher$0] == null) {
842 description.add('completes successfully');
843 } else {
844 description.add('completes to a value that ').addDescriptionOf(this[_mat cher$0]);
845 }
846 return description;
847 }
848 };
849 dart.setSignature(src__matcher__future_matchers._Completes, {
850 constructors: () => ({new: dart.definiteFunctionType(src__matcher__future_ma tchers._Completes, [src__matcher__interfaces.Matcher, core.String])}),
851 methods: () => ({
852 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
853 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
854 })
855 });
856 src__matcher__future_matchers.completes = dart.const(new src__matcher__future_ matchers._Completes(null, ''));
857 unittest.completes = src__matcher__future_matchers.completes;
858 src__matcher__core_matchers._NotEmpty = class _NotEmpty extends src__matcher__ interfaces.Matcher {
859 new() {
860 super.new();
861 }
862 matches(item, matchState) {
863 return core.bool._check(dart.dload(item, 'isNotEmpty'));
864 }
865 describe(description) {
866 return description.add('non-empty');
867 }
868 };
869 dart.setSignature(src__matcher__core_matchers._NotEmpty, {
870 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._NotEmpty, [])}),
871 methods: () => ({
872 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
873 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
874 })
875 });
876 src__matcher__core_matchers.isNotEmpty = dart.const(new src__matcher__core_mat chers._NotEmpty());
877 unittest.isNotEmpty = src__matcher__core_matchers.isNotEmpty;
878 src__matcher__error_matchers._ConcurrentModificationError = class _ConcurrentM odificationError extends src__matcher__core_matchers.TypeMatcher {
879 new() {
880 super.new("ConcurrentModificationError");
881 }
882 matches(item, matchState) {
883 return core.ConcurrentModificationError.is(item);
884 }
885 };
886 dart.setSignature(src__matcher__error_matchers._ConcurrentModificationError, {
887 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._ConcurrentModificationError, [])}),
888 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
889 });
890 src__matcher__error_matchers.isConcurrentModificationError = dart.const(new sr c__matcher__error_matchers._ConcurrentModificationError());
891 unittest.isConcurrentModificationError = src__matcher__error_matchers.isConcur rentModificationError;
892 src__matcher__throws_matcher.throwsA = function(matcher) {
893 return new src__matcher__throws_matcher.Throws(src__matcher__util.wrapMatche r(matcher));
894 };
895 dart.fn(src__matcher__throws_matcher.throwsA, dynamicToMatcher());
896 unittest.throwsA = src__matcher__throws_matcher.throwsA;
897 src__matcher__core_matchers._IsTrue = class _IsTrue extends src__matcher__inte rfaces.Matcher {
898 new() {
899 super.new();
900 }
901 matches(item, matchState) {
902 return dart.equals(item, true);
903 }
904 describe(description) {
905 return description.add('true');
906 }
907 };
908 dart.setSignature(src__matcher__core_matchers._IsTrue, {
909 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsTrue, [])}),
910 methods: () => ({
911 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
912 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
913 })
914 });
915 src__matcher__core_matchers.isTrue = dart.const(new src__matcher__core_matcher s._IsTrue());
916 unittest.isTrue = src__matcher__core_matchers.isTrue;
917 src__matcher__throws_matchers.throwsRangeError = dart.const(new src__matcher__ throws_matcher.Throws(src__matcher__error_matchers.isRangeError));
918 unittest.throwsRangeError = src__matcher__throws_matchers.throwsRangeError;
919 src__matcher__expect.ErrorFormatter = dart.typedef('ErrorFormatter', () => dar t.functionType(core.String, [dart.dynamic, src__matcher__interfaces.Matcher, cor e.String, core.Map, core.bool]));
920 unittest.ErrorFormatter = src__matcher__expect.ErrorFormatter;
921 src__matcher__error_matchers._FormatException = class _FormatException extends src__matcher__core_matchers.TypeMatcher {
922 new() {
923 super.new("FormatException");
924 }
925 matches(item, matchState) {
926 return core.FormatException.is(item);
927 }
928 };
929 dart.setSignature(src__matcher__error_matchers._FormatException, {
930 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._FormatException, [])}),
931 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
932 });
933 src__matcher__error_matchers.isFormatException = dart.const(new src__matcher__ error_matchers._FormatException());
934 src__matcher__throws_matchers.throwsFormatException = dart.const(new src__matc her__throws_matcher.Throws(src__matcher__error_matchers.isFormatException));
935 unittest.throwsFormatException = src__matcher__throws_matchers.throwsFormatExc eption;
936 src__matcher__core_matchers._ReturnsNormally = class _ReturnsNormally extends src__matcher__interfaces.Matcher {
937 new() {
938 super.new();
939 }
940 matches(f, matchState) {
941 try {
942 dart.dcall(f);
943 return true;
944 } catch (e) {
945 let s = dart.stackTrace(e);
946 src__matcher__util.addStateInfo(matchState, dart.map({exception: e, stac k: s}, core.String, dart.dynamic));
947 return false;
948 }
949
950 }
951 describe(description) {
952 return description.add("return normally");
953 }
954 describeMismatch(item, mismatchDescription, matchState, verbose) {
955 mismatchDescription.add('threw ').addDescriptionOf(matchState[dartx.get](' exception'));
956 if (dart.test(verbose)) {
957 mismatchDescription.add(' at ').add(dart.toString(matchState[dartx.get]( 'stack')));
958 }
959 return mismatchDescription;
960 }
961 };
962 dart.setSignature(src__matcher__core_matchers._ReturnsNormally, {
963 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._ReturnsNormally, [])}),
964 methods: () => ({
965 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
966 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
967 })
968 });
969 src__matcher__core_matchers.returnsNormally = dart.const(new src__matcher__cor e_matchers._ReturnsNormally());
970 unittest.returnsNormally = src__matcher__core_matchers.returnsNormally;
971 src__matcher__numeric_matchers.inExclusiveRange = function(low, high) {
972 return new src__matcher__numeric_matchers._InRange(low, high, false, false);
973 };
974 dart.fn(src__matcher__numeric_matchers.inExclusiveRange, numAndnumToMatcher()) ;
975 unittest.inExclusiveRange = src__matcher__numeric_matchers.inExclusiveRange;
976 src__matcher__core_matchers.isIn = function(expected) {
977 return new src__matcher__core_matchers._In(expected);
978 };
979 dart.fn(src__matcher__core_matchers.isIn, dynamicToMatcher());
980 unittest.isIn = src__matcher__core_matchers.isIn;
981 src__matcher__string_matchers.equalsIgnoringWhitespace = function(value) {
982 return new src__matcher__string_matchers._IsEqualIgnoringWhitespace(value);
983 };
984 dart.fn(src__matcher__string_matchers.equalsIgnoringWhitespace, StringToMatche r());
985 unittest.equalsIgnoringWhitespace = src__matcher__string_matchers.equalsIgnori ngWhitespace;
986 src__matcher__string_matchers.startsWith = function(prefixString) {
987 return new src__matcher__string_matchers._StringStartsWith(prefixString);
988 };
989 dart.fn(src__matcher__string_matchers.startsWith, StringToMatcher());
990 unittest.startsWith = src__matcher__string_matchers.startsWith;
991 src__matcher__iterable_matchers.unorderedMatches = function(expected) {
992 return new src__matcher__iterable_matchers._UnorderedMatches(expected);
993 };
994 dart.fn(src__matcher__iterable_matchers.unorderedMatches, IterableToMatcher()) ;
995 unittest.unorderedMatches = src__matcher__iterable_matchers.unorderedMatches;
996 const _value = Symbol('_value');
997 const _equalValue = Symbol('_equalValue');
998 const _lessThanValue = Symbol('_lessThanValue');
999 const _greaterThanValue = Symbol('_greaterThanValue');
1000 const _comparisonDescription = Symbol('_comparisonDescription');
1001 const _valueInDescription = Symbol('_valueInDescription');
1002 src__matcher__numeric_matchers._OrderingComparison = class _OrderingComparison extends src__matcher__interfaces.Matcher {
1003 new(value, equalValue, lessThanValue, greaterThanValue, comparisonDescriptio n, valueInDescription) {
1004 if (valueInDescription === void 0) valueInDescription = true;
1005 this[_value] = value;
1006 this[_equalValue] = equalValue;
1007 this[_lessThanValue] = lessThanValue;
1008 this[_greaterThanValue] = greaterThanValue;
1009 this[_comparisonDescription] = comparisonDescription;
1010 this[_valueInDescription] = valueInDescription;
1011 super.new();
1012 }
1013 matches(item, matchState) {
1014 if (dart.equals(item, this[_value])) {
1015 return this[_equalValue];
1016 } else if (dart.test(dart.dsend(item, '<', this[_value]))) {
1017 return this[_lessThanValue];
1018 } else {
1019 return this[_greaterThanValue];
1020 }
1021 }
1022 describe(description) {
1023 if (dart.test(this[_valueInDescription])) {
1024 return description.add(this[_comparisonDescription]).add(' ').addDescrip tionOf(this[_value]);
1025 } else {
1026 return description.add(this[_comparisonDescription]);
1027 }
1028 }
1029 describeMismatch(item, mismatchDescription, matchState, verbose) {
1030 mismatchDescription.add('is not ');
1031 return this.describe(mismatchDescription);
1032 }
1033 };
1034 dart.setSignature(src__matcher__numeric_matchers._OrderingComparison, {
1035 constructors: () => ({new: dart.definiteFunctionType(src__matcher__numeric_m atchers._OrderingComparison, [dart.dynamic, core.bool, core.bool, core.bool, cor e.String], [core.bool])}),
1036 methods: () => ({
1037 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1038 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1039 })
1040 });
1041 src__matcher__numeric_matchers.isZero = dart.const(new src__matcher__numeric_m atchers._OrderingComparison(0, true, false, false, 'a value equal to'));
1042 unittest.isZero = src__matcher__numeric_matchers.isZero;
1043 src__matcher__core_matchers._IsList = class _IsList extends src__matcher__core _matchers.TypeMatcher {
1044 new() {
1045 super.new("List");
1046 }
1047 matches(item, matchState) {
1048 return core.List.is(item);
1049 }
1050 };
1051 dart.setSignature(src__matcher__core_matchers._IsList, {
1052 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsList, [])}),
1053 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1054 });
1055 src__matcher__core_matchers.isList = dart.const(new src__matcher__core_matcher s._IsList());
1056 unittest.isList = src__matcher__core_matchers.isList;
1057 src__matcher__prints_matcher.prints = function(matcher) {
1058 return new src__matcher__prints_matcher._Prints(src__matcher__util.wrapMatch er(matcher));
1059 };
1060 dart.fn(src__matcher__prints_matcher.prints, dynamicToMatcher());
1061 unittest.prints = src__matcher__prints_matcher.prints;
1062 src__matcher__util.escape = function(str) {
1063 str = str[dartx.replaceAll]('\\', '\\\\');
1064 return str[dartx.replaceAllMapped](src__matcher__util._escapeRegExp, dart.fn (match => {
1065 let mapped = src__matcher__util._escapeMap[dartx.get](match.get(0));
1066 if (mapped != null) return mapped;
1067 return src__matcher__util._getHexLiteral(match.get(0));
1068 }, MatchToString()));
1069 };
1070 dart.fn(src__matcher__util.escape, StringToString());
1071 unittest.escape = src__matcher__util.escape;
1072 src__matcher__iterable_matchers.anyElement = function(matcher) {
1073 return new src__matcher__iterable_matchers._AnyElement(src__matcher__util.wr apMatcher(matcher));
1074 };
1075 dart.fn(src__matcher__iterable_matchers.anyElement, dynamicToMatcher());
1076 unittest.anyElement = src__matcher__iterable_matchers.anyElement;
1077 src__matcher__error_matchers._Exception = class _Exception extends src__matche r__core_matchers.TypeMatcher {
1078 new() {
1079 super.new("Exception");
1080 }
1081 matches(item, matchState) {
1082 return core.Exception.is(item);
1083 }
1084 };
1085 dart.setSignature(src__matcher__error_matchers._Exception, {
1086 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._Exception, [])}),
1087 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1088 });
1089 src__matcher__error_matchers.isException = dart.const(new src__matcher__error_ matchers._Exception());
1090 src__matcher__throws_matchers.throwsException = dart.const(new src__matcher__t hrows_matcher.Throws(src__matcher__error_matchers.isException));
1091 unittest.throwsException = src__matcher__throws_matchers.throwsException;
1092 src__matcher__core_matchers._IsAnything = class _IsAnything extends src__match er__interfaces.Matcher {
1093 new() {
1094 super.new();
1095 }
1096 matches(item, matchState) {
1097 return true;
1098 }
1099 describe(description) {
1100 return description.add('anything');
1101 }
1102 };
1103 dart.setSignature(src__matcher__core_matchers._IsAnything, {
1104 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsAnything, [])}),
1105 methods: () => ({
1106 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1107 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1108 })
1109 });
1110 src__matcher__core_matchers.anything = dart.const(new src__matcher__core_match ers._IsAnything());
1111 unittest.anything = src__matcher__core_matchers.anything;
1112 src__matcher__core_matchers.contains = function(expected) {
1113 return new src__matcher__core_matchers._Contains(expected);
1114 };
1115 dart.fn(src__matcher__core_matchers.contains, dynamicToMatcher());
1116 unittest.contains = src__matcher__core_matchers.contains;
1117 src__matcher__operator_matchers.isNot = function(matcher) {
1118 return new src__matcher__operator_matchers._IsNot(src__matcher__util.wrapMat cher(matcher));
1119 };
1120 dart.fn(src__matcher__operator_matchers.isNot, dynamicToMatcher());
1121 unittest.isNot = src__matcher__operator_matchers.isNot;
1122 dart.defineLazy(src__matcher__expect, {
1123 get wrapAsync() {
1124 return dart.fn((f, id) => {
1125 if (id === void 0) id = null;
1126 return f;
1127 }, Function__ToFunction$());
1128 },
1129 set wrapAsync(_) {}
1130 });
1131 dart.export(unittest, src__matcher__expect, 'wrapAsync');
1132 src__matcher__core_matchers.same = function(expected) {
1133 return new src__matcher__core_matchers._IsSameAs(expected);
1134 };
1135 dart.fn(src__matcher__core_matchers.same, dynamicToMatcher());
1136 unittest.same = src__matcher__core_matchers.same;
1137 src__matcher__numeric_matchers.inClosedOpenRange = function(low, high) {
1138 return new src__matcher__numeric_matchers._InRange(low, high, true, false);
1139 };
1140 dart.fn(src__matcher__numeric_matchers.inClosedOpenRange, numAndnumToMatcher() );
1141 unittest.inClosedOpenRange = src__matcher__numeric_matchers.inClosedOpenRange;
1142 src__matcher__core_matchers.predicate = function(f, description) {
1143 if (description === void 0) description = 'satisfies function';
1144 return new src__matcher__core_matchers._Predicate(f, description);
1145 };
1146 dart.fn(src__matcher__core_matchers.predicate, Fn__ToMatcher());
1147 unittest.predicate = src__matcher__core_matchers.predicate;
1148 src__matcher__util.wrapMatcher = function(x) {
1149 if (src__matcher__interfaces.Matcher.is(x)) {
1150 return x;
1151 } else if (src__matcher__util._Predicate.is(x)) {
1152 return src__matcher__core_matchers.predicate(x);
1153 } else {
1154 return src__matcher__core_matchers.equals(x);
1155 }
1156 };
1157 dart.fn(src__matcher__util.wrapMatcher, dynamicToMatcher());
1158 unittest.wrapMatcher = src__matcher__util.wrapMatcher;
1159 src__matcher__iterable_matchers.unorderedEquals = function(expected) {
1160 return new src__matcher__iterable_matchers._UnorderedEquals(expected);
1161 };
1162 dart.fn(src__matcher__iterable_matchers.unorderedEquals, IterableToMatcher());
1163 unittest.unorderedEquals = src__matcher__iterable_matchers.unorderedEquals;
1164 src__matcher__expect.TestFailure = class TestFailure extends core.Error {
1165 new(message) {
1166 this.message = message;
1167 super.new();
1168 }
1169 toString() {
1170 return this.message;
1171 }
1172 };
1173 dart.setSignature(src__matcher__expect.TestFailure, {
1174 constructors: () => ({new: dart.definiteFunctionType(src__matcher__expect.Te stFailure, [core.String])})
1175 });
1176 unittest.TestFailure = src__matcher__expect.TestFailure;
1177 unittest.isException = src__matcher__error_matchers.isException;
1178 src__matcher__util.addStateInfo = function(matchState, values) {
1179 let innerState = core.Map.from(matchState);
1180 matchState[dartx.clear]();
1181 matchState[dartx.set]('state', innerState);
1182 matchState[dartx.addAll](values);
1183 };
1184 dart.fn(src__matcher__util.addStateInfo, MapAndMapTovoid());
1185 unittest.addStateInfo = src__matcher__util.addStateInfo;
1186 src__matcher__throws_matchers.throwsConcurrentModificationError = dart.const(n ew src__matcher__throws_matcher.Throws(src__matcher__error_matchers.isConcurrent ModificationError));
1187 unittest.throwsConcurrentModificationError = src__matcher__throws_matchers.thr owsConcurrentModificationError;
1188 src__matcher__numeric_matchers.closeTo = function(value, delta) {
1189 return new src__matcher__numeric_matchers._IsCloseTo(value, delta);
1190 };
1191 dart.fn(src__matcher__numeric_matchers.closeTo, numAndnumToMatcher());
1192 unittest.closeTo = src__matcher__numeric_matchers.closeTo;
1193 src__matcher__numeric_matchers.isPositive = dart.const(new src__matcher__numer ic_matchers._OrderingComparison(0, false, false, true, 'a positive value', false ));
1194 unittest.isPositive = src__matcher__numeric_matchers.isPositive;
1195 src__matcher__numeric_matchers.inOpenClosedRange = function(low, high) {
1196 return new src__matcher__numeric_matchers._InRange(low, high, false, true);
1197 };
1198 dart.fn(src__matcher__numeric_matchers.inOpenClosedRange, numAndnumToMatcher() );
1199 unittest.inOpenClosedRange = src__matcher__numeric_matchers.inOpenClosedRange;
1200 src__matcher__string_matchers.equalsIgnoringCase = function(value) {
1201 return new src__matcher__string_matchers._IsEqualIgnoringCase(value);
1202 };
1203 dart.fn(src__matcher__string_matchers.equalsIgnoringCase, StringToMatcher());
1204 unittest.equalsIgnoringCase = src__matcher__string_matchers.equalsIgnoringCase ;
1205 src__matcher__numeric_matchers.isNegative = dart.const(new src__matcher__numer ic_matchers._OrderingComparison(0, false, true, false, 'a negative value', false ));
1206 unittest.isNegative = src__matcher__numeric_matchers.isNegative;
1207 src__matcher__operator_matchers.allOf = function(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1208 if (arg1 === void 0) arg1 = null;
1209 if (arg2 === void 0) arg2 = null;
1210 if (arg3 === void 0) arg3 = null;
1211 if (arg4 === void 0) arg4 = null;
1212 if (arg5 === void 0) arg5 = null;
1213 if (arg6 === void 0) arg6 = null;
1214 return new src__matcher__operator_matchers._AllOf(src__matcher__operator_mat chers._wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
1215 };
1216 dart.fn(src__matcher__operator_matchers.allOf, dynamic__ToMatcher$());
1217 unittest.allOf = src__matcher__operator_matchers.allOf;
1218 src__matcher__error_matchers._ArgumentError = class _ArgumentError extends src __matcher__core_matchers.TypeMatcher {
1219 new() {
1220 super.new("ArgumentError");
1221 }
1222 matches(item, matchState) {
1223 return core.ArgumentError.is(item);
1224 }
1225 };
1226 dart.setSignature(src__matcher__error_matchers._ArgumentError, {
1227 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._ArgumentError, [])}),
1228 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1229 });
1230 src__matcher__error_matchers.isArgumentError = dart.const(new src__matcher__er ror_matchers._ArgumentError());
1231 src__matcher__throws_matchers.throwsArgumentError = dart.const(new src__matche r__throws_matcher.Throws(src__matcher__error_matchers.isArgumentError));
1232 unittest.throwsArgumentError = src__matcher__throws_matchers.throwsArgumentErr or;
1233 src__matcher__numeric_matchers.lessThan = function(value) {
1234 return new src__matcher__numeric_matchers._OrderingComparison(value, false, true, false, 'a value less than');
1235 };
1236 dart.fn(src__matcher__numeric_matchers.lessThan, dynamicToMatcher());
1237 unittest.lessThan = src__matcher__numeric_matchers.lessThan;
1238 src__matcher__throws_matchers.throwsStateError = dart.const(new src__matcher__ throws_matcher.Throws(src__matcher__error_matchers.isStateError));
1239 unittest.throwsStateError = src__matcher__throws_matchers.throwsStateError;
1240 src__matcher__numeric_matchers.greaterThanOrEqualTo = function(value) {
1241 return new src__matcher__numeric_matchers._OrderingComparison(value, true, f alse, true, 'a value greater than or equal to');
1242 };
1243 dart.fn(src__matcher__numeric_matchers.greaterThanOrEqualTo, dynamicToMatcher( ));
1244 unittest.greaterThanOrEqualTo = src__matcher__numeric_matchers.greaterThanOrEq ualTo;
1245 unittest.Throws = src__matcher__throws_matcher.Throws;
1246 src__matcher__map_matchers.containsValue = function(value) {
1247 return new src__matcher__map_matchers._ContainsValue(value);
1248 };
1249 dart.fn(src__matcher__map_matchers.containsValue, dynamicToMatcher());
1250 unittest.containsValue = src__matcher__map_matchers.containsValue;
1251 src__matcher__string_matchers.endsWith = function(suffixString) {
1252 return new src__matcher__string_matchers._StringEndsWith(suffixString);
1253 };
1254 dart.fn(src__matcher__string_matchers.endsWith, StringToMatcher());
1255 unittest.endsWith = src__matcher__string_matchers.endsWith;
1256 src__matcher__core_matchers._IsFalse = class _IsFalse extends src__matcher__in terfaces.Matcher {
1257 new() {
1258 super.new();
1259 }
1260 matches(item, matchState) {
1261 return dart.equals(item, false);
1262 }
1263 describe(description) {
1264 return description.add('false');
1265 }
1266 };
1267 dart.setSignature(src__matcher__core_matchers._IsFalse, {
1268 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsFalse, [])}),
1269 methods: () => ({
1270 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1271 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1272 })
1273 });
1274 src__matcher__core_matchers.isFalse = dart.const(new src__matcher__core_matche rs._IsFalse());
1275 unittest.isFalse = src__matcher__core_matchers.isFalse;
1276 unittest.Matcher = src__matcher__interfaces.Matcher;
1277 src__matcher__numeric_matchers.lessThanOrEqualTo = function(value) {
1278 return new src__matcher__numeric_matchers._OrderingComparison(value, true, t rue, false, 'a value less than or equal to');
1279 };
1280 dart.fn(src__matcher__numeric_matchers.lessThanOrEqualTo, dynamicToMatcher());
1281 unittest.lessThanOrEqualTo = src__matcher__numeric_matchers.lessThanOrEqualTo;
1282 src__matcher__expect.getOrCreateExpectFailureHandler = function() {
1283 if (src__matcher__expect._assertFailureHandler == null) {
1284 src__matcher__expect.configureExpectFailureHandler();
1285 }
1286 return src__matcher__expect._assertFailureHandler;
1287 };
1288 dart.lazyFn(src__matcher__expect.getOrCreateExpectFailureHandler, () => VoidTo FailureHandler());
1289 unittest.getOrCreateExpectFailureHandler = src__matcher__expect.getOrCreateExp ectFailureHandler;
1290 src__matcher__string_matchers.matches = function(re) {
1291 return new src__matcher__string_matchers._MatchesRegExp(re);
1292 };
1293 dart.fn(src__matcher__string_matchers.matches, dynamicToMatcher());
1294 unittest.matches = src__matcher__string_matchers.matches;
1295 src__matcher__error_matchers._UnsupportedError = class _UnsupportedError exten ds src__matcher__core_matchers.TypeMatcher {
1296 new() {
1297 super.new("UnsupportedError");
1298 }
1299 matches(item, matchState) {
1300 return core.UnsupportedError.is(item);
1301 }
1302 };
1303 dart.setSignature(src__matcher__error_matchers._UnsupportedError, {
1304 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._UnsupportedError, [])}),
1305 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1306 });
1307 src__matcher__error_matchers.isUnsupportedError = dart.const(new src__matcher_ _error_matchers._UnsupportedError());
1308 src__matcher__throws_matchers.throwsUnsupportedError = dart.const(new src__mat cher__throws_matcher.Throws(src__matcher__error_matchers.isUnsupportedError));
1309 unittest.throwsUnsupportedError = src__matcher__throws_matchers.throwsUnsuppor tedError;
1310 unittest.TypeMatcher = src__matcher__core_matchers.TypeMatcher;
1311 src__matcher__expect.configureExpectFailureHandler = function(handler) {
1312 if (handler === void 0) handler = null;
1313 if (handler == null) {
1314 handler = new src__matcher__expect.DefaultFailureHandler();
1315 }
1316 src__matcher__expect._assertFailureHandler = handler;
1317 };
1318 dart.lazyFn(src__matcher__expect.configureExpectFailureHandler, () => __Tovoid ());
1319 unittest.configureExpectFailureHandler = src__matcher__expect.configureExpectF ailureHandler;
1320 src__matcher__expect.FailureHandler = class FailureHandler extends core.Object {};
1321 unittest.FailureHandler = src__matcher__expect.FailureHandler;
1322 src__matcher__core_matchers._IsNotNaN = class _IsNotNaN extends src__matcher__ interfaces.Matcher {
1323 new() {
1324 super.new();
1325 }
1326 matches(item, matchState) {
1327 return core.double.NAN[dartx.compareTo](core.num._check(item)) != 0;
1328 }
1329 describe(description) {
1330 return description.add('not NaN');
1331 }
1332 };
1333 dart.setSignature(src__matcher__core_matchers._IsNotNaN, {
1334 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsNotNaN, [])}),
1335 methods: () => ({
1336 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1337 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1338 })
1339 });
1340 src__matcher__core_matchers.isNotNaN = dart.const(new src__matcher__core_match ers._IsNotNaN());
1341 unittest.isNotNaN = src__matcher__core_matchers.isNotNaN;
1342 src__matcher__numeric_matchers.isNonZero = dart.const(new src__matcher__numeri c_matchers._OrderingComparison(0, false, true, true, 'a value not equal to'));
1343 unittest.isNonZero = src__matcher__numeric_matchers.isNonZero;
1344 src__matcher__throws_matcher.throws = dart.const(new src__matcher__throws_matc her.Throws());
1345 unittest.throws = src__matcher__throws_matcher.throws;
1346 src__matcher__error_matchers._NullThrownError = class _NullThrownError extends src__matcher__core_matchers.TypeMatcher {
1347 new() {
1348 super.new("NullThrownError");
1349 }
1350 matches(item, matchState) {
1351 return core.NullThrownError.is(item);
1352 }
1353 };
1354 dart.setSignature(src__matcher__error_matchers._NullThrownError, {
1355 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._NullThrownError, [])}),
1356 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1357 });
1358 src__matcher__error_matchers.isNullThrownError = dart.const(new src__matcher__ error_matchers._NullThrownError());
1359 unittest.isNullThrownError = src__matcher__error_matchers.isNullThrownError;
1360 src__matcher__expect.DefaultFailureHandler = class DefaultFailureHandler exten ds core.Object {
1361 new() {
1362 if (src__matcher__expect._assertErrorFormatter == null) {
1363 src__matcher__expect._assertErrorFormatter = src__matcher__expect._defau ltErrorFormatter;
1364 }
1365 }
1366 fail(reason) {
1367 dart.throw(new src__matcher__expect.TestFailure(reason));
1368 }
1369 failMatch(actual, matcher, reason, matchState, verbose) {
1370 this.fail(dart.dcall(src__matcher__expect._assertErrorFormatter, actual, m atcher, reason, matchState, verbose));
1371 }
1372 };
1373 src__matcher__expect.DefaultFailureHandler[dart.implements] = () => [src__matc her__expect.FailureHandler];
1374 dart.setSignature(src__matcher__expect.DefaultFailureHandler, {
1375 constructors: () => ({new: dart.definiteFunctionType(src__matcher__expect.De faultFailureHandler, [])}),
1376 methods: () => ({
1377 fail: dart.definiteFunctionType(dart.void, [core.String]),
1378 failMatch: dart.definiteFunctionType(dart.void, [dart.dynamic, src__matche r__interfaces.Matcher, core.String, core.Map, core.bool])
1379 })
1380 });
1381 unittest.DefaultFailureHandler = src__matcher__expect.DefaultFailureHandler;
1382 src__matcher__core_matchers._Empty = class _Empty extends src__matcher__interf aces.Matcher {
1383 new() {
1384 super.new();
1385 }
1386 matches(item, matchState) {
1387 return core.bool._check(dart.dload(item, 'isEmpty'));
1388 }
1389 describe(description) {
1390 return description.add('empty');
1391 }
1392 };
1393 dart.setSignature(src__matcher__core_matchers._Empty, {
1394 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._Empty, [])}),
1395 methods: () => ({
1396 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1397 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1398 })
1399 });
1400 src__matcher__core_matchers.isEmpty = dart.const(new src__matcher__core_matche rs._Empty());
1401 unittest.isEmpty = src__matcher__core_matchers.isEmpty;
1402 src__matcher__operator_matchers.anyOf = function(arg0, arg1, arg2, arg3, arg4, arg5, arg6) {
1403 if (arg1 === void 0) arg1 = null;
1404 if (arg2 === void 0) arg2 = null;
1405 if (arg3 === void 0) arg3 = null;
1406 if (arg4 === void 0) arg4 = null;
1407 if (arg5 === void 0) arg5 = null;
1408 if (arg6 === void 0) arg6 = null;
1409 return new src__matcher__operator_matchers._AnyOf(src__matcher__operator_mat chers._wrapArgs(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
1410 };
1411 dart.fn(src__matcher__operator_matchers.anyOf, dynamic__ToMatcher$());
1412 unittest.anyOf = src__matcher__operator_matchers.anyOf;
1413 unittest.isCyclicInitializationError = src__matcher__error_matchers.isCyclicIn itializationError;
1414 src__matcher__error_matchers._NoSuchMethodError = class _NoSuchMethodError ext ends src__matcher__core_matchers.TypeMatcher {
1415 new() {
1416 super.new("NoSuchMethodError");
1417 }
1418 matches(item, matchState) {
1419 return core.NoSuchMethodError.is(item);
1420 }
1421 };
1422 dart.setSignature(src__matcher__error_matchers._NoSuchMethodError, {
1423 constructors: () => ({new: dart.definiteFunctionType(src__matcher__error_mat chers._NoSuchMethodError, [])}),
1424 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1425 });
1426 src__matcher__error_matchers.isNoSuchMethodError = dart.const(new src__matcher __error_matchers._NoSuchMethodError());
1427 src__matcher__throws_matchers.throwsNoSuchMethodError = dart.const(new src__ma tcher__throws_matcher.Throws(src__matcher__error_matchers.isNoSuchMethodError));
1428 unittest.throwsNoSuchMethodError = src__matcher__throws_matchers.throwsNoSuchM ethodError;
1429 src__matcher__future_matchers.completion = function(matcher, id) {
1430 if (id === void 0) id = '';
1431 return new src__matcher__future_matchers._Completes(src__matcher__util.wrapM atcher(matcher), id);
1432 };
1433 dart.fn(src__matcher__future_matchers.completion, dynamic__ToMatcher$0());
1434 unittest.completion = src__matcher__future_matchers.completion;
1435 unittest.isUnsupportedError = src__matcher__error_matchers.isUnsupportedError;
1436 src__matcher__numeric_matchers.isNonPositive = dart.const(new src__matcher__nu meric_matchers._OrderingComparison(0, true, true, false, 'a non-positive value', false));
1437 unittest.isNonPositive = src__matcher__numeric_matchers.isNonPositive;
1438 dart.export(unittest, src__matcher__expect, 'wrapAsync');
1439 src__matcher__core_matchers._IsNotNull = class _IsNotNull extends src__matcher __interfaces.Matcher {
1440 new() {
1441 super.new();
1442 }
1443 matches(item, matchState) {
1444 return item != null;
1445 }
1446 describe(description) {
1447 return description.add('not null');
1448 }
1449 };
1450 dart.setSignature(src__matcher__core_matchers._IsNotNull, {
1451 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsNotNull, [])}),
1452 methods: () => ({
1453 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1454 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1455 })
1456 });
1457 src__matcher__core_matchers.isNotNull = dart.const(new src__matcher__core_matc hers._IsNotNull());
1458 unittest.isNotNull = src__matcher__core_matchers.isNotNull;
1459 unittest.isNoSuchMethodError = src__matcher__error_matchers.isNoSuchMethodErro r;
1460 src__matcher__throws_matchers.throwsNullThrownError = dart.const(new src__matc her__throws_matcher.Throws(src__matcher__error_matchers.isNullThrownError));
1461 unittest.throwsNullThrownError = src__matcher__throws_matchers.throwsNullThrow nError;
1462 src__matcher__throws_matchers.throwsUnimplementedError = dart.const(new src__m atcher__throws_matcher.Throws(src__matcher__error_matchers.isUnimplementedError) );
1463 unittest.throwsUnimplementedError = src__matcher__throws_matchers.throwsUnimpl ementedError;
1464 src__matcher__iterable_matchers.everyElement = function(matcher) {
1465 return new src__matcher__iterable_matchers._EveryElement(src__matcher__util. wrapMatcher(matcher));
1466 };
1467 dart.fn(src__matcher__iterable_matchers.everyElement, dynamicToMatcher());
1468 unittest.everyElement = src__matcher__iterable_matchers.everyElement;
1469 unittest.isArgumentError = src__matcher__error_matchers.isArgumentError;
1470 src__matcher__map_matchers.containsPair = function(key, value) {
1471 return new src__matcher__map_matchers._ContainsMapping(key, src__matcher__ut il.wrapMatcher(value));
1472 };
1473 dart.fn(src__matcher__map_matchers.containsPair, dynamicAnddynamicToMatcher()) ;
1474 unittest.containsPair = src__matcher__map_matchers.containsPair;
1475 src__matcher__numeric_matchers.inInclusiveRange = function(low, high) {
1476 return new src__matcher__numeric_matchers._InRange(low, high, true, true);
1477 };
1478 dart.fn(src__matcher__numeric_matchers.inInclusiveRange, numAndnumToMatcher()) ;
1479 unittest.inInclusiveRange = src__matcher__numeric_matchers.inInclusiveRange;
1480 unittest.isFormatException = src__matcher__error_matchers.isFormatException;
1481 src__matcher__iterable_matchers.orderedEquals = function(expected) {
1482 return new src__matcher__iterable_matchers._OrderedEquals(expected);
1483 };
1484 dart.fn(src__matcher__iterable_matchers.orderedEquals, IterableToMatcher());
1485 unittest.orderedEquals = src__matcher__iterable_matchers.orderedEquals;
1486 src__matcher__string_matchers.collapseWhitespace = function(string) {
1487 let result = new core.StringBuffer();
1488 let skipSpace = true;
1489 for (let i = 0; i < dart.notNull(string[dartx.length]); i++) {
1490 let character = string[dartx.get](i);
1491 if (dart.test(src__matcher__string_matchers._isWhitespace(character))) {
1492 if (!skipSpace) {
1493 result.write(' ');
1494 skipSpace = true;
1495 }
1496 } else {
1497 result.write(character);
1498 skipSpace = false;
1499 }
1500 }
1501 return result.toString()[dartx.trim]();
1502 };
1503 dart.fn(src__matcher__string_matchers.collapseWhitespace, StringToString());
1504 unittest.collapseWhitespace = src__matcher__string_matchers.collapseWhitespace ;
1505 src__matcher__numeric_matchers.greaterThan = function(value) {
1506 return new src__matcher__numeric_matchers._OrderingComparison(value, false, false, true, 'a value greater than');
1507 };
1508 dart.fn(src__matcher__numeric_matchers.greaterThan, dynamicToMatcher());
1509 unittest.greaterThan = src__matcher__numeric_matchers.greaterThan;
1510 src__matcher__numeric_matchers.isNonNegative = dart.const(new src__matcher__nu meric_matchers._OrderingComparison(0, true, false, true, 'a non-negative value', false));
1511 unittest.isNonNegative = src__matcher__numeric_matchers.isNonNegative;
1512 src__matcher__core_matchers._IsNull = class _IsNull extends src__matcher__inte rfaces.Matcher {
1513 new() {
1514 super.new();
1515 }
1516 matches(item, matchState) {
1517 return item == null;
1518 }
1519 describe(description) {
1520 return description.add('null');
1521 }
1522 };
1523 dart.setSignature(src__matcher__core_matchers._IsNull, {
1524 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsNull, [])}),
1525 methods: () => ({
1526 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1527 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1528 })
1529 });
1530 src__matcher__core_matchers.isNull = dart.const(new src__matcher__core_matcher s._IsNull());
1531 unittest.isNull = src__matcher__core_matchers.isNull;
1532 src__matcher__core_matchers._IsMap = class _IsMap extends src__matcher__core_m atchers.TypeMatcher {
1533 new() {
1534 super.new("Map");
1535 }
1536 matches(item, matchState) {
1537 return core.Map.is(item);
1538 }
1539 };
1540 dart.setSignature(src__matcher__core_matchers._IsMap, {
1541 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsMap, [])}),
1542 methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic , core.Map])})
1543 });
1544 src__matcher__core_matchers.isMap = dart.const(new src__matcher__core_matchers ._IsMap());
1545 unittest.isMap = src__matcher__core_matchers.isMap;
1546 src__matcher__interfaces.Description = class Description extends core.Object { };
1547 unittest.Description = src__matcher__interfaces.Description;
1548 src__matcher__string_matchers.stringContainsInOrder = function(substrings) {
1549 return new src__matcher__string_matchers._StringContainsInOrder(substrings);
1550 };
1551 dart.fn(src__matcher__string_matchers.stringContainsInOrder, ListOfStringToMat cher());
1552 unittest.stringContainsInOrder = src__matcher__string_matchers.stringContainsI nOrder;
1553 const _testLogBuffer = Symbol('_testLogBuffer');
1554 const _receivePort = Symbol('_receivePort');
1555 const _postMessage = Symbol('_postMessage');
1556 src__simple_configuration.SimpleConfiguration = class SimpleConfiguration exte nds src__configuration.Configuration {
1557 new() {
1558 this[_testLogBuffer] = JSArrayOfPairOfString$StackTrace().of([]);
1559 this[_receivePort] = null;
1560 this.name = 'Configuration';
1561 this.throwOnTestFailures = true;
1562 this.stopTestOnExpectFailure = true;
1563 super.blank();
1564 src__matcher__expect.configureExpectFailureHandler(new src__simple_configu ration._ExpectFailureHandler(this));
1565 }
1566 onInit() {
1567 unittest.filterStacks = false;
1568 this[_receivePort] = isolate.ReceivePort.new();
1569 this[_postMessage]('unittest-suite-wait-for-done');
1570 }
1571 onTestStart(testCase) {
1572 return this[_testLogBuffer][dartx.clear]();
1573 }
1574 onTestResult(externalTestCase) {
1575 if (dart.test(this.stopTestOnExpectFailure) || dart.test(this[_testLogBuff er][dartx.isEmpty])) return;
1576 let testCase = src__internal_test_case.InternalTestCase.as(externalTestCas e);
1577 let reason = new core.StringBuffer();
1578 for (let reasonAndTrace of this[_testLogBuffer][dartx.take](dart.notNull(t his[_testLogBuffer][dartx.length]) - 1)) {
1579 reason.write(reasonAndTrace.first);
1580 reason.write('\n');
1581 reason.write(reasonAndTrace.last);
1582 reason.write('\n');
1583 }
1584 let lastReasonAndTrace = this[_testLogBuffer][dartx.last];
1585 reason.write(lastReasonAndTrace.first);
1586 if (testCase.result == unittest.PASS) {
1587 testCase.result = unittest.FAIL;
1588 testCase.message = reason.toString();
1589 testCase.stackTrace = lastReasonAndTrace.last;
1590 } else {
1591 reason.write(lastReasonAndTrace.last);
1592 reason.write('\n');
1593 testCase.message = dart.str`${reason.toString()}\n${testCase.message}`;
1594 }
1595 }
1596 onLogMessage(testCase, message) {
1597 core.print(message);
1598 }
1599 onExpectFailure(reason) {
1600 if (dart.test(this.stopTestOnExpectFailure)) dart.throw(new src__matcher__ expect.TestFailure(reason));
1601 try {
1602 dart.throw('');
1603 } catch (_) {
1604 let stack = dart.stackTrace(_);
1605 let trace = src__utils.getTrace(stack, unittest.formatStacks, unittest.f ilterStacks);
1606 if (trace == null) trace = src__trace.Trace._check(stack);
1607 this[_testLogBuffer][dartx.add](new (PairOfString$StackTrace())(reason, trace));
1608 }
1609
1610 }
1611 formatResult(testCase) {
1612 let result = new core.StringBuffer();
1613 result.write(testCase.result[dartx.toUpperCase]());
1614 result.write(": ");
1615 result.write(testCase.description);
1616 result.write("\n");
1617 if (testCase.message != '') {
1618 result.write(src__utils.indent(testCase.message));
1619 result.write("\n");
1620 }
1621 if (testCase.stackTrace != null) {
1622 result.write(src__utils.indent(dart.toString(testCase.stackTrace)));
1623 result.write("\n");
1624 }
1625 return result.toString();
1626 }
1627 onSummary(passed, failed, errors, results, uncaughtError) {
1628 for (let test of results) {
1629 core.print(this.formatResult(test)[dartx.trim]());
1630 }
1631 core.print('');
1632 if (passed == 0 && failed == 0 && errors == 0 && uncaughtError == null) {
1633 core.print('No tests found.');
1634 } else if (failed == 0 && errors == 0 && uncaughtError == null) {
1635 core.print(dart.str`All ${passed} tests passed.`);
1636 } else {
1637 if (uncaughtError != null) {
1638 core.print(dart.str`Top-level uncaught error: ${uncaughtError}`);
1639 }
1640 core.print(dart.str`${passed} PASSED, ${failed} FAILED, ${errors} ERRORS `);
1641 }
1642 }
1643 onDone(success) {
1644 if (dart.test(success)) {
1645 this[_postMessage]('unittest-suite-success');
1646 this[_receivePort].close();
1647 } else {
1648 this[_receivePort].close();
1649 if (dart.test(this.throwOnTestFailures)) {
1650 dart.throw(core.Exception.new('Some tests failed.'));
1651 }
1652 }
1653 }
1654 [_postMessage](message) {
1655 core.print(message);
1656 }
1657 };
1658 dart.setSignature(src__simple_configuration.SimpleConfiguration, {
1659 constructors: () => ({new: dart.definiteFunctionType(src__simple_configurati on.SimpleConfiguration, [])}),
1660 methods: () => ({
1661 onExpectFailure: dart.definiteFunctionType(dart.void, [core.String]),
1662 formatResult: dart.definiteFunctionType(core.String, [src__test_case.TestC ase]),
1663 [_postMessage]: dart.definiteFunctionType(dart.void, [core.String])
1664 })
1665 });
1666 unittest.SimpleConfiguration = src__simple_configuration.SimpleConfiguration;
1667 src__test_case.TestCase = class TestCase extends core.Object {
1668 get isComplete() {
1669 return !dart.test(this.enabled) || this.result != null;
1670 }
1671 };
1672 unittest.TestCase = src__test_case.TestCase;
1673 const _config = Symbol('_config');
1674 src__simple_configuration._ExpectFailureHandler = class _ExpectFailureHandler extends src__matcher__expect.DefaultFailureHandler {
1675 new(config) {
1676 this[_config] = config;
1677 super.new();
1678 }
1679 fail(reason) {
1680 this[_config].onExpectFailure(reason);
1681 }
1682 };
1683 dart.setSignature(src__simple_configuration._ExpectFailureHandler, {
1684 constructors: () => ({new: dart.definiteFunctionType(src__simple_configurati on._ExpectFailureHandler, [src__simple_configuration.SimpleConfiguration])})
1685 });
1686 src__matcher.isTrue = src__matcher__core_matchers.isTrue;
1687 src__matcher.isFalse = src__matcher__core_matchers.isFalse;
1688 src__matcher.isEmpty = src__matcher__core_matchers.isEmpty;
1689 src__matcher.same = src__matcher__core_matchers.same;
1690 src__matcher.equals = src__matcher__core_matchers.equals;
1691 src__matcher.CustomMatcher = src__matcher__core_matchers.CustomMatcher;
1692 src__matcher.isList = src__matcher__core_matchers.isList;
1693 src__matcher.predicate = src__matcher__core_matchers.predicate;
1694 src__matcher.isNotNull = src__matcher__core_matchers.isNotNull;
1695 src__matcher.hasLength = src__matcher__core_matchers.hasLength;
1696 src__matcher.isInstanceOf$ = src__matcher__core_matchers.isInstanceOf$;
1697 src__matcher.isInstanceOf = src__matcher__core_matchers.isInstanceOf;
1698 src__matcher.isNaN = src__matcher__core_matchers.isNaN;
1699 src__matcher.returnsNormally = src__matcher__core_matchers.returnsNormally;
1700 src__matcher.anything = src__matcher__core_matchers.anything;
1701 src__matcher.TypeMatcher = src__matcher__core_matchers.TypeMatcher;
1702 src__matcher.contains = src__matcher__core_matchers.contains;
1703 src__matcher.isNotEmpty = src__matcher__core_matchers.isNotEmpty;
1704 src__matcher.isNull = src__matcher__core_matchers.isNull;
1705 src__matcher.isMap = src__matcher__core_matchers.isMap;
1706 src__matcher.isNotNaN = src__matcher__core_matchers.isNotNaN;
1707 src__matcher.isIn = src__matcher__core_matchers.isIn;
1708 src__matcher.StringDescription = src__matcher__description.StringDescription;
1709 src__matcher.isConcurrentModificationError = src__matcher__error_matchers.isCo ncurrentModificationError;
1710 src__matcher.isCyclicInitializationError = src__matcher__error_matchers.isCycl icInitializationError;
1711 src__matcher.isArgumentError = src__matcher__error_matchers.isArgumentError;
1712 src__matcher.isException = src__matcher__error_matchers.isException;
1713 src__matcher.isNullThrownError = src__matcher__error_matchers.isNullThrownErro r;
1714 src__matcher.isRangeError = src__matcher__error_matchers.isRangeError;
1715 src__matcher.isFormatException = src__matcher__error_matchers.isFormatExceptio n;
1716 src__matcher.isStateError = src__matcher__error_matchers.isStateError;
1717 src__matcher.isNoSuchMethodError = src__matcher__error_matchers.isNoSuchMethod Error;
1718 src__matcher.isUnimplementedError = src__matcher__error_matchers.isUnimplement edError;
1719 src__matcher.isUnsupportedError = src__matcher__error_matchers.isUnsupportedEr ror;
1720 src__matcher.TestFailure = src__matcher__expect.TestFailure;
1721 src__matcher.configureExpectFormatter = src__matcher__expect.configureExpectFo rmatter;
1722 src__matcher.DefaultFailureHandler = src__matcher__expect.DefaultFailureHandle r;
1723 src__matcher.fail = src__matcher__expect.fail;
1724 src__matcher.ErrorFormatter = src__matcher__expect.ErrorFormatter;
1725 dart.export(src__matcher, src__matcher__expect, 'wrapAsync');
1726 dart.export(src__matcher, src__matcher__expect, 'wrapAsync');
1727 src__matcher.configureExpectFailureHandler = src__matcher__expect.configureExp ectFailureHandler;
1728 src__matcher.FailureHandler = src__matcher__expect.FailureHandler;
1729 src__matcher.expect = src__matcher__expect.expect;
1730 src__matcher.getOrCreateExpectFailureHandler = src__matcher__expect.getOrCreat eExpectFailureHandler;
1731 src__matcher.completes = src__matcher__future_matchers.completes;
1732 src__matcher.completion = src__matcher__future_matchers.completion;
1733 src__matcher.Matcher = src__matcher__interfaces.Matcher;
1734 src__matcher.Description = src__matcher__interfaces.Description;
1735 src__matcher.pairwiseCompare = src__matcher__iterable_matchers.pairwiseCompare ;
1736 src__matcher.anyElement = src__matcher__iterable_matchers.anyElement;
1737 src__matcher.orderedEquals = src__matcher__iterable_matchers.orderedEquals;
1738 src__matcher.unorderedEquals = src__matcher__iterable_matchers.unorderedEquals ;
1739 src__matcher.unorderedMatches = src__matcher__iterable_matchers.unorderedMatch es;
1740 src__matcher.everyElement = src__matcher__iterable_matchers.everyElement;
1741 src__matcher.containsValue = src__matcher__map_matchers.containsValue;
1742 src__matcher.containsPair = src__matcher__map_matchers.containsPair;
1743 src__matcher.isPositive = src__matcher__numeric_matchers.isPositive;
1744 src__matcher.isZero = src__matcher__numeric_matchers.isZero;
1745 src__matcher.inOpenClosedRange = src__matcher__numeric_matchers.inOpenClosedRa nge;
1746 src__matcher.inClosedOpenRange = src__matcher__numeric_matchers.inClosedOpenRa nge;
1747 src__matcher.lessThanOrEqualTo = src__matcher__numeric_matchers.lessThanOrEqua lTo;
1748 src__matcher.isNegative = src__matcher__numeric_matchers.isNegative;
1749 src__matcher.inInclusiveRange = src__matcher__numeric_matchers.inInclusiveRang e;
1750 src__matcher.lessThan = src__matcher__numeric_matchers.lessThan;
1751 src__matcher.greaterThan = src__matcher__numeric_matchers.greaterThan;
1752 src__matcher.isNonNegative = src__matcher__numeric_matchers.isNonNegative;
1753 src__matcher.inExclusiveRange = src__matcher__numeric_matchers.inExclusiveRang e;
1754 src__matcher.closeTo = src__matcher__numeric_matchers.closeTo;
1755 src__matcher.greaterThanOrEqualTo = src__matcher__numeric_matchers.greaterThan OrEqualTo;
1756 src__matcher.isNonZero = src__matcher__numeric_matchers.isNonZero;
1757 src__matcher.isNonPositive = src__matcher__numeric_matchers.isNonPositive;
1758 src__matcher.allOf = src__matcher__operator_matchers.allOf;
1759 src__matcher.isNot = src__matcher__operator_matchers.isNot;
1760 src__matcher.anyOf = src__matcher__operator_matchers.anyOf;
1761 src__matcher.prints = src__matcher__prints_matcher.prints;
1762 src__matcher.endsWith = src__matcher__string_matchers.endsWith;
1763 src__matcher.startsWith = src__matcher__string_matchers.startsWith;
1764 src__matcher.matches = src__matcher__string_matchers.matches;
1765 src__matcher.collapseWhitespace = src__matcher__string_matchers.collapseWhites pace;
1766 src__matcher.equalsIgnoringCase = src__matcher__string_matchers.equalsIgnoring Case;
1767 src__matcher.equalsIgnoringWhitespace = src__matcher__string_matchers.equalsIg noringWhitespace;
1768 src__matcher.stringContainsInOrder = src__matcher__string_matchers.stringConta insInOrder;
1769 src__matcher.throwsA = src__matcher__throws_matcher.throwsA;
1770 src__matcher.throws = src__matcher__throws_matcher.throws;
1771 src__matcher.Throws = src__matcher__throws_matcher.Throws;
1772 src__matcher.throwsArgumentError = src__matcher__throws_matchers.throwsArgumen tError;
1773 src__matcher.throwsRangeError = src__matcher__throws_matchers.throwsRangeError ;
1774 src__matcher.throwsUnsupportedError = src__matcher__throws_matchers.throwsUnsu pportedError;
1775 src__matcher.throwsCyclicInitializationError = src__matcher__throws_matchers.t hrowsCyclicInitializationError;
1776 src__matcher.throwsException = src__matcher__throws_matchers.throwsException;
1777 src__matcher.throwsNoSuchMethodError = src__matcher__throws_matchers.throwsNoS uchMethodError;
1778 src__matcher.throwsFormatException = src__matcher__throws_matchers.throwsForma tException;
1779 src__matcher.throwsStateError = src__matcher__throws_matchers.throwsStateError ;
1780 src__matcher.throwsConcurrentModificationError = src__matcher__throws_matchers .throwsConcurrentModificationError;
1781 src__matcher.throwsNullThrownError = src__matcher__throws_matchers.throwsNullT hrownError;
1782 src__matcher.throwsUnimplementedError = src__matcher__throws_matchers.throwsUn implementedError;
1783 src__matcher.addStateInfo = src__matcher__util.addStateInfo;
1784 src__matcher.wrapMatcher = src__matcher__util.wrapMatcher;
1785 src__matcher.escape = src__matcher__util.escape;
1786 const _expected = Symbol('_expected');
1787 src__matcher__core_matchers._IsSameAs = class _IsSameAs extends src__matcher__ interfaces.Matcher {
1788 new(expected) {
1789 this[_expected] = expected;
1790 super.new();
1791 }
1792 matches(item, matchState) {
1793 return core.identical(item, this[_expected]);
1794 }
1795 describe(description) {
1796 return description.add('same instance as ').addDescriptionOf(this[_expecte d]);
1797 }
1798 };
1799 dart.setSignature(src__matcher__core_matchers._IsSameAs, {
1800 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._IsSameAs, [dart.dynamic])}),
1801 methods: () => ({
1802 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1803 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1804 })
1805 });
1806 const _limit = Symbol('_limit');
1807 const _compareIterables = Symbol('_compareIterables');
1808 const _compareSets = Symbol('_compareSets');
1809 const _recursiveMatch = Symbol('_recursiveMatch');
1810 const _match = Symbol('_match');
1811 src__matcher__core_matchers._DeepMatcher = class _DeepMatcher extends src__mat cher__interfaces.Matcher {
1812 new(expected, limit) {
1813 if (limit === void 0) limit = 1000;
1814 this[_expected] = expected;
1815 this[_limit] = limit;
1816 this.count = null;
1817 super.new();
1818 }
1819 [_compareIterables](expected, actual, matcher, depth, location) {
1820 if (!core.Iterable.is(actual)) return ['is not Iterable', location];
1821 let expectedIterator = dart.dload(expected, 'iterator');
1822 let actualIterator = dart.dload(actual, 'iterator');
1823 for (let index = 0;; index++) {
1824 let expectedNext = dart.dsend(expectedIterator, 'moveNext');
1825 let actualNext = dart.dsend(actualIterator, 'moveNext');
1826 if (!dart.test(expectedNext) && !dart.test(actualNext)) return null;
1827 let newLocation = dart.str`${location}[${index}]`;
1828 if (!dart.test(expectedNext)) return JSArrayOfString().of(['longer than expected', newLocation]);
1829 if (!dart.test(actualNext)) return JSArrayOfString().of(['shorter than e xpected', newLocation]);
1830 let rp = dart.dcall(matcher, dart.dload(expectedIterator, 'current'), da rt.dload(actualIterator, 'current'), newLocation, depth);
1831 if (rp != null) return core.List._check(rp);
1832 }
1833 }
1834 [_compareSets](expected, actual, matcher, depth, location) {
1835 if (!core.Iterable.is(actual)) return ['is not Iterable', location];
1836 actual = dart.dsend(actual, 'toSet');
1837 for (let expectedElement of expected) {
1838 if (dart.test(dart.dsend(actual, 'every', dart.fn(actualElement => dart. dcall(matcher, expectedElement, actualElement, location, depth) != null, dynamic Tobool$())))) {
1839 return [dart.str`does not contain ${expectedElement}`, location];
1840 }
1841 }
1842 if (dart.test(dart.dsend(dart.dload(actual, 'length'), '>', expected.lengt h))) {
1843 return ['larger than expected', location];
1844 } else if (dart.test(dart.dsend(dart.dload(actual, 'length'), '<', expecte d.length))) {
1845 return ['smaller than expected', location];
1846 } else {
1847 return null;
1848 }
1849 }
1850 [_recursiveMatch](expected, actual, location, depth) {
1851 if (src__matcher__interfaces.Matcher.is(expected)) {
1852 let matchState = dart.map();
1853 if (dart.test(expected.matches(actual, matchState))) return null;
1854 let description = new src__matcher__description.StringDescription();
1855 expected.describe(description);
1856 return JSArrayOfString().of([dart.str`does not match ${description}`, lo cation]);
1857 } else {
1858 try {
1859 if (dart.equals(expected, actual)) return null;
1860 } catch (e) {
1861 return JSArrayOfString().of([dart.str`== threw "${e}"`, location]);
1862 }
1863
1864 }
1865 if (dart.notNull(depth) > dart.notNull(this[_limit])) return JSArrayOfStri ng().of(['recursion depth limit exceeded', location]);
1866 if (depth == 0 || dart.notNull(this[_limit]) > 1) {
1867 if (core.Set.is(expected)) {
1868 return this[_compareSets](expected, actual, dart.bind(this, _recursive Match), dart.notNull(depth) + 1, location);
1869 } else if (core.Iterable.is(expected)) {
1870 return this[_compareIterables](expected, actual, dart.bind(this, _recu rsiveMatch), dart.notNull(depth) + 1, location);
1871 } else if (core.Map.is(expected)) {
1872 if (!core.Map.is(actual)) return JSArrayOfString().of(['expected a map ', location]);
1873 let err = dart.equals(expected[dartx.length], dart.dload(actual, 'leng th')) ? '' : 'has different length and ';
1874 for (let key of expected[dartx.keys]) {
1875 if (!dart.test(dart.dsend(actual, 'containsKey', key))) {
1876 return JSArrayOfString().of([dart.str`${err}is missing map key '${ key}'`, location]);
1877 }
1878 }
1879 for (let key of core.Iterable._check(dart.dload(actual, 'keys'))) {
1880 if (!dart.test(expected[dartx.containsKey](key))) {
1881 return JSArrayOfString().of([dart.str`${err}has extra map key '${k ey}'`, location]);
1882 }
1883 }
1884 for (let key of expected[dartx.keys]) {
1885 let rp = this[_recursiveMatch](expected[dartx.get](key), dart.dindex (actual, key), dart.str`${location}['${key}']`, dart.notNull(depth) + 1);
1886 if (rp != null) return rp;
1887 }
1888 return null;
1889 }
1890 }
1891 let description = new src__matcher__description.StringDescription();
1892 if (dart.notNull(depth) > 0) {
1893 description.add('was ').addDescriptionOf(actual).add(' instead of ').add DescriptionOf(expected);
1894 return JSArrayOfString().of([description.toString(), location]);
1895 }
1896 return JSArrayOfString().of(["", location]);
1897 }
1898 [_match](expected, actual, matchState) {
1899 let rp = this[_recursiveMatch](expected, actual, '', 0);
1900 if (rp == null) return null;
1901 let reason = null;
1902 if (dart.test(dart.dsend(dart.dload(rp[dartx.get](0), 'length'), '>', 0))) {
1903 if (dart.test(dart.dsend(dart.dload(rp[dartx.get](1), 'length'), '>', 0) )) {
1904 reason = dart.str`${rp[dartx.get](0)} at location ${rp[dartx.get](1)}` ;
1905 } else {
1906 reason = rp[dartx.get](0);
1907 }
1908 } else {
1909 reason = '';
1910 }
1911 src__matcher__util.addStateInfo(matchState, dart.map({reason: reason}, cor e.String, dart.dynamic));
1912 return core.String._check(reason);
1913 }
1914 matches(item, matchState) {
1915 return this[_match](this[_expected], item, matchState) == null;
1916 }
1917 describe(description) {
1918 return description.addDescriptionOf(this[_expected]);
1919 }
1920 describeMismatch(item, mismatchDescription, matchState, verbose) {
1921 let reason = matchState[dartx.get]('reason');
1922 if (dart.equals(dart.dload(reason, 'length'), 0) && dart.notNull(mismatchD escription.length) > 0) {
1923 mismatchDescription.add('is ').addDescriptionOf(item);
1924 } else {
1925 mismatchDescription.add(core.String._check(reason));
1926 }
1927 return mismatchDescription;
1928 }
1929 };
1930 dart.setSignature(src__matcher__core_matchers._DeepMatcher, {
1931 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._DeepMatcher, [dart.dynamic], [core.int])}),
1932 methods: () => ({
1933 [_compareIterables]: dart.definiteFunctionType(core.List, [dart.dynamic, d art.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
1934 [_compareSets]: dart.definiteFunctionType(core.List, [core.Set, dart.dynam ic, dart.dynamic, dart.dynamic, dart.dynamic]),
1935 [_recursiveMatch]: dart.definiteFunctionType(core.List, [dart.dynamic, dar t.dynamic, core.String, core.int]),
1936 [_match]: dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynam ic, core.Map]),
1937 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
1938 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
1939 })
1940 });
1941 const _value$ = Symbol('_value');
1942 src__matcher__core_matchers._StringEqualsMatcher = class _StringEqualsMatcher extends src__matcher__interfaces.Matcher {
1943 new(value) {
1944 this[_value$] = value;
1945 super.new();
1946 }
1947 get showActualValue() {
1948 return true;
1949 }
1950 matches(item, matchState) {
1951 return dart.equals(this[_value$], item);
1952 }
1953 describe(description) {
1954 return description.addDescriptionOf(this[_value$]);
1955 }
1956 describeMismatch(item, mismatchDescription, matchState, verbose) {
1957 if (!(typeof item == 'string')) {
1958 return mismatchDescription.addDescriptionOf(item).add('is not a string') ;
1959 } else {
1960 let buff = new core.StringBuffer();
1961 buff.write('is different.');
1962 let escapedItem = src__matcher__util.escape(core.String._check(item));
1963 let escapedValue = src__matcher__util.escape(this[_value$]);
1964 let minLength = dart.notNull(escapedItem[dartx.length]) < dart.notNull(e scapedValue[dartx.length]) ? escapedItem[dartx.length] : escapedValue[dartx.leng th];
1965 let start = null;
1966 for (start = 0; dart.notNull(start) < dart.notNull(minLength); start = d art.notNull(start) + 1) {
1967 if (escapedValue[dartx.codeUnitAt](start) != escapedItem[dartx.codeUni tAt](start)) {
1968 break;
1969 }
1970 }
1971 if (start == minLength) {
1972 if (dart.notNull(escapedValue[dartx.length]) < dart.notNull(escapedIte m[dartx.length])) {
1973 buff.write(' Both strings start the same, but the given value also' + ' has the following trailing characters: ');
1974 src__matcher__core_matchers._StringEqualsMatcher._writeTrailing(buff , escapedItem, escapedValue[dartx.length]);
1975 } else {
1976 buff.write(' Both strings start the same, but the given value is' + ' missing the following trailing characters: ');
1977 src__matcher__core_matchers._StringEqualsMatcher._writeTrailing(buff , escapedValue, escapedItem[dartx.length]);
1978 }
1979 } else {
1980 buff.write('\nExpected: ');
1981 src__matcher__core_matchers._StringEqualsMatcher._writeLeading(buff, e scapedValue, start);
1982 src__matcher__core_matchers._StringEqualsMatcher._writeTrailing(buff, escapedValue, start);
1983 buff.write('\n Actual: ');
1984 src__matcher__core_matchers._StringEqualsMatcher._writeLeading(buff, e scapedItem, start);
1985 src__matcher__core_matchers._StringEqualsMatcher._writeTrailing(buff, escapedItem, start);
1986 buff.write('\n ');
1987 for (let i = dart.notNull(start) > 10 ? 14 : start; dart.notNull(i) > 0; i = dart.notNull(i) - 1)
1988 buff.write(' ');
1989 buff.write(dart.str`^\n Differ at offset ${start}`);
1990 }
1991 return mismatchDescription.replace(buff.toString());
1992 }
1993 }
1994 static _writeLeading(buff, s, start) {
1995 if (dart.notNull(start) > 10) {
1996 buff.write('... ');
1997 buff.write(s[dartx.substring](dart.notNull(start) - 10, start));
1998 } else {
1999 buff.write(s[dartx.substring](0, start));
2000 }
2001 }
2002 static _writeTrailing(buff, s, start) {
2003 if (dart.notNull(start) + 10 > dart.notNull(s[dartx.length])) {
2004 buff.write(s[dartx.substring](start));
2005 } else {
2006 buff.write(s[dartx.substring](start, dart.notNull(start) + 10));
2007 buff.write(' ...');
2008 }
2009 }
2010 };
2011 dart.setSignature(src__matcher__core_matchers._StringEqualsMatcher, {
2012 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._StringEqualsMatcher, [core.String])}),
2013 methods: () => ({
2014 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2015 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2016 }),
2017 statics: () => ({
2018 _writeLeading: dart.definiteFunctionType(dart.void, [core.StringBuffer, co re.String, core.int]),
2019 _writeTrailing: dart.definiteFunctionType(dart.void, [core.StringBuffer, c ore.String, core.int])
2020 }),
2021 names: ['_writeLeading', '_writeTrailing']
2022 });
2023 src__matcher__core_matchers._HasLength = class _HasLength extends src__matcher __interfaces.Matcher {
2024 new(matcher) {
2025 if (matcher === void 0) matcher = null;
2026 this[_matcher] = matcher;
2027 super.new();
2028 }
2029 matches(item, matchState) {
2030 try {
2031 if (dart.test(dart.dsend(dart.dsend(dart.dload(item, 'length'), '*', dar t.dload(item, 'length')), '>=', 0))) {
2032 return this[_matcher].matches(dart.dload(item, 'length'), matchState);
2033 }
2034 } catch (e) {
2035 }
2036
2037 return false;
2038 }
2039 describe(description) {
2040 return description.add('an object with length of ').addDescriptionOf(this[ _matcher]);
2041 }
2042 describeMismatch(item, mismatchDescription, matchState, verbose) {
2043 try {
2044 if (dart.test(dart.dsend(dart.dsend(dart.dload(item, 'length'), '*', dar t.dload(item, 'length')), '>=', 0))) {
2045 return mismatchDescription.add('has length of ').addDescriptionOf(dart .dload(item, 'length'));
2046 }
2047 } catch (e) {
2048 }
2049
2050 return mismatchDescription.add('has no length property');
2051 }
2052 };
2053 dart.setSignature(src__matcher__core_matchers._HasLength, {
2054 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._HasLength, [], [src__matcher__interfaces.Matcher])}),
2055 methods: () => ({
2056 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2057 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2058 })
2059 });
2060 src__matcher__core_matchers._Contains = class _Contains extends src__matcher__ interfaces.Matcher {
2061 new(expected) {
2062 this[_expected] = expected;
2063 super.new();
2064 }
2065 matches(item, matchState) {
2066 if (typeof item == 'string') {
2067 return dart.notNull(item[dartx.indexOf](core.Pattern._check(this[_expect ed]))) >= 0;
2068 } else if (core.Iterable.is(item)) {
2069 if (src__matcher__interfaces.Matcher.is(this[_expected])) {
2070 return item[dartx.any](dart.fn(e => core.bool._check(dart.dsend(this[_ expected], 'matches', e, matchState)), dynamicTobool$()));
2071 } else {
2072 return item[dartx.contains](this[_expected]);
2073 }
2074 } else if (core.Map.is(item)) {
2075 return item[dartx.containsKey](this[_expected]);
2076 }
2077 return false;
2078 }
2079 describe(description) {
2080 return description.add('contains ').addDescriptionOf(this[_expected]);
2081 }
2082 describeMismatch(item, mismatchDescription, matchState, verbose) {
2083 if (typeof item == 'string' || core.Iterable.is(item) || core.Map.is(item) ) {
2084 return super.describeMismatch(item, mismatchDescription, matchState, ver bose);
2085 } else {
2086 return mismatchDescription.add('is not a string, map or iterable');
2087 }
2088 }
2089 };
2090 dart.setSignature(src__matcher__core_matchers._Contains, {
2091 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._Contains, [dart.dynamic])}),
2092 methods: () => ({
2093 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2094 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2095 })
2096 });
2097 src__matcher__core_matchers._In = class _In extends src__matcher__interfaces.M atcher {
2098 new(expected) {
2099 this[_expected] = expected;
2100 super.new();
2101 }
2102 matches(item, matchState) {
2103 if (typeof this[_expected] == 'string') {
2104 return core.bool._check(dart.dsend(dart.dsend(this[_expected], 'indexOf' , item), '>=', 0));
2105 } else if (core.Iterable.is(this[_expected])) {
2106 return core.bool._check(dart.dsend(this[_expected], 'any', dart.fn(e => dart.equals(e, item), dynamicTobool$())));
2107 } else if (core.Map.is(this[_expected])) {
2108 return core.bool._check(dart.dsend(this[_expected], 'containsKey', item) );
2109 }
2110 return false;
2111 }
2112 describe(description) {
2113 return description.add('is in ').addDescriptionOf(this[_expected]);
2114 }
2115 };
2116 dart.setSignature(src__matcher__core_matchers._In, {
2117 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._In, [dart.dynamic])}),
2118 methods: () => ({
2119 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2120 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2121 })
2122 });
2123 src__matcher__core_matchers._PredicateFunction = dart.typedef('_PredicateFunct ion', () => dart.functionType(core.bool, [dart.dynamic]));
2124 const _description = Symbol('_description');
2125 src__matcher__core_matchers._Predicate = class _Predicate extends src__matcher __interfaces.Matcher {
2126 new(matcher, description) {
2127 this[_matcher] = matcher;
2128 this[_description] = description;
2129 super.new();
2130 }
2131 matches(item, matchState) {
2132 return dart.dcall(this[_matcher], item);
2133 }
2134 describe(description) {
2135 return description.add(this[_description]);
2136 }
2137 };
2138 dart.setSignature(src__matcher__core_matchers._Predicate, {
2139 constructors: () => ({new: dart.definiteFunctionType(src__matcher__core_matc hers._Predicate, [src__matcher__core_matchers._PredicateFunction, core.String])} ),
2140 methods: () => ({
2141 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2142 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2143 })
2144 });
2145 src__matcher__pretty_print.prettyPrint = function(object, opts) {
2146 let maxLineLength = opts && 'maxLineLength' in opts ? opts.maxLineLength : n ull;
2147 let maxItems = opts && 'maxItems' in opts ? opts.maxItems : null;
2148 function _prettyPrint(object, indent, seen, top) {
2149 if (src__matcher__interfaces.Matcher.is(object)) {
2150 let description = new src__matcher__description.StringDescription();
2151 object.describe(description);
2152 return dart.str`<${description}>`;
2153 }
2154 if (dart.test(seen.contains(object))) return "(recursive)";
2155 seen = seen.union(core.Set.from([object]));
2156 function pp(child) {
2157 return _prettyPrint(child, dart.notNull(indent) + 2, seen, false);
2158 }
2159 dart.fn(pp, dynamicToString());
2160 if (core.Iterable.is(object)) {
2161 let type = core.List.is(object) ? "" : dart.notNull(src__matcher__pretty _print._typeName(object)) + ":";
2162 let strings = object[dartx.map](core.String)(pp)[dartx.toList]();
2163 if (maxItems != null && dart.notNull(strings[dartx.length]) > dart.notNu ll(maxItems)) {
2164 strings[dartx.replaceRange](dart.notNull(maxItems) - 1, strings[dartx. length], JSArrayOfString().of(['...']));
2165 }
2166 let singleLine = dart.str`${type}[${strings[dartx.join](', ')}]`;
2167 if ((maxLineLength == null || dart.notNull(singleLine[dartx.length]) + d art.notNull(indent) <= dart.notNull(maxLineLength)) && !dart.test(singleLine[dar tx.contains]("\n"))) {
2168 return singleLine;
2169 }
2170 return dart.str`${type}[\n` + dart.notNull(strings[dartx.map](core.Strin g)(dart.fn(string => dart.notNull(src__matcher__pretty_print._indent(dart.notNul l(indent) + 2)) + dart.notNull(string), StringToString()))[dartx.join](",\n")) + "\n" + dart.notNull(src__matcher__pretty_print._indent(indent)) + "]";
2171 } else if (core.Map.is(object)) {
2172 let strings = object[dartx.keys][dartx.map](core.String)(dart.fn(key => dart.str`${pp(key)}: ${pp(object[dartx.get](key))}`, dynamicToString()))[dartx.t oList]();
2173 if (maxItems != null && dart.notNull(strings[dartx.length]) > dart.notNu ll(maxItems)) {
2174 strings[dartx.replaceRange](dart.notNull(maxItems) - 1, strings[dartx. length], JSArrayOfString().of(['...']));
2175 }
2176 let singleLine = dart.str`{${strings[dartx.join](", ")}}`;
2177 if ((maxLineLength == null || dart.notNull(singleLine[dartx.length]) + d art.notNull(indent) <= dart.notNull(maxLineLength)) && !dart.test(singleLine[dar tx.contains]("\n"))) {
2178 return singleLine;
2179 }
2180 return "{\n" + dart.notNull(strings[dartx.map](core.String)(dart.fn(stri ng => dart.notNull(src__matcher__pretty_print._indent(dart.notNull(indent) + 2)) + dart.notNull(string), StringToString()))[dartx.join](",\n")) + "\n" + dart.no tNull(src__matcher__pretty_print._indent(indent)) + "}";
2181 } else if (typeof object == 'string') {
2182 let lines = object[dartx.split]("\n");
2183 return "'" + dart.notNull(lines[dartx.map](core.String)(src__matcher__pr etty_print._escapeString)[dartx.join](dart.str`\\n'\n${src__matcher__pretty_prin t._indent(dart.notNull(indent) + 2)}'`)) + "'";
2184 } else {
2185 let value = dart.toString(object)[dartx.replaceAll]("\n", dart.notNull(s rc__matcher__pretty_print._indent(indent)) + "\n");
2186 let defaultToString = value[dartx.startsWith]("Instance of ");
2187 if (dart.test(top)) value = dart.str`<${value}>`;
2188 if (typeof object == 'number' || typeof object == 'boolean' || core.Func tion.is(object) || object == null || dart.test(defaultToString)) {
2189 return value;
2190 } else {
2191 return dart.str`${src__matcher__pretty_print._typeName(object)}:${valu e}`;
2192 }
2193 }
2194 }
2195 dart.fn(_prettyPrint, dynamicAndintAndSet__ToString());
2196 return _prettyPrint(object, 0, core.Set.new(), true);
2197 };
2198 dart.fn(src__matcher__pretty_print.prettyPrint, dynamic__ToString());
2199 src__matcher__pretty_print._indent = function(length) {
2200 return ListOfString().filled(length, ' ')[dartx.join]('');
2201 };
2202 dart.fn(src__matcher__pretty_print._indent, intToString());
2203 src__matcher__pretty_print._typeName = function(x) {
2204 try {
2205 if (x == null) return "null";
2206 let type = dart.toString(dart.runtimeType(x));
2207 return dart.test(type[dartx.startsWith]("_")) ? "?" : type;
2208 } catch (e) {
2209 return "?";
2210 }
2211
2212 };
2213 dart.fn(src__matcher__pretty_print._typeName, dynamicToString());
2214 src__matcher__pretty_print._escapeString = function(source) {
2215 return src__matcher__util.escape(source)[dartx.replaceAll]("'", "\\'");
2216 };
2217 dart.fn(src__matcher__pretty_print._escapeString, StringToString());
2218 src__matcher__util._Predicate = dart.typedef('_Predicate', () => dart.function Type(core.bool, [dart.dynamic]));
2219 src__matcher__util._escapeMap = dart.const(dart.map({'\n': '\\n', '\r': '\\r', '\f': '\\f', '\b': '\\b', '\t': '\\t', '\v': '\\v', '': '\\x7F'}, core.String, core.String));
2220 dart.defineLazy(src__matcher__util, {
2221 get _escapeRegExp() {
2222 return core.RegExp.new(dart.str`[\\x00-\\x07\\x0E-\\x1F${src__matcher__uti l._escapeMap[dartx.keys][dartx.map](core.String)(src__matcher__util._getHexLiter al)[dartx.join]()}]`);
2223 }
2224 });
2225 src__matcher__util._getHexLiteral = function(input) {
2226 let rune = input[dartx.runes].single;
2227 return '\\x' + dart.notNull(rune[dartx.toRadixString](16)[dartx.toUpperCase] ()[dartx.padLeft](2, '0'));
2228 };
2229 dart.fn(src__matcher__util._getHexLiteral, StringToString());
2230 src__matcher__expect._assertFailureHandler = null;
2231 src__matcher__expect._assertErrorFormatter = null;
2232 src__matcher__expect._defaultErrorFormatter = function(actual, matcher, reason , matchState, verbose) {
2233 let description = new src__matcher__description.StringDescription();
2234 description.add('Expected: ').addDescriptionOf(matcher).add('\n');
2235 description.add(' Actual: ').addDescriptionOf(actual).add('\n');
2236 let mismatchDescription = new src__matcher__description.StringDescription();
2237 matcher.describeMismatch(actual, mismatchDescription, matchState, verbose);
2238 if (dart.notNull(mismatchDescription.length) > 0) {
2239 description.add(dart.str` Which: ${mismatchDescription}\n`);
2240 }
2241 if (reason != null) {
2242 description.add(reason).add('\n');
2243 }
2244 return description.toString();
2245 };
2246 dart.fn(src__matcher__expect._defaultErrorFormatter, dynamicAndMatcherAndStrin g__ToString());
2247 const _matcher$1 = Symbol('_matcher');
2248 src__matcher__iterable_matchers._IterableMatcher = class _IterableMatcher exte nds src__matcher__interfaces.Matcher {
2249 new() {
2250 super.new();
2251 }
2252 describeMismatch(item, mismatchDescription, matchState, verbose) {
2253 if (!core.Iterable.is(item)) {
2254 return mismatchDescription.addDescriptionOf(item).add(' not an Iterable' );
2255 } else {
2256 return super.describeMismatch(item, mismatchDescription, matchState, ver bose);
2257 }
2258 }
2259 };
2260 dart.setSignature(src__matcher__iterable_matchers._IterableMatcher, {
2261 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._IterableMatcher, [])})
2262 });
2263 src__matcher__iterable_matchers._EveryElement = class _EveryElement extends sr c__matcher__iterable_matchers._IterableMatcher {
2264 new(matcher) {
2265 this[_matcher$1] = matcher;
2266 super.new();
2267 }
2268 matches(item, matchState) {
2269 if (!core.Iterable.is(item)) {
2270 return false;
2271 }
2272 let i = 0;
2273 for (let element of core.Iterable._check(item)) {
2274 if (!dart.test(this[_matcher$1].matches(element, matchState))) {
2275 src__matcher__util.addStateInfo(matchState, dart.map({index: i, elemen t: element}, core.String, dart.dynamic));
2276 return false;
2277 }
2278 ++i;
2279 }
2280 return true;
2281 }
2282 describe(description) {
2283 return description.add('every element(').addDescriptionOf(this[_matcher$1] ).add(')');
2284 }
2285 describeMismatch(item, mismatchDescription, matchState, verbose) {
2286 if (matchState[dartx.get]('index') != null) {
2287 let index = matchState[dartx.get]('index');
2288 let element = matchState[dartx.get]('element');
2289 mismatchDescription.add('has value ').addDescriptionOf(element).add(' wh ich ');
2290 let subDescription = new src__matcher__description.StringDescription();
2291 this[_matcher$1].describeMismatch(element, subDescription, core.Map._che ck(matchState[dartx.get]('state')), verbose);
2292 if (dart.notNull(subDescription.length) > 0) {
2293 mismatchDescription.add(subDescription.toString());
2294 } else {
2295 mismatchDescription.add("doesn't match ");
2296 this[_matcher$1].describe(mismatchDescription);
2297 }
2298 mismatchDescription.add(dart.str` at index ${index}`);
2299 return mismatchDescription;
2300 }
2301 return super.describeMismatch(item, mismatchDescription, matchState, verbo se);
2302 }
2303 };
2304 dart.setSignature(src__matcher__iterable_matchers._EveryElement, {
2305 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._EveryElement, [src__matcher__interfaces.Matcher])}),
2306 methods: () => ({
2307 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2308 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2309 })
2310 });
2311 src__matcher__iterable_matchers._AnyElement = class _AnyElement extends src__m atcher__iterable_matchers._IterableMatcher {
2312 new(matcher) {
2313 this[_matcher$1] = matcher;
2314 super.new();
2315 }
2316 matches(item, matchState) {
2317 return core.bool._check(dart.dsend(item, 'any', dart.fn(e => this[_matcher $1].matches(e, matchState), dynamicTobool$())));
2318 }
2319 describe(description) {
2320 return description.add('some element ').addDescriptionOf(this[_matcher$1]) ;
2321 }
2322 };
2323 dart.setSignature(src__matcher__iterable_matchers._AnyElement, {
2324 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._AnyElement, [src__matcher__interfaces.Matcher])}),
2325 methods: () => ({
2326 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2327 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2328 })
2329 });
2330 const _expected$ = Symbol('_expected');
2331 src__matcher__iterable_matchers._OrderedEquals = class _OrderedEquals extends src__matcher__interfaces.Matcher {
2332 new(expected) {
2333 this[_expected$] = expected;
2334 this[_matcher$1] = null;
2335 super.new();
2336 this[_matcher$1] = src__matcher__core_matchers.equals(this[_expected$], 1) ;
2337 }
2338 matches(item, matchState) {
2339 return core.Iterable.is(item) && dart.test(this[_matcher$1].matches(item, matchState));
2340 }
2341 describe(description) {
2342 return description.add('equals ').addDescriptionOf(this[_expected$]).add(' ordered');
2343 }
2344 describeMismatch(item, mismatchDescription, matchState, verbose) {
2345 if (!core.Iterable.is(item)) {
2346 return mismatchDescription.add('is not an Iterable');
2347 } else {
2348 return this[_matcher$1].describeMismatch(item, mismatchDescription, matc hState, verbose);
2349 }
2350 }
2351 };
2352 dart.setSignature(src__matcher__iterable_matchers._OrderedEquals, {
2353 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._OrderedEquals, [core.Iterable])}),
2354 methods: () => ({
2355 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2356 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2357 })
2358 });
2359 const _expectedValues = Symbol('_expectedValues');
2360 const _test = Symbol('_test');
2361 src__matcher__iterable_matchers._UnorderedMatches = class _UnorderedMatches ex tends src__matcher__interfaces.Matcher {
2362 new(expected) {
2363 this[_expected$] = expected[dartx.map](src__matcher__interfaces.Matcher)(s rc__matcher__util.wrapMatcher)[dartx.toList]();
2364 super.new();
2365 }
2366 [_test](item) {
2367 if (!core.Iterable.is(item)) return 'not iterable';
2368 item = dart.dsend(item, 'toList');
2369 if (dart.notNull(this[_expected$][dartx.length]) > dart.notNull(core.num._ check(dart.dload(item, 'length')))) {
2370 return dart.str`has too few elements (${dart.dload(item, 'length')} < ${ this[_expected$][dartx.length]})`;
2371 } else if (dart.notNull(this[_expected$][dartx.length]) < dart.notNull(cor e.num._check(dart.dload(item, 'length')))) {
2372 return dart.str`has too many elements (${dart.dload(item, 'length')} > $ {this[_expected$][dartx.length]})`;
2373 }
2374 let matched = ListOfbool().filled(core.int._check(dart.dload(item, 'length ')), false);
2375 let expectedPosition = 0;
2376 for (let expectedMatcher of this[_expected$]) {
2377 let actualPosition = 0;
2378 let gotMatch = false;
2379 for (let actualElement of core.Iterable._check(item)) {
2380 if (!dart.test(matched[dartx.get](actualPosition))) {
2381 if (dart.test(expectedMatcher.matches(actualElement, dart.map()))) {
2382 matched[dartx.set](actualPosition, gotMatch = true);
2383 break;
2384 }
2385 }
2386 ++actualPosition;
2387 }
2388 if (!gotMatch) {
2389 return dart.toString(new src__matcher__description.StringDescription() .add('has no match for ').addDescriptionOf(expectedMatcher).add(dart.str` at ind ex ${expectedPosition}`));
2390 }
2391 ++expectedPosition;
2392 }
2393 return null;
2394 }
2395 matches(item, mismatchState) {
2396 return this[_test](item) == null;
2397 }
2398 describe(description) {
2399 return description.add('matches ').addAll('[', ', ', ']', this[_expected$] ).add(' unordered');
2400 }
2401 describeMismatch(item, mismatchDescription, matchState, verbose) {
2402 return mismatchDescription.add(this[_test](item));
2403 }
2404 };
2405 dart.setSignature(src__matcher__iterable_matchers._UnorderedMatches, {
2406 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._UnorderedMatches, [core.Iterable])}),
2407 methods: () => ({
2408 [_test]: dart.definiteFunctionType(core.String, [dart.dynamic]),
2409 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2410 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2411 })
2412 });
2413 src__matcher__iterable_matchers._UnorderedEquals = class _UnorderedEquals exte nds src__matcher__iterable_matchers._UnorderedMatches {
2414 new(expected) {
2415 this[_expectedValues] = expected[dartx.toList]();
2416 super.new(expected[dartx.map](src__matcher__interfaces.Matcher)(src__match er__core_matchers.equals));
2417 }
2418 describe(description) {
2419 return description.add('equals ').addDescriptionOf(this[_expectedValues]). add(' unordered');
2420 }
2421 };
2422 dart.setSignature(src__matcher__iterable_matchers._UnorderedEquals, {
2423 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._UnorderedEquals, [core.Iterable])})
2424 });
2425 src__matcher__iterable_matchers._Comparator = dart.typedef('_Comparator', () = > dart.functionType(core.bool, [dart.dynamic, dart.dynamic]));
2426 const _comparator = Symbol('_comparator');
2427 const _description$ = Symbol('_description');
2428 src__matcher__iterable_matchers._PairwiseCompare = class _PairwiseCompare exte nds src__matcher__iterable_matchers._IterableMatcher {
2429 new(expected, comparator, description) {
2430 this[_expected$] = expected;
2431 this[_comparator] = comparator;
2432 this[_description$] = description;
2433 super.new();
2434 }
2435 matches(item, matchState) {
2436 if (!core.Iterable.is(item)) return false;
2437 if (!dart.equals(dart.dload(item, 'length'), this[_expected$][dartx.length ])) return false;
2438 let iterator = dart.dload(item, 'iterator');
2439 let i = 0;
2440 for (let e of this[_expected$]) {
2441 dart.dsend(iterator, 'moveNext');
2442 if (!dart.test(dart.dcall(this[_comparator], e, dart.dload(iterator, 'cu rrent')))) {
2443 src__matcher__util.addStateInfo(matchState, dart.map({index: i, expect ed: e, actual: dart.dload(iterator, 'current')}, core.String, dart.dynamic));
2444 return false;
2445 }
2446 i++;
2447 }
2448 return true;
2449 }
2450 describe(description) {
2451 return description.add(dart.str`pairwise ${this[_description$]} `).addDesc riptionOf(this[_expected$]);
2452 }
2453 describeMismatch(item, mismatchDescription, matchState, verbose) {
2454 if (!core.Iterable.is(item)) {
2455 return mismatchDescription.add('is not an Iterable');
2456 } else if (!dart.equals(dart.dload(item, 'length'), this[_expected$][dartx .length])) {
2457 return mismatchDescription.add(dart.str`has length ${dart.dload(item, 'l ength')} instead of ${this[_expected$][dartx.length]}`);
2458 } else {
2459 return mismatchDescription.add('has ').addDescriptionOf(matchState[dartx .get]("actual")).add(dart.str` which is not ${this[_description$]} `).addDescrip tionOf(matchState[dartx.get]("expected")).add(dart.str` at index ${matchState[da rtx.get]("index")}`);
2460 }
2461 }
2462 };
2463 dart.setSignature(src__matcher__iterable_matchers._PairwiseCompare, {
2464 constructors: () => ({new: dart.definiteFunctionType(src__matcher__iterable_ matchers._PairwiseCompare, [core.Iterable, src__matcher__iterable_matchers._Comp arator, core.String])}),
2465 methods: () => ({
2466 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2467 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2468 })
2469 });
2470 const _value$0 = Symbol('_value');
2471 src__matcher__map_matchers._ContainsValue = class _ContainsValue extends src__ matcher__interfaces.Matcher {
2472 new(value) {
2473 this[_value$0] = value;
2474 super.new();
2475 }
2476 matches(item, matchState) {
2477 return core.bool._check(dart.dsend(item, 'containsValue', this[_value$0])) ;
2478 }
2479 describe(description) {
2480 return description.add('contains value ').addDescriptionOf(this[_value$0]) ;
2481 }
2482 };
2483 dart.setSignature(src__matcher__map_matchers._ContainsValue, {
2484 constructors: () => ({new: dart.definiteFunctionType(src__matcher__map_match ers._ContainsValue, [dart.dynamic])}),
2485 methods: () => ({
2486 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2487 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2488 })
2489 });
2490 const _key = Symbol('_key');
2491 const _valueMatcher = Symbol('_valueMatcher');
2492 src__matcher__map_matchers._ContainsMapping = class _ContainsMapping extends s rc__matcher__interfaces.Matcher {
2493 new(key, valueMatcher) {
2494 this[_key] = key;
2495 this[_valueMatcher] = valueMatcher;
2496 super.new();
2497 }
2498 matches(item, matchState) {
2499 return dart.test(dart.dsend(item, 'containsKey', this[_key])) && dart.test (this[_valueMatcher].matches(dart.dindex(item, this[_key]), matchState));
2500 }
2501 describe(description) {
2502 return description.add('contains pair ').addDescriptionOf(this[_key]).add( ' => ').addDescriptionOf(this[_valueMatcher]);
2503 }
2504 describeMismatch(item, mismatchDescription, matchState, verbose) {
2505 if (!dart.test(dart.dsend(item, 'containsKey', this[_key]))) {
2506 return mismatchDescription.add(" doesn't contain key ").addDescriptionOf (this[_key]);
2507 } else {
2508 mismatchDescription.add(' contains key ').addDescriptionOf(this[_key]).a dd(' but with value ');
2509 this[_valueMatcher].describeMismatch(dart.dindex(item, this[_key]), mism atchDescription, matchState, verbose);
2510 return mismatchDescription;
2511 }
2512 }
2513 };
2514 dart.setSignature(src__matcher__map_matchers._ContainsMapping, {
2515 constructors: () => ({new: dart.definiteFunctionType(src__matcher__map_match ers._ContainsMapping, [dart.dynamic, src__matcher__interfaces.Matcher])}),
2516 methods: () => ({
2517 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2518 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2519 })
2520 });
2521 src__matcher__numeric_matchers._isNumeric = function(value) {
2522 return typeof value == 'number';
2523 };
2524 dart.fn(src__matcher__numeric_matchers._isNumeric, dynamicTobool$());
2525 const _delta = Symbol('_delta');
2526 src__matcher__numeric_matchers._IsCloseTo = class _IsCloseTo extends src__matc her__interfaces.Matcher {
2527 new(value, delta) {
2528 this[_value] = value;
2529 this[_delta] = delta;
2530 super.new();
2531 }
2532 matches(item, matchState) {
2533 if (!dart.test(src__matcher__numeric_matchers._isNumeric(item))) {
2534 return false;
2535 }
2536 let diff = dart.dsend(item, '-', this[_value]);
2537 if (dart.test(dart.dsend(diff, '<', 0))) diff = dart.dsend(diff, 'unary-') ;
2538 return core.bool._check(dart.dsend(diff, '<=', this[_delta]));
2539 }
2540 describe(description) {
2541 return description.add('a numeric value within ').addDescriptionOf(this[_d elta]).add(' of ').addDescriptionOf(this[_value]);
2542 }
2543 describeMismatch(item, mismatchDescription, matchState, verbose) {
2544 if (!(typeof item == 'number')) {
2545 return mismatchDescription.add(' not numeric');
2546 } else {
2547 let diff = dart.dsend(item, '-', this[_value]);
2548 if (dart.test(dart.dsend(diff, '<', 0))) diff = dart.dsend(diff, 'unary- ');
2549 return mismatchDescription.add(' differs by ').addDescriptionOf(diff);
2550 }
2551 }
2552 };
2553 dart.setSignature(src__matcher__numeric_matchers._IsCloseTo, {
2554 constructors: () => ({new: dart.definiteFunctionType(src__matcher__numeric_m atchers._IsCloseTo, [core.num, core.num])}),
2555 methods: () => ({
2556 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2557 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2558 })
2559 });
2560 const _low = Symbol('_low');
2561 const _high = Symbol('_high');
2562 const _lowMatchValue = Symbol('_lowMatchValue');
2563 const _highMatchValue = Symbol('_highMatchValue');
2564 src__matcher__numeric_matchers._InRange = class _InRange extends src__matcher_ _interfaces.Matcher {
2565 new(low, high, lowMatchValue, highMatchValue) {
2566 this[_low] = low;
2567 this[_high] = high;
2568 this[_lowMatchValue] = lowMatchValue;
2569 this[_highMatchValue] = highMatchValue;
2570 super.new();
2571 }
2572 matches(value, matchState) {
2573 if (!(typeof value == 'number')) {
2574 return false;
2575 }
2576 if (dart.test(dart.dsend(value, '<', this[_low])) || dart.test(dart.dsend( value, '>', this[_high]))) {
2577 return false;
2578 }
2579 if (dart.equals(value, this[_low])) {
2580 return this[_lowMatchValue];
2581 }
2582 if (dart.equals(value, this[_high])) {
2583 return this[_highMatchValue];
2584 }
2585 return true;
2586 }
2587 describe(description) {
2588 return description.add("be in range from " + dart.str`${this[_low]} (${dar t.test(this[_lowMatchValue]) ? 'inclusive' : 'exclusive'}) to ` + dart.str`${thi s[_high]} (${dart.test(this[_highMatchValue]) ? 'inclusive' : 'exclusive'})`);
2589 }
2590 describeMismatch(item, mismatchDescription, matchState, verbose) {
2591 if (!(typeof item == 'number')) {
2592 return mismatchDescription.addDescriptionOf(item).add(' not numeric');
2593 } else {
2594 return super.describeMismatch(item, mismatchDescription, matchState, ver bose);
2595 }
2596 }
2597 };
2598 dart.setSignature(src__matcher__numeric_matchers._InRange, {
2599 constructors: () => ({new: dart.definiteFunctionType(src__matcher__numeric_m atchers._InRange, [core.num, core.num, core.bool, core.bool])}),
2600 methods: () => ({
2601 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2602 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2603 })
2604 });
2605 const _matcher$2 = Symbol('_matcher');
2606 src__matcher__operator_matchers._IsNot = class _IsNot extends src__matcher__in terfaces.Matcher {
2607 new(matcher) {
2608 this[_matcher$2] = matcher;
2609 super.new();
2610 }
2611 matches(item, matchState) {
2612 return !dart.test(this[_matcher$2].matches(item, matchState));
2613 }
2614 describe(description) {
2615 return description.add('not ').addDescriptionOf(this[_matcher$2]);
2616 }
2617 };
2618 dart.setSignature(src__matcher__operator_matchers._IsNot, {
2619 constructors: () => ({new: dart.definiteFunctionType(src__matcher__operator_ matchers._IsNot, [src__matcher__interfaces.Matcher])}),
2620 methods: () => ({
2621 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2622 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2623 })
2624 });
2625 const _matchers = Symbol('_matchers');
2626 src__matcher__operator_matchers._AllOf = class _AllOf extends src__matcher__in terfaces.Matcher {
2627 new(matchers) {
2628 this[_matchers] = matchers;
2629 super.new();
2630 }
2631 matches(item, matchState) {
2632 for (let matcher of this[_matchers]) {
2633 if (!dart.test(matcher.matches(item, matchState))) {
2634 src__matcher__util.addStateInfo(matchState, dart.map({matcher: matcher }, core.String, src__matcher__interfaces.Matcher));
2635 return false;
2636 }
2637 }
2638 return true;
2639 }
2640 describeMismatch(item, mismatchDescription, matchState, verbose) {
2641 let matcher = matchState[dartx.get]('matcher');
2642 dart.dsend(matcher, 'describeMismatch', item, mismatchDescription, matchSt ate[dartx.get]('state'), verbose);
2643 return mismatchDescription;
2644 }
2645 describe(description) {
2646 return description.addAll('(', ' and ', ')', this[_matchers]);
2647 }
2648 };
2649 dart.setSignature(src__matcher__operator_matchers._AllOf, {
2650 constructors: () => ({new: dart.definiteFunctionType(src__matcher__operator_ matchers._AllOf, [core.List$(src__matcher__interfaces.Matcher)])}),
2651 methods: () => ({
2652 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2653 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2654 })
2655 });
2656 src__matcher__operator_matchers._AnyOf = class _AnyOf extends src__matcher__in terfaces.Matcher {
2657 new(matchers) {
2658 this[_matchers] = matchers;
2659 super.new();
2660 }
2661 matches(item, matchState) {
2662 for (let matcher of this[_matchers]) {
2663 if (dart.test(matcher.matches(item, matchState))) {
2664 return true;
2665 }
2666 }
2667 return false;
2668 }
2669 describe(description) {
2670 return description.addAll('(', ' or ', ')', this[_matchers]);
2671 }
2672 };
2673 dart.setSignature(src__matcher__operator_matchers._AnyOf, {
2674 constructors: () => ({new: dart.definiteFunctionType(src__matcher__operator_ matchers._AnyOf, [core.List$(src__matcher__interfaces.Matcher)])}),
2675 methods: () => ({
2676 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2677 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2678 })
2679 });
2680 src__matcher__operator_matchers._wrapArgs = function(arg0, arg1, arg2, arg3, a rg4, arg5, arg6) {
2681 let args = null;
2682 if (core.List.is(arg0)) {
2683 if (arg1 != null || arg2 != null || arg3 != null || arg4 != null || arg5 ! = null || arg6 != null) {
2684 dart.throw(new core.ArgumentError('If arg0 is a List, all other argument s must be' + ' null.'));
2685 }
2686 args = arg0;
2687 } else {
2688 args = [arg0, arg1, arg2, arg3, arg4, arg5, arg6][dartx.where](dart.fn(e = > e != null, dynamicTobool$()));
2689 }
2690 return args[dartx.map](src__matcher__interfaces.Matcher)(dart.fn(e => src__m atcher__util.wrapMatcher(e), dynamicToMatcher()))[dartx.toList]();
2691 };
2692 dart.fn(src__matcher__operator_matchers._wrapArgs, dynamicAnddynamicAnddynamic __ToListOfMatcher());
2693 const _matcher$3 = Symbol('_matcher');
2694 src__matcher__prints_matcher._Prints = class _Prints extends src__matcher__int erfaces.Matcher {
2695 new(matcher) {
2696 this[_matcher$3] = matcher;
2697 super.new();
2698 }
2699 matches(item, matchState) {
2700 if (!core.Function.is(item)) return false;
2701 let buffer = new core.StringBuffer();
2702 let result = async.runZoned(dart.dynamic)(VoidTodynamic()._check(item), {z oneSpecification: async.ZoneSpecification.new({print: dart.fn((_, __, ____, line ) => {
2703 buffer.writeln(line);
2704 }, ZoneAndZoneDelegateAndZone__Tovoid())})});
2705 if (!async.Future.is(result)) {
2706 let actual = buffer.toString();
2707 matchState[dartx.set]('prints.actual', actual);
2708 return this[_matcher$3].matches(actual, matchState);
2709 }
2710 return src__matcher__future_matchers.completes.matches(dart.dsend(result, 'then', dart.dcall(src__matcher__expect.wrapAsync, dart.fn(_ => {
2711 src__matcher__expect.expect(buffer.toString(), this[_matcher$3]);
2712 }, dynamicTodynamic()), 'prints')), matchState);
2713 }
2714 describe(description) {
2715 return description.add('prints ').addDescriptionOf(this[_matcher$3]);
2716 }
2717 describeMismatch(item, description, matchState, verbose) {
2718 let actual = matchState[dartx.remove]('prints.actual');
2719 if (actual == null) return description;
2720 if (dart.test(dart.dload(actual, 'isEmpty'))) return description.add("prin ted nothing.");
2721 description.add('printed ').addDescriptionOf(actual);
2722 let innerMismatch = dart.toString(this[_matcher$3].describeMismatch(actual , new src__matcher__description.StringDescription(), matchState, verbose));
2723 if (dart.test(innerMismatch[dartx.isNotEmpty])) {
2724 description.add('\n Which: ').add(dart.toString(innerMismatch));
2725 }
2726 return description;
2727 }
2728 };
2729 dart.setSignature(src__matcher__prints_matcher._Prints, {
2730 constructors: () => ({new: dart.definiteFunctionType(src__matcher__prints_ma tcher._Prints, [src__matcher__interfaces.Matcher])}),
2731 methods: () => ({
2732 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2733 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2734 })
2735 });
2736 const _value$1 = Symbol('_value');
2737 const _matchValue = Symbol('_matchValue');
2738 src__matcher__string_matchers._StringMatcher = class _StringMatcher extends sr c__matcher__interfaces.Matcher {
2739 new() {
2740 super.new();
2741 }
2742 describeMismatch(item, mismatchDescription, matchState, verbose) {
2743 if (!(typeof item == 'string')) {
2744 return mismatchDescription.addDescriptionOf(item).add(' not a string');
2745 } else {
2746 return super.describeMismatch(item, mismatchDescription, matchState, ver bose);
2747 }
2748 }
2749 };
2750 dart.setSignature(src__matcher__string_matchers._StringMatcher, {
2751 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._StringMatcher, [])})
2752 });
2753 src__matcher__string_matchers._IsEqualIgnoringCase = class _IsEqualIgnoringCas e extends src__matcher__string_matchers._StringMatcher {
2754 new(value) {
2755 this[_value$1] = value;
2756 this[_matchValue] = value[dartx.toLowerCase]();
2757 super.new();
2758 }
2759 matches(item, matchState) {
2760 return typeof item == 'string' && this[_matchValue] == item[dartx.toLowerC ase]();
2761 }
2762 describe(description) {
2763 return description.addDescriptionOf(this[_value$1]).add(' ignoring case');
2764 }
2765 };
2766 dart.setSignature(src__matcher__string_matchers._IsEqualIgnoringCase, {
2767 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._IsEqualIgnoringCase, [core.String])}),
2768 methods: () => ({
2769 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2770 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2771 })
2772 });
2773 src__matcher__string_matchers._IsEqualIgnoringWhitespace = class _IsEqualIgnor ingWhitespace extends src__matcher__string_matchers._StringMatcher {
2774 new(value) {
2775 this[_value$1] = value;
2776 this[_matchValue] = src__matcher__string_matchers.collapseWhitespace(value );
2777 super.new();
2778 }
2779 matches(item, matchState) {
2780 return typeof item == 'string' && this[_matchValue] == src__matcher__strin g_matchers.collapseWhitespace(item);
2781 }
2782 describe(description) {
2783 return description.addDescriptionOf(this[_matchValue]).add(' ignoring whit espace');
2784 }
2785 describeMismatch(item, mismatchDescription, matchState, verbose) {
2786 if (typeof item == 'string') {
2787 return mismatchDescription.add('is ').addDescriptionOf(src__matcher__str ing_matchers.collapseWhitespace(item)).add(' with whitespace compressed');
2788 } else {
2789 return super.describeMismatch(item, mismatchDescription, matchState, ver bose);
2790 }
2791 }
2792 };
2793 dart.setSignature(src__matcher__string_matchers._IsEqualIgnoringWhitespace, {
2794 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._IsEqualIgnoringWhitespace, [core.String])}),
2795 methods: () => ({
2796 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2797 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2798 })
2799 });
2800 const _prefix = Symbol('_prefix');
2801 src__matcher__string_matchers._StringStartsWith = class _StringStartsWith exte nds src__matcher__string_matchers._StringMatcher {
2802 new(prefix) {
2803 this[_prefix] = prefix;
2804 super.new();
2805 }
2806 matches(item, matchState) {
2807 return typeof item == 'string' && dart.test(item[dartx.startsWith](this[_p refix]));
2808 }
2809 describe(description) {
2810 return description.add('a string starting with ').addDescriptionOf(this[_p refix]);
2811 }
2812 };
2813 dart.setSignature(src__matcher__string_matchers._StringStartsWith, {
2814 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._StringStartsWith, [core.String])}),
2815 methods: () => ({
2816 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2817 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2818 })
2819 });
2820 const _suffix = Symbol('_suffix');
2821 src__matcher__string_matchers._StringEndsWith = class _StringEndsWith extends src__matcher__string_matchers._StringMatcher {
2822 new(suffix) {
2823 this[_suffix] = suffix;
2824 super.new();
2825 }
2826 matches(item, matchState) {
2827 return typeof item == 'string' && dart.test(item[dartx.endsWith](this[_suf fix]));
2828 }
2829 describe(description) {
2830 return description.add('a string ending with ').addDescriptionOf(this[_suf fix]);
2831 }
2832 };
2833 dart.setSignature(src__matcher__string_matchers._StringEndsWith, {
2834 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._StringEndsWith, [core.String])}),
2835 methods: () => ({
2836 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2837 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2838 })
2839 });
2840 const _substrings = Symbol('_substrings');
2841 src__matcher__string_matchers._StringContainsInOrder = class _StringContainsIn Order extends src__matcher__string_matchers._StringMatcher {
2842 new(substrings) {
2843 this[_substrings] = substrings;
2844 super.new();
2845 }
2846 matches(item, matchState) {
2847 if (!(typeof item == 'string')) {
2848 return false;
2849 }
2850 let from_index = 0;
2851 for (let s of this[_substrings]) {
2852 from_index = core.int._check(dart.dsend(item, 'indexOf', s, from_index)) ;
2853 if (dart.notNull(from_index) < 0) return false;
2854 }
2855 return true;
2856 }
2857 describe(description) {
2858 return description.addAll('a string containing ', ', ', ' in order', this[ _substrings]);
2859 }
2860 };
2861 dart.setSignature(src__matcher__string_matchers._StringContainsInOrder, {
2862 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._StringContainsInOrder, [core.List$(core.String)])}),
2863 methods: () => ({
2864 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2865 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2866 })
2867 });
2868 const _regexp = Symbol('_regexp');
2869 src__matcher__string_matchers._MatchesRegExp = class _MatchesRegExp extends sr c__matcher__string_matchers._StringMatcher {
2870 new(re) {
2871 this[_regexp] = null;
2872 super.new();
2873 if (typeof re == 'string') {
2874 this[_regexp] = core.RegExp.new(re);
2875 } else if (core.RegExp.is(re)) {
2876 this[_regexp] = re;
2877 } else {
2878 dart.throw(new core.ArgumentError('matches requires a regexp or string') );
2879 }
2880 }
2881 matches(item, matchState) {
2882 return typeof item == 'string' ? this[_regexp].hasMatch(item) : false;
2883 }
2884 describe(description) {
2885 return description.add(dart.str`match '${this[_regexp].pattern}'`);
2886 }
2887 };
2888 dart.setSignature(src__matcher__string_matchers._MatchesRegExp, {
2889 constructors: () => ({new: dart.definiteFunctionType(src__matcher__string_ma tchers._MatchesRegExp, [dart.dynamic])}),
2890 methods: () => ({
2891 matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]),
2892 describe: dart.definiteFunctionType(src__matcher__interfaces.Description, [src__matcher__interfaces.Description])
2893 })
2894 });
2895 src__matcher__string_matchers._isWhitespace = function(ch) {
2896 return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
2897 };
2898 dart.fn(src__matcher__string_matchers._isWhitespace, StringTobool());
2899 const _startTime = Symbol('_startTime');
2900 const _runningTime = Symbol('_runningTime');
2901 const _testFunction = Symbol('_testFunction');
2902 const _setUp = Symbol('_setUp');
2903 const _tearDown = Symbol('_tearDown');
2904 const _testComplete = Symbol('_testComplete');
2905 const _errorHandler = Symbol('_errorHandler');
2906 let const$1;
2907 const _setResult = Symbol('_setResult');
2908 const _complete = Symbol('_complete');
2909 src__internal_test_case.InternalTestCase = class InternalTestCase extends core .Object {
2910 get passed() {
2911 return this.result == unittest.PASS;
2912 }
2913 get startTime() {
2914 return this[_startTime];
2915 }
2916 get runningTime() {
2917 return this[_runningTime];
2918 }
2919 get isComplete() {
2920 return !dart.test(this.enabled) || this.result != null;
2921 }
2922 new(id, description, testFunction) {
2923 this.id = id;
2924 this.description = description;
2925 this[_testFunction] = testFunction;
2926 this.currentGroup = src__test_environment.environment.currentContext.fullN ame;
2927 this[_setUp] = src__test_environment.environment.currentContext.testSetUp;
2928 this[_tearDown] = src__test_environment.environment.currentContext.testTea rDown;
2929 this.callbackFunctionsOutstanding = 0;
2930 this.message = '';
2931 this.result = null;
2932 this.stackTrace = null;
2933 this[_startTime] = null;
2934 this[_runningTime] = null;
2935 this.enabled = true;
2936 this[_testComplete] = null;
2937 }
2938 [_errorHandler](stage) {
2939 return dart.fn((e, stack) => {
2940 if (stack == null && core.Error.is(e)) {
2941 stack = e.stackTrace;
2942 }
2943 if (this.result == null || this.result == unittest.PASS) {
2944 if (src__matcher__expect.TestFailure.is(e)) {
2945 this.fail(dart.str`${e}`, core.StackTrace._check(stack));
2946 } else {
2947 this.error(dart.str`${stage} failed: Caught ${e}`, core.StackTrace._ check(stack));
2948 }
2949 }
2950 }, dynamicAnddynamicTodynamic());
2951 }
2952 run() {
2953 if (!dart.test(this.enabled)) return async.Future.value();
2954 this.result = this.stackTrace = null;
2955 this.message = '';
2956 return async.Future.value().then(dart.dynamic)(dart.fn(_ => {
2957 if (this[_setUp] != null) return dart.dcall(this[_setUp]);
2958 }, dynamicTodynamic())).catchError(this[_errorHandler]('Setup')).then(asyn c.Future)(dart.fn(_ => {
2959 if (this.result != null) return async.Future.value();
2960 src__test_environment.config.onTestStart(this);
2961 this[_startTime] = new core.DateTime.now();
2962 this[_runningTime] = null;
2963 this.callbackFunctionsOutstanding = dart.notNull(this.callbackFunctionsO utstanding) + 1;
2964 let testReturn = this[_testFunction]();
2965 if (async.Future.is(testReturn)) {
2966 this.callbackFunctionsOutstanding = dart.notNull(this.callbackFunction sOutstanding) + 1;
2967 testReturn.catchError(this[_errorHandler]('Test')).whenComplete(dart.b ind(this, 'markCallbackComplete'));
2968 }
2969 }, dynamicToFuture())).catchError(this[_errorHandler]('Test')).then(dart.d ynamic)(dart.fn(_ => {
2970 this.markCallbackComplete();
2971 if (this.result == null) {
2972 this[_testComplete] = async.Completer.new();
2973 return this[_testComplete].future.whenComplete(dart.fn(() => {
2974 if (this[_tearDown] != null) {
2975 return dart.dcall(this[_tearDown]);
2976 }
2977 }, VoidTodynamic$())).catchError(this[_errorHandler]('Teardown'));
2978 } else if (this[_tearDown] != null) {
2979 return dart.dcall(this[_tearDown]);
2980 }
2981 }, dynamicTodynamic())).catchError(this[_errorHandler]('Teardown')).whenCo mplete(dart.fn(() => {
2982 this[_setUp] = null;
2983 this[_tearDown] = null;
2984 this[_testFunction] = null;
2985 }, VoidTodynamic$()));
2986 }
2987 [_complete](testResult, messageText, stack) {
2988 if (messageText === void 0) messageText = '';
2989 if (stack === void 0) stack = null;
2990 if (this.runningTime == null) {
2991 if (this.startTime != null) {
2992 this[_runningTime] = new core.DateTime.now().difference(this.startTime );
2993 } else {
2994 this[_runningTime] = const$1 || (const$1 = dart.const(new core.Duratio n({seconds: 0})));
2995 }
2996 }
2997 this[_setResult](testResult, messageText, stack);
2998 if (this[_testComplete] != null) {
2999 let t = this[_testComplete];
3000 this[_testComplete] = null;
3001 t.complete(this);
3002 }
3003 }
3004 [_setResult](testResult, messageText, stack) {
3005 this.message = messageText;
3006 this.stackTrace = src__utils.getTrace(stack, unittest.formatStacks, unitte st.filterStacks);
3007 if (this.stackTrace == null) this.stackTrace = stack;
3008 if (this.result == null) {
3009 this.result = testResult;
3010 src__test_environment.config.onTestResult(this);
3011 } else {
3012 this.result = testResult;
3013 src__test_environment.config.onTestResultChanged(this);
3014 }
3015 }
3016 pass() {
3017 this[_complete](unittest.PASS);
3018 }
3019 registerException(error, stackTrace) {
3020 if (stackTrace === void 0) stackTrace = null;
3021 let message = src__matcher__expect.TestFailure.is(error) ? error.message : dart.str`Caught ${error}`;
3022 if (this.result == null) {
3023 this.fail(message, stackTrace);
3024 } else {
3025 this.error(message, stackTrace);
3026 }
3027 }
3028 fail(messageText, stack) {
3029 if (stack === void 0) stack = null;
3030 if (this.result != null) {
3031 let newMessage = this.result == unittest.PASS ? dart.str`Test failed aft er initially passing: ${messageText}` : dart.str`Test failed more than once: ${m essageText}`;
3032 this[_complete](unittest.ERROR, newMessage, stack);
3033 } else {
3034 this[_complete](unittest.FAIL, messageText, stack);
3035 }
3036 }
3037 error(messageText, stack) {
3038 if (stack === void 0) stack = null;
3039 this[_complete](unittest.ERROR, messageText, stack);
3040 }
3041 markCallbackComplete() {
3042 this.callbackFunctionsOutstanding = dart.notNull(this.callbackFunctionsOut standing) - 1;
3043 if (this.callbackFunctionsOutstanding == 0 && !dart.test(this.isComplete)) this.pass();
3044 }
3045 toString() {
3046 return this.result != null ? dart.str`${this.description}: ${this.result}` : this.description;
3047 }
3048 };
3049 src__internal_test_case.InternalTestCase[dart.implements] = () => [src__test_c ase.TestCase];
3050 dart.setSignature(src__internal_test_case.InternalTestCase, {
3051 constructors: () => ({new: dart.definiteFunctionType(src__internal_test_case .InternalTestCase, [core.int, core.String, unittest.TestFunction])}),
3052 methods: () => ({
3053 [_errorHandler]: dart.definiteFunctionType(core.Function, [core.String]),
3054 run: dart.definiteFunctionType(async.Future, []),
3055 [_complete]: dart.definiteFunctionType(dart.void, [core.String], [core.Str ing, core.StackTrace]),
3056 [_setResult]: dart.definiteFunctionType(dart.void, [core.String, core.Stri ng, core.StackTrace]),
3057 pass: dart.definiteFunctionType(dart.void, []),
3058 registerException: dart.definiteFunctionType(dart.void, [dart.dynamic], [c ore.StackTrace]),
3059 fail: dart.definiteFunctionType(dart.void, [core.String], [core.StackTrace ]),
3060 error: dart.definiteFunctionType(dart.void, [core.String], [core.StackTrac e]),
3061 markCallbackComplete: dart.definiteFunctionType(dart.void, [])
3062 })
3063 });
3064 dart.defineLazy(src__test_environment, {
3065 get _defaultEnvironment() {
3066 return new src__test_environment.TestEnvironment();
3067 }
3068 });
3069 let const$2;
3070 dart.copyProperties(src__test_environment, {
3071 get environment() {
3072 let environment = async.Zone.current.get(const$2 || (const$2 = dart.const( core.Symbol.new('unittest.environment'))));
3073 return src__test_environment.TestEnvironment._check(environment == null ? src__test_environment._defaultEnvironment : environment);
3074 }
3075 });
3076 dart.copyProperties(src__test_environment, {
3077 get config() {
3078 return src__test_environment.environment.config;
3079 }
3080 });
3081 src__test_environment.TestEnvironment = class TestEnvironment extends core.Obj ect {
3082 new() {
3083 this.rootContext = new src__group_context.GroupContext.root();
3084 this.lastBreath = new core.DateTime.now().millisecondsSinceEpoch;
3085 this.testCases = ListOfInternalTestCase().new();
3086 this.config = null;
3087 this.currentContext = null;
3088 this.currentTestCaseIndex = -1;
3089 this.initialized = false;
3090 this.soloNestingLevel = 0;
3091 this.soloTestSeen = false;
3092 this.uncaughtErrorMessage = null;
3093 this.currentContext = this.rootContext;
3094 }
3095 };
3096 dart.setSignature(src__test_environment.TestEnvironment, {
3097 constructors: () => ({new: dart.definiteFunctionType(src__test_environment.T estEnvironment, [])})
3098 });
3099 const _testSetUp = Symbol('_testSetUp');
3100 const _testTearDown = Symbol('_testTearDown');
3101 const _name$ = Symbol('_name');
3102 src__group_context.GroupContext = class GroupContext extends core.Object {
3103 get isRoot() {
3104 return this.parent == null;
3105 }
3106 get testSetUp() {
3107 return this[_testSetUp];
3108 }
3109 set testSetUp(setUp) {
3110 if (this.parent == null || this.parent.testSetUp == null) {
3111 this[_testSetUp] = setUp;
3112 return;
3113 }
3114 this[_testSetUp] = dart.fn(() => {
3115 let f = dart.dsend(this.parent, 'testSetUp');
3116 if (async.Future.is(f)) {
3117 return f.then(dart.dynamic)(dart.fn(_ => dart.dcall(setUp), dynamicTod ynamic()));
3118 } else {
3119 return dart.dcall(setUp);
3120 }
3121 }, VoidTodynamic$());
3122 }
3123 get testTearDown() {
3124 return this[_testTearDown];
3125 }
3126 set testTearDown(tearDown) {
3127 if (this.parent == null || this.parent.testTearDown == null) {
3128 this[_testTearDown] = tearDown;
3129 return;
3130 }
3131 this[_testTearDown] = dart.fn(() => {
3132 let f = dart.dcall(tearDown);
3133 if (async.Future.is(f)) {
3134 return f.then(dart.dynamic)(dart.fn(_ => dart.dsend(this.parent, 'test TearDown'), dynamicTodynamic()));
3135 } else {
3136 return dart.dsend(this.parent, 'testTearDown');
3137 }
3138 }, VoidTodynamic$());
3139 }
3140 get fullName() {
3141 return dart.test(this.isRoot) || dart.test(this.parent.isRoot) ? this[_nam e$] : dart.str`${this.parent.fullName}${unittest.groupSep}${this[_name$]}`;
3142 }
3143 root() {
3144 this.parent = null;
3145 this[_name$] = '';
3146 this[_testSetUp] = null;
3147 this[_testTearDown] = null;
3148 }
3149 new(parent, name) {
3150 this.parent = parent;
3151 this[_name$] = name;
3152 this[_testSetUp] = null;
3153 this[_testTearDown] = null;
3154 this[_testSetUp] = this.parent.testSetUp;
3155 this[_testTearDown] = this.parent.testTearDown;
3156 }
3157 };
3158 dart.defineNamedConstructor(src__group_context.GroupContext, 'root');
3159 dart.setSignature(src__group_context.GroupContext, {
3160 constructors: () => ({
3161 root: dart.definiteFunctionType(src__group_context.GroupContext, []),
3162 new: dart.definiteFunctionType(src__group_context.GroupContext, [src__grou p_context.GroupContext, core.String])
3163 })
3164 });
3165 src__utils.indent = function(str) {
3166 return str[dartx.replaceAll](core.RegExp.new("^", {multiLine: true}), " ");
3167 };
3168 dart.fn(src__utils.indent, StringToString());
3169 src__utils.Pair$ = dart.generic((E, F) => {
3170 class Pair extends core.Object {
3171 new(first, last) {
3172 this.first = first;
3173 this.last = last;
3174 }
3175 toString() {
3176 return dart.str`(${this.first}, ${this.last})`;
3177 }
3178 ['=='](other) {
3179 if (!src__utils.Pair.is(other)) return false;
3180 return dart.equals(dart.dload(other, 'first'), this.first) && dart.equal s(dart.dload(other, 'last'), this.last);
3181 }
3182 get hashCode() {
3183 return (dart.notNull(dart.hashCode(this.first)) ^ dart.notNull(dart.hash Code(this.last))) >>> 0;
3184 }
3185 }
3186 dart.addTypeTests(Pair);
3187 dart.setSignature(Pair, {
3188 constructors: () => ({new: dart.definiteFunctionType(src__utils.Pair$(E, F ), [E, F])})
3189 });
3190 return Pair;
3191 });
3192 src__utils.Pair = Pair();
3193 src__utils.getTrace = function(stack, formatStacks, filterStacks) {
3194 let trace = null;
3195 if (stack == null || !dart.test(formatStacks)) return null;
3196 if (typeof stack == 'string') {
3197 trace = src__trace.Trace.parse(stack);
3198 } else if (core.StackTrace.is(stack)) {
3199 trace = src__trace.Trace.from(stack);
3200 } else {
3201 dart.throw(core.Exception.new(dart.str`Invalid stack type ${dart.runtimeTy pe(stack)} for ${stack}.`));
3202 }
3203 if (!dart.test(filterStacks)) return trace;
3204 return new src__trace.Trace(trace.frames[dartx.takeWhile](dart.fn(frame => f rame.package != 'unittest' || frame.member != 'TestCase._runTest', FrameTobool() ))).terse.foldFrames(dart.fn(frame => frame.package == 'unittest' || dart.test(f rame.isCore), FrameTobool()));
3205 };
3206 dart.fn(src__utils.getTrace, dynamicAndboolAndboolToTrace());
3207 src__expected_function._PLACEHOLDER = dart.const(new core.Object());
3208 src__expected_function._Func0 = dart.typedef('_Func0', () => dart.functionType (dart.dynamic, []));
3209 src__expected_function._Func1 = dart.typedef('_Func1', () => dart.functionType (dart.dynamic, [dart.dynamic]));
3210 src__expected_function._Func2 = dart.typedef('_Func2', () => dart.functionType (dart.dynamic, [dart.dynamic, dart.dynamic]));
3211 src__expected_function._Func3 = dart.typedef('_Func3', () => dart.functionType (dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic]));
3212 src__expected_function._Func4 = dart.typedef('_Func4', () => dart.functionType (dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]));
3213 src__expected_function._Func5 = dart.typedef('_Func5', () => dart.functionType (dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dyn amic]));
3214 src__expected_function._Func6 = dart.typedef('_Func6', () => dart.functionType (dart.dynamic, [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dyn amic, dart.dynamic]));
3215 src__expected_function._IsDoneCallback = dart.typedef('_IsDoneCallback', () => dart.functionType(core.bool, []));
3216 const _callback = Symbol('_callback');
3217 const _minExpectedCalls = Symbol('_minExpectedCalls');
3218 const _maxExpectedCalls = Symbol('_maxExpectedCalls');
3219 const _isDone = Symbol('_isDone');
3220 const _reason = Symbol('_reason');
3221 const _testCase = Symbol('_testCase');
3222 const _id$ = Symbol('_id');
3223 const _actualCalls = Symbol('_actualCalls');
3224 const _complete$ = Symbol('_complete');
3225 const _max6 = Symbol('_max6');
3226 const _max5 = Symbol('_max5');
3227 const _max4 = Symbol('_max4');
3228 const _max3 = Symbol('_max3');
3229 const _max2 = Symbol('_max2');
3230 const _max1 = Symbol('_max1');
3231 const _max0 = Symbol('_max0');
3232 const _run = Symbol('_run');
3233 const _afterRun = Symbol('_afterRun');
3234 src__expected_function.ExpectedFunction = class ExpectedFunction extends core. Object {
3235 new(callback, minExpected, maxExpected, opts) {
3236 let id = opts && 'id' in opts ? opts.id : null;
3237 let reason = opts && 'reason' in opts ? opts.reason : null;
3238 let isDone = opts && 'isDone' in opts ? opts.isDone : null;
3239 this[_callback] = callback;
3240 this[_minExpectedCalls] = minExpected;
3241 this[_maxExpectedCalls] = maxExpected == 0 && dart.notNull(minExpected) > 0 ? minExpected : maxExpected;
3242 this[_isDone] = isDone;
3243 this[_reason] = reason == null ? '' : dart.str`\n${reason}`;
3244 this[_testCase] = src__internal_test_case.InternalTestCase.as(unittest.cur rentTestCase);
3245 this[_id$] = src__expected_function.ExpectedFunction._makeCallbackId(id, c allback);
3246 this[_actualCalls] = 0;
3247 this[_complete$] = null;
3248 unittest.ensureInitialized();
3249 if (this[_testCase] == null) {
3250 dart.throw(new core.StateError("No valid test. Did you forget to run you r test " + "inside a call to test()?"));
3251 }
3252 if (isDone != null || dart.notNull(minExpected) > 0) {
3253 this[_testCase].callbackFunctionsOutstanding = dart.notNull(this[_testCa se].callbackFunctionsOutstanding) + 1;
3254 this[_complete$] = false;
3255 } else {
3256 this[_complete$] = true;
3257 }
3258 }
3259 static _makeCallbackId(id, callback) {
3260 if (id != null) return dart.str`${id} `;
3261 let toString = dart.toString(callback);
3262 let prefix = "Function '";
3263 let start = toString[dartx.indexOf](prefix);
3264 if (start == -1) return '';
3265 start = dart.notNull(start) + dart.notNull(prefix[dartx.length]);
3266 let end = toString[dartx.indexOf]("'", start);
3267 if (end == -1) return '';
3268 return dart.str`${toString[dartx.substring](start, end)} `;
3269 }
3270 get func() {
3271 if (src__expected_function._Func6.is(this[_callback])) return dart.bind(th is, _max6);
3272 if (src__expected_function._Func5.is(this[_callback])) return dart.bind(th is, _max5);
3273 if (src__expected_function._Func4.is(this[_callback])) return dart.bind(th is, _max4);
3274 if (src__expected_function._Func3.is(this[_callback])) return dart.bind(th is, _max3);
3275 if (src__expected_function._Func2.is(this[_callback])) return dart.bind(th is, _max2);
3276 if (src__expected_function._Func1.is(this[_callback])) return dart.bind(th is, _max1);
3277 if (src__expected_function._Func0.is(this[_callback])) return dart.bind(th is, _max0);
3278 dart.throw(new core.ArgumentError('The wrapped function has more than 6 re quired arguments'));
3279 }
3280 [_max0]() {
3281 return this[_max6]();
3282 }
3283 [_max1](a0) {
3284 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3285 return this[_max6](a0);
3286 }
3287 [_max2](a0, a1) {
3288 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3289 if (a1 === void 0) a1 = src__expected_function._PLACEHOLDER;
3290 return this[_max6](a0, a1);
3291 }
3292 [_max3](a0, a1, a2) {
3293 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3294 if (a1 === void 0) a1 = src__expected_function._PLACEHOLDER;
3295 if (a2 === void 0) a2 = src__expected_function._PLACEHOLDER;
3296 return this[_max6](a0, a1, a2);
3297 }
3298 [_max4](a0, a1, a2, a3) {
3299 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3300 if (a1 === void 0) a1 = src__expected_function._PLACEHOLDER;
3301 if (a2 === void 0) a2 = src__expected_function._PLACEHOLDER;
3302 if (a3 === void 0) a3 = src__expected_function._PLACEHOLDER;
3303 return this[_max6](a0, a1, a2, a3);
3304 }
3305 [_max5](a0, a1, a2, a3, a4) {
3306 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3307 if (a1 === void 0) a1 = src__expected_function._PLACEHOLDER;
3308 if (a2 === void 0) a2 = src__expected_function._PLACEHOLDER;
3309 if (a3 === void 0) a3 = src__expected_function._PLACEHOLDER;
3310 if (a4 === void 0) a4 = src__expected_function._PLACEHOLDER;
3311 return this[_max6](a0, a1, a2, a3, a4);
3312 }
3313 [_max6](a0, a1, a2, a3, a4, a5) {
3314 if (a0 === void 0) a0 = src__expected_function._PLACEHOLDER;
3315 if (a1 === void 0) a1 = src__expected_function._PLACEHOLDER;
3316 if (a2 === void 0) a2 = src__expected_function._PLACEHOLDER;
3317 if (a3 === void 0) a3 = src__expected_function._PLACEHOLDER;
3318 if (a4 === void 0) a4 = src__expected_function._PLACEHOLDER;
3319 if (a5 === void 0) a5 = src__expected_function._PLACEHOLDER;
3320 return this[_run]([a0, a1, a2, a3, a4, a5][dartx.where](dart.fn(a => !dart .equals(a, src__expected_function._PLACEHOLDER), dynamicTobool$())));
3321 }
3322 [_run](args) {
3323 try {
3324 this[_actualCalls] = dart.notNull(this[_actualCalls]) + 1;
3325 if (dart.test(this[_testCase].isComplete)) {
3326 if (this[_testCase].result == unittest.PASS) {
3327 this[_testCase].error(dart.str`Callback ${this[_id$]}called (${this[ _actualCalls]}) after test case ` + dart.str`${this[_testCase].description} had already been marked as ` + dart.str`${this[_testCase].result}.${this[_reason]}`) ;
3328 }
3329 return null;
3330 } else if (dart.notNull(this[_maxExpectedCalls]) >= 0 && dart.notNull(th is[_actualCalls]) > dart.notNull(this[_maxExpectedCalls])) {
3331 dart.throw(new src__matcher__expect.TestFailure(dart.str`Callback ${th is[_id$]}called more times than expected ` + dart.str`(${this[_maxExpectedCalls] }).${this[_reason]}`));
3332 }
3333 return core.Function.apply(this[_callback], args[dartx.toList]());
3334 } catch (error) {
3335 let stackTrace = dart.stackTrace(error);
3336 this[_testCase].registerException(error, stackTrace);
3337 return null;
3338 }
3339 finally {
3340 this[_afterRun]();
3341 }
3342 }
3343 [_afterRun]() {
3344 if (dart.test(this[_complete$])) return;
3345 if (dart.notNull(this[_minExpectedCalls]) > 0 && dart.notNull(this[_actual Calls]) < dart.notNull(this[_minExpectedCalls])) return;
3346 if (this[_isDone] != null && !dart.test(this[_isDone]())) return;
3347 this[_complete$] = true;
3348 this[_testCase].markCallbackComplete();
3349 }
3350 };
3351 dart.setSignature(src__expected_function.ExpectedFunction, {
3352 constructors: () => ({new: dart.definiteFunctionType(src__expected_function. ExpectedFunction, [core.Function, core.int, core.int], {id: core.String, reason: core.String, isDone: VoidTobool()})}),
3353 methods: () => ({
3354 [_max0]: dart.definiteFunctionType(dart.dynamic, []),
3355 [_max1]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic]),
3356 [_max2]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic, dart.d ynamic]),
3357 [_max3]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic, dart.d ynamic, dart.dynamic]),
3358 [_max4]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic, dart.d ynamic, dart.dynamic, dart.dynamic]),
3359 [_max5]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic, dart.d ynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
3360 [_max6]: dart.definiteFunctionType(dart.dynamic, [], [dart.dynamic, dart.d ynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]),
3361 [_run]: dart.definiteFunctionType(dart.dynamic, [core.Iterable]),
3362 [_afterRun]: dart.definiteFunctionType(dart.void, [])
3363 }),
3364 statics: () => ({_makeCallbackId: dart.definiteFunctionType(core.String, [co re.String, core.Function])}),
3365 names: ['_makeCallbackId']
3366 });
3367 html_config._showResultsInPage = function(passed, failed, errors, results, isL ayoutTest, uncaughtError) {
3368 if (dart.test(isLayoutTest) && passed == results[dartx.length] && uncaughtEr ror == null) {
3369 html.document[dartx.body][dartx.innerHtml] = "PASS";
3370 } else {
3371 let newBody = new core.StringBuffer();
3372 newBody.write("<table class='unittest-table'><tbody>");
3373 newBody.write(passed == results[dartx.length] && uncaughtError == null ? " <tr><td colspan='3' class='unittest-pass'>PASS</td></tr>" : "<tr><td colspan='3' class='unittest-fail'>FAIL</td></tr>");
3374 for (let test_ of results) {
3375 newBody.write(html_config._toHtml(test_));
3376 }
3377 if (uncaughtError != null) {
3378 newBody.write(dart.str`<tr>\n <td>--</td>\n <td class= "unittest-error">ERROR</td>\n <td>Uncaught error: ${uncaughtError}</td> \n </tr>`);
3379 }
3380 if (passed == results[dartx.length] && uncaughtError == null) {
3381 newBody.write(dart.str` <tr><td colspan='3' class='unittest-pas s'>\n All ${passed} tests passed\n </td></tr>`);
3382 } else {
3383 newBody.write(dart.str` <tr><td colspan='3'>Total\n <span class='unittest-pass'>${passed} passed</span>,\n <span class='u nittest-fail'>${failed} failed</span>\n <span class='unittest-error'> \n ${dart.notNull(errors) + (uncaughtError == null ? 0 : 1)} errors</ span>\n </td></tr>`);
3384 }
3385 newBody.write("</tbody></table>");
3386 html.document[dartx.body][dartx.innerHtml] = newBody.toString();
3387 html.window[dartx.onHashChange].listen(dart.fn(_ => {
3388 if (html.window[dartx.location][dartx.hash] != null && dart.test(html.wi ndow[dartx.location][dartx.hash][dartx.contains]('testFilter'))) {
3389 html.window[dartx.location][dartx.reload]();
3390 }
3391 }, EventTovoid()));
3392 }
3393 };
3394 dart.fn(html_config._showResultsInPage, intAndintAndint__Tovoid());
3395 html_config._toHtml = function(testCase) {
3396 if (!dart.test(testCase.isComplete)) {
3397 return dart.str` <tr>\n <td>${testCase.id}</td>\n <td class="unittest-error">NO STATUS</td>\n <td>Test did not complete< /td>\n </tr>`;
3398 }
3399 let html = dart.str` <tr>\n <td>${testCase.id}</td>\n <td class="unittest-${testCase.result}">\n ${testCase.result[dartx.toUpper Case]()}\n </td>\n <td>\n <p>Expectation: \n < a href="#testFilter=${testCase.description}">\n ${testCase.descript ion}\n </a>.\n </p>\n <pre>${convert.HTML_ESCAPE.co nvert(testCase.message)}</pre>\n </td>\n </tr>`;
3400 if (testCase.stackTrace != null) {
3401 html = dart.str`${html}<tr><td></td><td colspan="2"><pre>` + dart.notNull( convert.HTML_ESCAPE.convert(dart.toString(testCase.stackTrace))) + '</pre></td>< /tr>';
3402 }
3403 return html;
3404 };
3405 dart.fn(html_config._toHtml, TestCaseToString());
3406 const _isLayoutTest = Symbol('_isLayoutTest');
3407 const _onErrorSubscription = Symbol('_onErrorSubscription');
3408 const _onMessageSubscription = Symbol('_onMessageSubscription');
3409 const _installHandlers = Symbol('_installHandlers');
3410 const _uninstallHandlers = Symbol('_uninstallHandlers');
3411 html_config.HtmlConfiguration = class HtmlConfiguration extends src__simple_co nfiguration.SimpleConfiguration {
3412 new(isLayoutTest) {
3413 this[_isLayoutTest] = isLayoutTest;
3414 this[_onErrorSubscription] = null;
3415 this[_onMessageSubscription] = null;
3416 super.new();
3417 }
3418 [_installHandlers]() {
3419 if (this[_onErrorSubscription] == null) {
3420 this[_onErrorSubscription] = html.window[dartx.onError].listen(dart.fn(e => {
3421 if (!dart.equals(js.context.get('testExpectsGlobalError'), true)) {
3422 unittest.handleExternalError(e, '(DOM callback has errors)');
3423 }
3424 }, EventTovoid()));
3425 }
3426 if (this[_onMessageSubscription] == null) {
3427 this[_onMessageSubscription] = html.window[dartx.onMessage].listen(dart. fn(e => this.processMessage(e), MessageEventTovoid()));
3428 }
3429 }
3430 [_uninstallHandlers]() {
3431 if (this[_onErrorSubscription] != null) {
3432 this[_onErrorSubscription].cancel();
3433 this[_onErrorSubscription] = null;
3434 }
3435 if (this[_onMessageSubscription] != null) {
3436 this[_onMessageSubscription].cancel();
3437 this[_onMessageSubscription] = null;
3438 }
3439 }
3440 processMessage(e) {
3441 if (dart.equals('unittest-suite-external-error', dart.dload(e, 'data'))) {
3442 unittest.handleExternalError('<unknown>', '(external error detected)');
3443 }
3444 }
3445 onInit() {
3446 let meta = html.MetaElement._check(html.querySelector('meta[name="dart.uni ttest"]'));
3447 unittest.filterStacks = meta == null ? true : !dart.test(meta[dartx.conten t][dartx.contains]('full-stack-traces'));
3448 this[_installHandlers]();
3449 html.window[dartx.postMessage]('unittest-suite-wait-for-done', '*');
3450 }
3451 onStart() {
3452 let hash = html.window[dartx.location][dartx.hash];
3453 if (hash != null && dart.notNull(hash[dartx.length]) > 1) {
3454 let params = hash[dartx.substring](1)[dartx.split]('&');
3455 for (let param of params) {
3456 let parts = param[dartx.split]('=');
3457 if (parts[dartx.length] == 2 && parts[dartx.get](0) == 'testFilter') {
3458 unittest.filterTests(dart.str`^${parts[dartx.get](1)}`);
3459 }
3460 }
3461 }
3462 super.onStart();
3463 }
3464 onSummary(passed, failed, errors, results, uncaughtError) {
3465 html_config._showResultsInPage(passed, failed, errors, results, this[_isLa youtTest], uncaughtError);
3466 }
3467 onDone(success) {
3468 this[_uninstallHandlers]();
3469 html.window[dartx.postMessage]('unittest-suite-done', '*');
3470 }
3471 };
3472 dart.setSignature(html_config.HtmlConfiguration, {
3473 constructors: () => ({new: dart.definiteFunctionType(html_config.HtmlConfigu ration, [core.bool])}),
3474 methods: () => ({
3475 [_installHandlers]: dart.definiteFunctionType(dart.void, []),
3476 [_uninstallHandlers]: dart.definiteFunctionType(dart.void, []),
3477 processMessage: dart.definiteFunctionType(dart.void, [dart.dynamic])
3478 })
3479 });
3480 html_config.useHtmlConfiguration = function(isLayoutTest) {
3481 if (isLayoutTest === void 0) isLayoutTest = false;
3482 unittest.unittestConfiguration = dart.test(isLayoutTest) ? html_config._sing letonLayout : html_config._singletonNotLayout;
3483 };
3484 dart.fn(html_config.useHtmlConfiguration, __Tovoid$());
3485 dart.defineLazy(html_config, {
3486 get _singletonLayout() {
3487 return new html_config.HtmlConfiguration(true);
3488 }
3489 });
3490 dart.defineLazy(html_config, {
3491 get _singletonNotLayout() {
3492 return new html_config.HtmlConfiguration(false);
3493 }
3494 });
3495 html_individual_config.HtmlIndividualConfiguration = class HtmlIndividualConfi guration extends html_config.HtmlConfiguration {
3496 new(isLayoutTest) {
3497 super.new(isLayoutTest);
3498 }
3499 onStart() {
3500 let uri = core.Uri.parse(html.window[dartx.location][dartx.href]);
3501 let groups = 'group='[dartx.allMatches](uri.query)[dartx.toList]();
3502 if (dart.notNull(groups[dartx.length]) > 1) {
3503 dart.throw(new core.ArgumentError('More than one "group" parameter provi ded.'));
3504 }
3505 let testGroupName = uri.queryParameters[dartx.get]('group');
3506 if (testGroupName != null) {
3507 let startsWith = dart.str`${testGroupName}${unittest.groupSep}`;
3508 unittest.filterTests(dart.fn(tc => tc.description[dartx.startsWith](star tsWith), TestCaseTobool()));
3509 }
3510 super.onStart();
3511 }
3512 };
3513 dart.setSignature(html_individual_config.HtmlIndividualConfiguration, {
3514 constructors: () => ({new: dart.definiteFunctionType(html_individual_config. HtmlIndividualConfiguration, [core.bool])})
3515 });
3516 html_individual_config.useHtmlIndividualConfiguration = function(isLayoutTest) {
3517 if (isLayoutTest === void 0) isLayoutTest = false;
3518 unittest.unittestConfiguration = dart.test(isLayoutTest) ? html_individual_c onfig._singletonLayout : html_individual_config._singletonNotLayout;
3519 };
3520 dart.fn(html_individual_config.useHtmlIndividualConfiguration, __Tovoid$());
3521 dart.defineLazy(html_individual_config, {
3522 get _singletonLayout() {
3523 return new html_individual_config.HtmlIndividualConfiguration(true);
3524 }
3525 });
3526 dart.defineLazy(html_individual_config, {
3527 get _singletonNotLayout() {
3528 return new html_individual_config.HtmlIndividualConfiguration(false);
3529 }
3530 });
3531 const _isLayoutTest$ = Symbol('_isLayoutTest');
3532 const _onErrorSubscription$ = Symbol('_onErrorSubscription');
3533 const _onMessageSubscription$ = Symbol('_onMessageSubscription');
3534 const _installOnErrorHandler = Symbol('_installOnErrorHandler');
3535 const _installOnMessageHandler = Symbol('_installOnMessageHandler');
3536 const _installHandlers$ = Symbol('_installHandlers');
3537 const _uninstallHandlers$ = Symbol('_uninstallHandlers');
3538 const _htmlTestCSS = Symbol('_htmlTestCSS');
3539 const _showInteractiveResultsInPage = Symbol('_showInteractiveResultsInPage');
3540 const _buildRow = Symbol('_buildRow');
3541 html_enhanced_config.HtmlEnhancedConfiguration = class HtmlEnhancedConfigurati on extends src__simple_configuration.SimpleConfiguration {
3542 new(isLayoutTest) {
3543 this[_isLayoutTest$] = isLayoutTest;
3544 this[_onErrorSubscription$] = null;
3545 this[_onMessageSubscription$] = null;
3546 super.new();
3547 }
3548 [_installOnErrorHandler]() {
3549 if (this[_onErrorSubscription$] == null) {
3550 this[_onErrorSubscription$] = html.window[dartx.onError].listen(dart.fn( e => unittest.handleExternalError(e, '(DOM callback has errors)'), EventTovoid() ));
3551 }
3552 }
3553 [_installOnMessageHandler]() {
3554 if (this[_onMessageSubscription$] == null) {
3555 this[_onMessageSubscription$] = html.window[dartx.onMessage].listen(dart .fn(e => this.processMessage(e), MessageEventTovoid()));
3556 }
3557 }
3558 [_installHandlers$]() {
3559 this[_installOnErrorHandler]();
3560 this[_installOnMessageHandler]();
3561 }
3562 [_uninstallHandlers$]() {
3563 if (this[_onErrorSubscription$] != null) {
3564 dart.dsend(this[_onErrorSubscription$], 'cancel');
3565 this[_onErrorSubscription$] = null;
3566 }
3567 if (this[_onMessageSubscription$] != null) {
3568 dart.dsend(this[_onMessageSubscription$], 'cancel');
3569 this[_onMessageSubscription$] = null;
3570 }
3571 }
3572 processMessage(e) {
3573 if (dart.equals('unittest-suite-external-error', dart.dload(e, 'data'))) {
3574 unittest.handleExternalError('<unknown>', '(external error detected)');
3575 }
3576 }
3577 onInit() {
3578 this[_installHandlers$]();
3579 let _CSSID = '_unittestcss_';
3580 let cssElement = html.document[dartx.head][dartx.querySelector](dart.str`# ${_CSSID}`);
3581 if (cssElement == null) {
3582 cssElement = html.StyleElement.new();
3583 cssElement[dartx.id] = _CSSID;
3584 html.document[dartx.head][dartx.append](cssElement);
3585 }
3586 cssElement[dartx.text] = this[_htmlTestCSS];
3587 html.window[dartx.postMessage]('unittest-suite-wait-for-done', '*');
3588 }
3589 onStart() {
3590 this[_installOnErrorHandler]();
3591 }
3592 onSummary(passed, failed, errors, results, uncaughtError) {
3593 this[_showInteractiveResultsInPage](passed, failed, errors, results, this[ _isLayoutTest$], uncaughtError);
3594 }
3595 onDone(success) {
3596 this[_uninstallHandlers$]();
3597 html.window[dartx.postMessage]('unittest-suite-done', '*');
3598 }
3599 [_showInteractiveResultsInPage](passed, failed, errors, results, isLayoutTes t, uncaughtError) {
3600 if (dart.test(isLayoutTest) && passed == results[dartx.length]) {
3601 html.document[dartx.body][dartx.innerHtml] = "PASS";
3602 } else {
3603 let te = html.Element.html('<div class="unittest-table"></div>');
3604 te[dartx.children][dartx.add](html.Element.html(passed == results[dartx. length] ? "<div class='unittest-overall unittest-pass'>PASS</div>" : "<div class ='unittest-overall unittest-fail'>FAIL</div>"));
3605 if (passed == results[dartx.length] && uncaughtError == null) {
3606 te[dartx.children][dartx.add](html.Element.html(dart.str` <di v class='unittest-pass'>All ${passed} tests passed</div>`));
3607 } else {
3608 if (uncaughtError != null) {
3609 te[dartx.children][dartx.add](html.Element.html(dart.str` <div class='unittest-summary'>\n <span class='unittest-error'>Unca ught error: ${uncaughtError}</span>\n </div>`));
3610 }
3611 te[dartx.children][dartx.add](html.Element.html(dart.str` <di v class='unittest-summary'>\n <span class='unittest-pass'>Total ${pas sed} passed</span>,\n <span class='unittest-fail'>${failed} failed</s pan>,\n <span class='unittest-error'>\n ${dart.notNull(err ors) + (uncaughtError == null ? 0 : 1)} errors</span>\n </div>`));
3612 }
3613 te[dartx.children][dartx.add](html.Element.html(" <div><button id ='btnCollapseAll'>Collapse All</button></div>\n "));
3614 te[dartx.querySelector]('#btnCollapseAll')[dartx.onClick].listen(dart.fn (_ => {
3615 html.document[dartx.querySelectorAll](html.Element)('.unittest-row').f orEach(dart.fn(el => el[dartx.attributes][dartx.set]('class', el[dartx.attribute s][dartx.get]('class')[dartx.replaceAll]('unittest-row ', 'unittest-row-hidden ' )), ElementToString()));
3616 }, MouseEventTovoid()));
3617 let previousGroup = '';
3618 let groupPassFail = true;
3619 let groupedBy = LinkedHashMapOfString$ListOfTestCase().new();
3620 for (let t of results) {
3621 if (!dart.test(groupedBy.containsKey(t.currentGroup))) {
3622 groupedBy.set(t.currentGroup, ListOfTestCase().new());
3623 }
3624 groupedBy.get(t.currentGroup)[dartx.add](t);
3625 }
3626 let flattened = ListOfTestCase().new();
3627 groupedBy.values[dartx.forEach](dart.fn(tList => {
3628 tList[dartx.sort](dart.fn((tcA, tcB) => dart.notNull(tcA.id) - dart.no tNull(tcB.id), TestCaseAndTestCaseToint()));
3629 flattened[dartx.addAll](tList);
3630 }, ListOfTestCaseTovoid()));
3631 let nonAlphanumeric = core.RegExp.new('[^a-z0-9A-Z]');
3632 for (let test_ of flattened) {
3633 let safeGroup = test_.currentGroup[dartx.replaceAll](nonAlphanumeric, '_');
3634 if (test_.currentGroup != previousGroup) {
3635 previousGroup = test_.currentGroup;
3636 let testsInGroup = results[dartx.where](dart.fn(t => t.currentGroup == previousGroup, TestCaseTobool()))[dartx.toList]();
3637 let groupTotalTestCount = testsInGroup[dartx.length];
3638 let groupTestPassedCount = testsInGroup[dartx.where](dart.fn(t => t. result == 'pass', TestCaseTobool()))[dartx.length];
3639 groupPassFail = groupTotalTestCount == groupTestPassedCount;
3640 let passFailClass = "unittest-group-status unittest-group-" + dart.s tr`status-${groupPassFail ? 'pass' : 'fail'}`;
3641 te[dartx.children][dartx.add](html.Element.html(dart.str` <div>\n <div id='${safeGroup}'\n class='unittest -group ${safeGroup} test${safeGroup}'>\n <div ${dart.test(html_en hanced_config.HtmlEnhancedConfiguration._isIE) ? "style='display:inline-block' " : ""}\n class='unittest-row-status'>\n <di v class='${passFailClass}'></div>\n </div>\n <div ${dart.test(html_enhanced_config.HtmlEnhancedConfiguration._isIE) ? "style='disp lay:inline-block' " : ""}>\n ${test_.currentGroup}</div>\n &nbsp;\n <div ${dart.test(html_enhanced_config.HtmlE nhancedConfiguration._isIE) ? "style='display:inline-block' " : ""}>\n (${groupTestPassedCount}/${groupTotalTestCount})</div>\n </div>\n </div>`));
3642 let grp = safeGroup == '' ? null : te[dartx.querySelector](dart.str` #${safeGroup}`);
3643 if (grp != null) {
3644 grp[dartx.onClick].listen(dart.fn(_ => {
3645 let row = html.document[dartx.querySelector](dart.str`.unittest- row-${safeGroup}`);
3646 if (dart.test(row[dartx.attributes][dartx.get]('class')[dartx.co ntains]('unittest-row '))) {
3647 html.document[dartx.querySelectorAll](html.Element)(dart.str`. unittest-row-${safeGroup}`).forEach(dart.fn(e => e[dartx.attributes][dartx.set]( 'class', e[dartx.attributes][dartx.get]('class')[dartx.replaceAll]('unittest-row ', 'unittest-row-hidden ')), ElementToString()));
3648 } else {
3649 html.document[dartx.querySelectorAll](html.Element)(dart.str`. unittest-row-${safeGroup}`).forEach(dart.fn(e => e[dartx.attributes][dartx.set]( 'class', e[dartx.attributes][dartx.get]('class')[dartx.replaceAll]('unittest-row -hidden', 'unittest-row')), ElementToString()));
3650 }
3651 }, MouseEventTovoid()));
3652 }
3653 }
3654 this[_buildRow](test_, te, safeGroup, !groupPassFail);
3655 }
3656 html.document[dartx.body][dartx.children][dartx.clear]();
3657 html.document[dartx.body][dartx.children][dartx.add](te);
3658 }
3659 }
3660 [_buildRow](test_, te, groupID, isVisible) {
3661 let background = dart.str`unittest-row-${test_.id[dartx['%']](2) == 0 ? "e ven" : "odd"}`;
3662 let display = dart.str`${dart.test(isVisible) ? "unittest-row" : "unittest -row-hidden"}`;
3663 function addRowElement(id, status, description) {
3664 te[dartx.children][dartx.add](html.Element.html(dart.str` <div>\n <div class='${display} unittest-row-${groupID} ${background}'>\n <div ${dart.test(html_enhanced_config.HtmlEnhancedConfiguration._isIE ) ? "style='display:inline-block' " : ""}\n class='unittes t-row-id'>${id}</div>\n <div ${dart.test(html_enhanced_config.H tmlEnhancedConfiguration._isIE) ? "style='display:inline-block' " : ""}\n class="unittest-row-status unittest-${test_.result}">\n ${status}</div>\n <div ${dart.test(html_enhanced_ config.HtmlEnhancedConfiguration._isIE) ? "style='display:inline-block' " : ""}\ n class='unittest-row-description'>${description}</div>\n </div>\n </div>`));
3665 }
3666 dart.fn(addRowElement, dynamicAnddynamicAnddynamicTodynamic());
3667 if (!dart.test(test_.isComplete)) {
3668 addRowElement(dart.str`${test_.id}`, 'NO STATUS', 'Test did not complete .');
3669 return;
3670 }
3671 addRowElement(dart.str`${test_.id}`, dart.str`${test_.result[dartx.toUpper Case]()}`, dart.str`${test_.description}. ${convert.HTML_ESCAPE.convert(test_.me ssage)}`);
3672 if (test_.stackTrace != null) {
3673 addRowElement('', '', dart.str`<pre>${convert.HTML_ESCAPE.convert(dart.t oString(test_.stackTrace))}</pre>`);
3674 }
3675 }
3676 static get _isIE() {
3677 return html.window[dartx.navigator][dartx.userAgent][dartx.contains]('MSIE ');
3678 }
3679 get [_htmlTestCSS]() {
3680 return ' body{\n font-size: 14px;\n font-family: \'Open Sans\', \'L ucida Sans Unicode\', \'Lucida Grande\',' + dart.str` sans-serif;\n backgroun d: WhiteSmoke;\n }\n\n .unittest-group\n {\n background: rgb(75,75,75);\n width:98%;\n color: WhiteSmoke;\n font-weight: bold;\n padding: 6px; \n cursor: pointer;\n\n /* Provide some visual separation between groups f or IE */\n ${dart.test(html_enhanced_config.HtmlEnhancedConfiguration._isIE) ? "border-bottom:solid black 1px;" : ""}\n ${dart.test(html_enhanced_config.H tmlEnhancedConfiguration._isIE) ? "border-top:solid #777777 1px;" : ""}\n\n b ackground-image: -webkit-linear-gradient(bottom, rgb(50,50,50) 0%, ` + 'rgb(100, 100,100) 100%);\n background-image: -moz-linear-gradient(bottom, rgb(50,50,50 ) 0%, ' + 'rgb(100,100,100) 100%);\n background-image: -ms-linear-gradient(bo ttom, rgb(50,50,50) 0%, ' + 'rgb(100,100,100) 100%);\n background-image: line ar-gradient(bottom, rgb(50,50,50) 0%, ' + 'rgb(100,100,100) 100%);\n\n displa y: -webkit-box;\n display: -moz-box;\n display: -ms-box;\n display: box ;\n\n -webkit-box-orient: horizontal;\n -moz-box-orient: horizontal;\n -ms-box-orient: horizontal;\n box-orient: horizontal;\n\n -webkit-box-alig n: center;\n -moz-box-align: center;\n -ms-box-align: center;\n box-ali gn: center;\n }\n\n .unittest-group-status\n {\n width: 20px;\n height : 20px;\n border-radius: 20px;\n margin-left: 10px;\n }\n\n .unittest-gr oup-status-pass{\n background: Green;\n background: ' + '-webkit-radial-gr adient(center, ellipse cover, #AAFFAA 0%,Green 100%);\n background: ' + '-moz -radial-gradient(center, ellipse cover, #AAFFAA 0%,Green 100%);\n background: ' + '-ms-radial-gradient(center, ellipse cover, #AAFFAA 0%,Green 100%);\n ba ckground: ' + 'radial-gradient(center, ellipse cover, #AAFFAA 0%,Green 100%);\n }\n\n .unittest-group-status-fail{\n background: Red;\n background: ' + '-webkit-radial-gradient(center, ellipse cover, #FFAAAA 0%,Red 100%);\n backg round: ' + '-moz-radial-gradient(center, ellipse cover, #FFAAAA 0%,Red 100%);\n background: ' + '-ms-radial-gradient(center, ellipse cover, #AAFFAA 0%,Green 100%);\n background: radial-gradient(center, ellipse cover, #FFAAAA 0%,Red 10 0%);\n }\n\n .unittest-overall{\n font-size: 20px;\n }\n\n .unittest-summ ary{\n font-size: 18px;\n }\n\n .unittest-pass{\n color: Green;\n }\n\n .unittest-fail, .unittest-error\n {\n color: Red;\n }\n\n .unittest-row\ n {\n display: -webkit-box;\n display: -moz-box;\n display: -ms-box;\n display: box;\n -webkit-box-orient: horizontal;\n -moz-box-orient: hor izontal;\n -ms-box-orient: horizontal;\n box-orient: horizontal;\n widt h: 100%;\n }\n\n .unittest-row-hidden\n {\n display: none;\n }\n\n .unit test-row-odd\n {\n background: WhiteSmoke;\n }\n\n .unittest-row-even\n { \n background: #E5E5E5;\n }\n\n .unittest-row-id\n {\n width: 3em;\n } \n\n .unittest-row-status\n {\n width: 4em;\n }\n\n .unittest-row-descrip tion\n {\n }\n\n ';
3681 }
3682 };
3683 dart.setSignature(html_enhanced_config.HtmlEnhancedConfiguration, {
3684 constructors: () => ({new: dart.definiteFunctionType(html_enhanced_config.Ht mlEnhancedConfiguration, [core.bool])}),
3685 methods: () => ({
3686 [_installOnErrorHandler]: dart.definiteFunctionType(dart.void, []),
3687 [_installOnMessageHandler]: dart.definiteFunctionType(dart.void, []),
3688 [_installHandlers$]: dart.definiteFunctionType(dart.void, []),
3689 [_uninstallHandlers$]: dart.definiteFunctionType(dart.void, []),
3690 processMessage: dart.definiteFunctionType(dart.void, [dart.dynamic]),
3691 [_showInteractiveResultsInPage]: dart.definiteFunctionType(dart.void, [cor e.int, core.int, core.int, core.List$(src__test_case.TestCase), core.bool, core. String]),
3692 [_buildRow]: dart.definiteFunctionType(dart.void, [src__test_case.TestCase , html.Element, core.String, core.bool])
3693 })
3694 });
3695 html_enhanced_config.useHtmlEnhancedConfiguration = function(isLayoutTest) {
3696 if (isLayoutTest === void 0) isLayoutTest = false;
3697 unittest.unittestConfiguration = dart.test(isLayoutTest) ? html_enhanced_con fig._singletonLayout : html_enhanced_config._singletonNotLayout;
3698 };
3699 dart.fn(html_enhanced_config.useHtmlEnhancedConfiguration, __Tovoid$());
3700 dart.defineLazy(html_enhanced_config, {
3701 get _singletonLayout() {
3702 return new html_enhanced_config.HtmlEnhancedConfiguration(true);
3703 }
3704 });
3705 dart.defineLazy(html_enhanced_config, {
3706 get _singletonNotLayout() {
3707 return new html_enhanced_config.HtmlEnhancedConfiguration(false);
3708 }
3709 });
3710 // Exports:
3711 exports.unittest = unittest;
3712 exports.src__configuration = src__configuration;
3713 exports.src__simple_configuration = src__simple_configuration;
3714 exports.src__matcher = src__matcher;
3715 exports.src__matcher__core_matchers = src__matcher__core_matchers;
3716 exports.src__matcher__description = src__matcher__description;
3717 exports.src__matcher__interfaces = src__matcher__interfaces;
3718 exports.src__matcher__pretty_print = src__matcher__pretty_print;
3719 exports.src__matcher__util = src__matcher__util;
3720 exports.src__matcher__error_matchers = src__matcher__error_matchers;
3721 exports.src__matcher__expect = src__matcher__expect;
3722 exports.src__matcher__future_matchers = src__matcher__future_matchers;
3723 exports.src__matcher__iterable_matchers = src__matcher__iterable_matchers;
3724 exports.src__matcher__map_matchers = src__matcher__map_matchers;
3725 exports.src__matcher__numeric_matchers = src__matcher__numeric_matchers;
3726 exports.src__matcher__operator_matchers = src__matcher__operator_matchers;
3727 exports.src__matcher__prints_matcher = src__matcher__prints_matcher;
3728 exports.src__matcher__string_matchers = src__matcher__string_matchers;
3729 exports.src__matcher__throws_matcher = src__matcher__throws_matcher;
3730 exports.src__matcher__throws_matchers = src__matcher__throws_matchers;
3731 exports.src__internal_test_case = src__internal_test_case;
3732 exports.src__test_environment = src__test_environment;
3733 exports.src__group_context = src__group_context;
3734 exports.src__utils = src__utils;
3735 exports.src__test_case = src__test_case;
3736 exports.src__expected_function = src__expected_function;
3737 exports.html_config = html_config;
3738 exports.html_individual_config = html_individual_config;
3739 exports.html_enhanced_config = html_enhanced_config;
3740 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698