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

Side by Side Diff: test/codegen/expect/unittest.js

Issue 1956513004: Switch to actual unittest, stack trace, and path packages. Tag tests as failing that were ignored d… (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « test/browser/language_tests.js ('k') | test/codegen/expect/unittest.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 dart_library.library('unittest', null, /* Imports */[
2 'dart_sdk',
3 'matcher'
4 ], function(exports, dart_sdk, matcher) {
5 'use strict';
6 const core = dart_sdk.core;
7 const async = dart_sdk.async;
8 const js = dart_sdk.js;
9 const dart = dart_sdk.dart;
10 const dartx = dart_sdk.dartx;
11 const src__util = matcher.src__util;
12 const src__interfaces = matcher.src__interfaces;
13 const src__description = matcher.src__description;
14 const src__numeric_matchers = matcher.src__numeric_matchers;
15 const src__error_matchers = matcher.src__error_matchers;
16 const src__core_matchers = matcher.src__core_matchers;
17 const src__iterable_matchers = matcher.src__iterable_matchers;
18 const src__string_matchers = matcher.src__string_matchers;
19 const src__operator_matchers = matcher.src__operator_matchers;
20 const src__map_matchers = matcher.src__map_matchers;
21 const unittest = Object.create(null);
22 dart.defineLazy(unittest, {
23 get _wrapAsync() {
24 return dart.fn((f, id) => {
25 if (id === void 0) id = null;
26 return f;
27 }, core.Function, [core.Function], [dart.dynamic]);
28 },
29 set _wrapAsync(_) {}
30 });
31 const _matcher = Symbol('_matcher');
32 unittest.Throws = class Throws extends src__interfaces.Matcher {
33 Throws(matcher) {
34 if (matcher === void 0) matcher = null;
35 this[_matcher] = matcher;
36 super.Matcher();
37 }
38 matches(item, matchState) {
39 if (!dart.is(item, core.Function) && !dart.is(item, async.Future)) return false;
40 if (dart.is(item, async.Future)) {
41 let done = dart.dcall(unittest._wrapAsync, dart.fn(fn => dart.dcall(fn)) );
42 item.then(dart.dynamic)(dart.fn(value => {
43 dart.dcall(done, dart.fn(() => {
44 unittest.fail(`Expected future to fail, but succeeded with '${value} '.`);
45 }));
46 }), {onError: dart.fn((error, trace) => {
47 dart.dcall(done, dart.fn(() => {
48 if (this[_matcher] == null) return;
49 let reason = null;
50 if (trace != null) {
51 let stackTrace = dart.toString(trace);
52 stackTrace = ` ${stackTrace[dartx.replaceAll]("\n", "\n ")}`;
53 reason = `Actual exception trace:\n${stackTrace}`;
54 }
55 unittest.expect(error, this[_matcher], {reason: dart.as(reason, co re.String)});
56 }));
57 })});
58 return true;
59 }
60 try {
61 dart.dcall(item);
62 return false;
63 } catch (e) {
64 let s = dart.stackTrace(e);
65 if (this[_matcher] == null || dart.notNull(this[_matcher].matches(e, mat chState))) {
66 return true;
67 } else {
68 src__util.addStateInfo(matchState, dart.map({exception: e, stack: s})) ;
69 return false;
70 }
71 }
72
73 }
74 describe(description) {
75 if (this[_matcher] == null) {
76 return description.add("throws");
77 } else {
78 return description.add('throws ').addDescriptionOf(this[_matcher]);
79 }
80 }
81 describeMismatch(item, mismatchDescription, matchState, verbose) {
82 if (!dart.is(item, core.Function) && !dart.is(item, async.Future)) {
83 return mismatchDescription.add('is not a Function or Future');
84 } else if (this[_matcher] == null || matchState[dartx.get]('exception') == null) {
85 return mismatchDescription.add('did not throw');
86 } else {
87 mismatchDescription.add('threw ').addDescriptionOf(matchState[dartx.get] ('exception'));
88 if (dart.notNull(verbose)) {
89 mismatchDescription.add(' at ').add(dart.toString(matchState[dartx.get ]('stack')));
90 }
91 return mismatchDescription;
92 }
93 }
94 };
95 dart.setSignature(unittest.Throws, {
96 constructors: () => ({Throws: [unittest.Throws, [], [src__interfaces.Matcher ]]}),
97 methods: () => ({
98 matches: [core.bool, [dart.dynamic, core.Map]],
99 describe: [src__interfaces.Description, [src__interfaces.Description]]
100 })
101 });
102 unittest.throws = dart.const(new unittest.Throws());
103 unittest.throwsA = function(matcher) {
104 return new unittest.Throws(src__util.wrapMatcher(matcher));
105 };
106 dart.fn(unittest.throwsA, src__interfaces.Matcher, [dart.dynamic]);
107 unittest.group = function(name, body) {
108 return js.context.callMethod('suite', dart.list([name, body], core.Object));
109 };
110 dart.fn(unittest.group, dart.void, [core.String, dart.functionType(dart.void, [])]);
111 unittest.test = function(name, body, opts) {
112 let skip = opts && 'skip' in opts ? opts.skip : null;
113 if (skip != null) {
114 core.print(`SKIP ${name}: ${skip}`);
115 return;
116 }
117 let result = dart.as(js.context.callMethod('test', dart.list([name, dart.fn( done => {
118 function _finishTest(f) {
119 if (dart.is(f, async.Future)) {
120 f.then(dart.dynamic)(_finishTest);
121 } else {
122 done.apply([]);
123 }
124 }
125 dart.fn(_finishTest);
126 _finishTest(body());
127 }, dart.dynamic, [js.JsFunction])], core.Object)), js.JsObject);
128 result.set('async', 1);
129 };
130 dart.fn(unittest.test, dart.void, [core.String, dart.functionType(dart.dynamic , [])], {skip: core.String});
131 unittest.TestFailure = class TestFailure extends core.Object {
132 TestFailure(message) {
133 this.message = message;
134 }
135 toString() {
136 return this.message;
137 }
138 };
139 dart.setSignature(unittest.TestFailure, {
140 constructors: () => ({TestFailure: [unittest.TestFailure, [core.String]]})
141 });
142 unittest.TestCase = class TestCase extends core.Object {
143 get isComplete() {
144 return !dart.notNull(this.enabled) || this.result != null;
145 }
146 };
147 unittest.ErrorFormatter = dart.typedef('ErrorFormatter', () => dart.functionTy pe(core.String, [dart.dynamic, src__interfaces.Matcher, core.String, core.Map, c ore.bool]));
148 unittest.expect = function(actual, matcher, opts) {
149 let reason = opts && 'reason' in opts ? opts.reason : null;
150 let verbose = opts && 'verbose' in opts ? opts.verbose : false;
151 let formatter = opts && 'formatter' in opts ? opts.formatter : null;
152 matcher = src__util.wrapMatcher(matcher);
153 let matchState = dart.map();
154 try {
155 if (dart.notNull(dart.as(dart.dsend(matcher, 'matches', actual, matchState ), core.bool))) return;
156 } catch (e) {
157 let trace = dart.stackTrace(e);
158 if (reason == null) {
159 reason = `${typeof e == 'string' ? e : dart.toString(e)} at ${trace}`;
160 }
161 }
162
163 if (formatter == null) formatter = unittest._defaultFailFormatter;
164 unittest.fail(dart.dcall(formatter, actual, matcher, reason, matchState, ver bose));
165 };
166 dart.fn(unittest.expect, dart.void, [dart.dynamic, dart.dynamic], {reason: cor e.String, verbose: core.bool, formatter: unittest.ErrorFormatter});
167 unittest.fail = function(message) {
168 return dart.throw(new unittest.TestFailure(message));
169 };
170 dart.fn(unittest.fail, dart.void, [core.String]);
171 unittest._defaultFailFormatter = function(actual, matcher, reason, matchState, verbose) {
172 let description = new src__description.StringDescription();
173 description.add('Expected: ').addDescriptionOf(matcher).add('\n');
174 description.add(' Actual: ').addDescriptionOf(actual).add('\n');
175 let mismatchDescription = new src__description.StringDescription();
176 matcher.describeMismatch(actual, mismatchDescription, matchState, verbose);
177 if (dart.notNull(mismatchDescription.length) > 0) {
178 description.add(` Which: ${mismatchDescription}\n`);
179 }
180 if (reason != null) description.add(reason).add('\n');
181 return description.toString();
182 };
183 dart.fn(unittest._defaultFailFormatter, core.String, [dart.dynamic, src__inter faces.Matcher, core.String, core.Map, core.bool]);
184 unittest.useHtmlConfiguration = function(isLayoutTest) {
185 if (isLayoutTest === void 0) isLayoutTest = false;
186 };
187 dart.fn(unittest.useHtmlConfiguration, dart.void, [], [core.bool]);
188 dart.export(unittest, src__numeric_matchers, 'isPositive');
189 dart.export(unittest, src__error_matchers, 'isRangeError');
190 dart.export(unittest, src__error_matchers, 'isStateError');
191 unittest.equals = src__core_matchers.equals;
192 unittest.CustomMatcher = src__core_matchers.CustomMatcher;
193 unittest.inOpenClosedRange = src__numeric_matchers.inOpenClosedRange;
194 unittest.pairwiseCompare = src__iterable_matchers.pairwiseCompare;
195 unittest.equalsIgnoringCase = src__string_matchers.equalsIgnoringCase;
196 dart.export(unittest, src__error_matchers, 'isUnimplementedError');
197 unittest.hasLength = src__core_matchers.hasLength;
198 unittest.StringDescription = src__description.StringDescription;
199 unittest.allOf = src__operator_matchers.allOf;
200 dart.export(unittest, src__numeric_matchers, 'isNegative');
201 unittest.isInstanceOf$ = src__core_matchers.isInstanceOf$;
202 unittest.isInstanceOf = src__core_matchers.isInstanceOf;
203 dart.export(unittest, src__core_matchers, 'isNaN');
204 unittest.lessThan = src__numeric_matchers.lessThan;
205 dart.export(unittest, src__core_matchers, 'isNotEmpty');
206 unittest.greaterThanOrEqualTo = src__numeric_matchers.greaterThanOrEqualTo;
207 unittest.endsWith = src__string_matchers.endsWith;
208 dart.export(unittest, src__error_matchers, 'isConcurrentModificationError');
209 unittest.containsValue = src__map_matchers.containsValue;
210 dart.export(unittest, src__core_matchers, 'isFalse');
211 dart.export(unittest, src__core_matchers, 'isTrue');
212 unittest.Matcher = src__interfaces.Matcher;
213 unittest.lessThanOrEqualTo = src__numeric_matchers.lessThanOrEqualTo;
214 unittest.matches = src__string_matchers.matches;
215 dart.export(unittest, src__core_matchers, 'returnsNormally');
216 unittest.TypeMatcher = src__core_matchers.TypeMatcher;
217 unittest.inExclusiveRange = src__numeric_matchers.inExclusiveRange;
218 unittest.equalsIgnoringWhitespace = src__string_matchers.equalsIgnoringWhitesp ace;
219 unittest.isIn = src__core_matchers.isIn;
220 dart.export(unittest, src__core_matchers, 'isNotNaN');
221 dart.export(unittest, src__numeric_matchers, 'isNonZero');
222 unittest.startsWith = src__string_matchers.startsWith;
223 dart.export(unittest, src__error_matchers, 'isNullThrownError');
224 dart.export(unittest, src__core_matchers, 'isEmpty');
225 unittest.anyOf = src__operator_matchers.anyOf;
226 unittest.unorderedMatches = src__iterable_matchers.unorderedMatches;
227 dart.export(unittest, src__numeric_matchers, 'isZero');
228 dart.export(unittest, src__core_matchers, 'isList');
229 unittest.escape = src__util.escape;
230 dart.export(unittest, src__error_matchers, 'isCyclicInitializationError');
231 unittest.anyElement = src__iterable_matchers.anyElement;
232 dart.export(unittest, src__core_matchers, 'anything');
233 unittest.contains = src__core_matchers.contains;
234 dart.export(unittest, src__error_matchers, 'isUnsupportedError');
235 dart.export(unittest, src__numeric_matchers, 'isNonPositive');
236 unittest.isNot = src__operator_matchers.isNot;
237 unittest.same = src__core_matchers.same;
238 unittest.inClosedOpenRange = src__numeric_matchers.inClosedOpenRange;
239 unittest.predicate = src__core_matchers.predicate;
240 dart.export(unittest, src__core_matchers, 'isNotNull');
241 unittest.wrapMatcher = src__util.wrapMatcher;
242 dart.export(unittest, src__error_matchers, 'isNoSuchMethodError');
243 unittest.unorderedEquals = src__iterable_matchers.unorderedEquals;
244 unittest.everyElement = src__iterable_matchers.everyElement;
245 unittest.addStateInfo = src__util.addStateInfo;
246 dart.export(unittest, src__error_matchers, 'isArgumentError');
247 dart.export(unittest, src__error_matchers, 'isException');
248 unittest.inInclusiveRange = src__numeric_matchers.inInclusiveRange;
249 unittest.containsPair = src__map_matchers.containsPair;
250 dart.export(unittest, src__error_matchers, 'isFormatException');
251 unittest.orderedEquals = src__iterable_matchers.orderedEquals;
252 unittest.collapseWhitespace = src__string_matchers.collapseWhitespace;
253 unittest.greaterThan = src__numeric_matchers.greaterThan;
254 dart.export(unittest, src__numeric_matchers, 'isNonNegative');
255 dart.export(unittest, src__core_matchers, 'isNull');
256 dart.export(unittest, src__core_matchers, 'isMap');
257 unittest.stringContainsInOrder = src__string_matchers.stringContainsInOrder;
258 unittest.closeTo = src__numeric_matchers.closeTo;
259 unittest.Description = src__interfaces.Description;
260 // Exports:
261 exports.unittest = unittest;
262 });
OLDNEW
« no previous file with comments | « test/browser/language_tests.js ('k') | test/codegen/expect/unittest.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698