danieldkim-evergreen 0.4.0.5 → 0.4.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/evergreen/version.rb +1 -1
- data/lib/evergreen/version.rb~ +1 -1
- data/lib/jasmine/Gemfile +6 -0
- data/lib/jasmine/MIT.LICENSE +20 -0
- data/lib/jasmine/README.markdown +28 -0
- data/lib/jasmine/Rakefile +182 -0
- data/lib/jasmine/cruise_config.rb +21 -0
- data/lib/jasmine/example/SpecRunner.html +27 -0
- data/lib/jasmine/example/spec/PlayerSpec.js +58 -0
- data/lib/jasmine/example/spec/SpecHelper.js +9 -0
- data/lib/jasmine/example/src/Player.js +22 -0
- data/lib/jasmine/example/src/Song.js +7 -0
- data/lib/jasmine/images/fail-16.png +0 -0
- data/lib/jasmine/images/fail.png +0 -0
- data/lib/jasmine/images/go-16.png +0 -0
- data/lib/jasmine/images/go.png +0 -0
- data/lib/jasmine/images/pending-16.png +0 -0
- data/lib/jasmine/images/pending.png +0 -0
- data/lib/jasmine/images/question-bk.png +0 -0
- data/lib/jasmine/images/questionbk-16.png +0 -0
- data/lib/jasmine/images/spinner.gif +0 -0
- data/lib/jasmine/jsdoc-template/allclasses.tmpl +17 -0
- data/lib/jasmine/jsdoc-template/allfiles.tmpl +56 -0
- data/lib/jasmine/jsdoc-template/class.tmpl +646 -0
- data/lib/jasmine/jsdoc-template/index.tmpl +39 -0
- data/lib/jasmine/jsdoc-template/publish.js +184 -0
- data/lib/jasmine/jsdoc-template/static/default.css +162 -0
- data/lib/jasmine/jsdoc-template/static/header.html +2 -0
- data/lib/jasmine/jsdoc-template/static/index.html +19 -0
- data/lib/jasmine/jsdoc-template/symbol.tmpl +35 -0
- data/lib/jasmine/lib/jasmine-html.js +188 -0
- data/lib/jasmine/lib/jasmine.css +166 -0
- data/lib/jasmine/lib/jasmine.js +2421 -0
- data/lib/jasmine/lib/json2.js +478 -0
- data/lib/jasmine/spec/runner.html +80 -0
- data/lib/jasmine/spec/suites/BaseSpec.js +27 -0
- data/lib/jasmine/spec/suites/CustomMatchersSpec.js +97 -0
- data/lib/jasmine/spec/suites/EnvSpec.js +158 -0
- data/lib/jasmine/spec/suites/ExceptionsSpec.js +107 -0
- data/lib/jasmine/spec/suites/JsApiReporterSpec.js +103 -0
- data/lib/jasmine/spec/suites/MatchersSpec.js +795 -0
- data/lib/jasmine/spec/suites/MockClockSpec.js +38 -0
- data/lib/jasmine/spec/suites/MultiReporterSpec.js +45 -0
- data/lib/jasmine/spec/suites/NestedResultsSpec.js +54 -0
- data/lib/jasmine/spec/suites/PrettyPrintSpec.js +93 -0
- data/lib/jasmine/spec/suites/QueueSpec.js +23 -0
- data/lib/jasmine/spec/suites/ReporterSpec.js +56 -0
- data/lib/jasmine/spec/suites/RunnerSpec.js +267 -0
- data/lib/jasmine/spec/suites/SpecRunningSpec.js +1253 -0
- data/lib/jasmine/spec/suites/SpecSpec.js +124 -0
- data/lib/jasmine/spec/suites/SpySpec.js +201 -0
- data/lib/jasmine/spec/suites/SuiteSpec.js +120 -0
- data/lib/jasmine/spec/suites/TrivialReporterSpec.js +238 -0
- data/lib/jasmine/spec/suites/UtilSpec.js +40 -0
- data/lib/jasmine/spec/suites/WaitsForBlockSpec.js +87 -0
- data/lib/jasmine/src/Block.js +22 -0
- data/lib/jasmine/src/Env.js +264 -0
- data/lib/jasmine/src/JsApiReporter.js +102 -0
- data/lib/jasmine/src/Matchers.js +354 -0
- data/lib/jasmine/src/MultiReporter.js +35 -0
- data/lib/jasmine/src/NestedResults.js +80 -0
- data/lib/jasmine/src/PrettyPrinter.js +122 -0
- data/lib/jasmine/src/Queue.js +99 -0
- data/lib/jasmine/src/Reporter.js +31 -0
- data/lib/jasmine/src/Runner.js +77 -0
- data/lib/jasmine/src/Spec.js +242 -0
- data/lib/jasmine/src/Suite.js +82 -0
- data/lib/jasmine/src/WaitsBlock.js +13 -0
- data/lib/jasmine/src/WaitsForBlock.js +52 -0
- data/lib/jasmine/src/base.js +589 -0
- data/lib/jasmine/src/html/TrivialReporter.js +188 -0
- data/lib/jasmine/src/html/jasmine.css +166 -0
- data/lib/jasmine/src/mock-timeout.js +183 -0
- data/lib/jasmine/src/util.js +67 -0
- data/lib/jasmine/src/version.json +5 -0
- metadata +76 -3
@@ -0,0 +1,354 @@
|
|
1
|
+
/**
|
2
|
+
* @constructor
|
3
|
+
* @param {jasmine.Env} env
|
4
|
+
* @param actual
|
5
|
+
* @param {jasmine.Spec} spec
|
6
|
+
*/
|
7
|
+
jasmine.Matchers = function(env, actual, spec, opt_isNot) {
|
8
|
+
this.env = env;
|
9
|
+
this.actual = actual;
|
10
|
+
this.spec = spec;
|
11
|
+
this.isNot = opt_isNot || false;
|
12
|
+
this.reportWasCalled_ = false;
|
13
|
+
};
|
14
|
+
|
15
|
+
// todo: @deprecated as of Jasmine 0.11, remove soon [xw]
|
16
|
+
jasmine.Matchers.pp = function(str) {
|
17
|
+
throw new Error("jasmine.Matchers.pp() is no longer supported, please use jasmine.pp() instead!");
|
18
|
+
};
|
19
|
+
|
20
|
+
// todo: @deprecated Deprecated as of Jasmine 0.10. Rewrite your custom matchers to return true or false. [xw]
|
21
|
+
jasmine.Matchers.prototype.report = function(result, failing_message, details) {
|
22
|
+
throw new Error("As of jasmine 0.11, custom matchers must be implemented differently -- please see jasmine docs");
|
23
|
+
};
|
24
|
+
|
25
|
+
jasmine.Matchers.wrapInto_ = function(prototype, matchersClass) {
|
26
|
+
for (var methodName in prototype) {
|
27
|
+
if (methodName == 'report') continue;
|
28
|
+
var orig = prototype[methodName];
|
29
|
+
matchersClass.prototype[methodName] = jasmine.Matchers.matcherFn_(methodName, orig);
|
30
|
+
}
|
31
|
+
};
|
32
|
+
|
33
|
+
jasmine.Matchers.matcherFn_ = function(matcherName, matcherFunction) {
|
34
|
+
return function() {
|
35
|
+
var matcherArgs = jasmine.util.argsToArray(arguments);
|
36
|
+
var result = matcherFunction.apply(this, arguments);
|
37
|
+
|
38
|
+
if (this.isNot) {
|
39
|
+
result = !result;
|
40
|
+
}
|
41
|
+
|
42
|
+
if (this.reportWasCalled_) return result;
|
43
|
+
|
44
|
+
var message;
|
45
|
+
if (!result) {
|
46
|
+
if (this.message) {
|
47
|
+
message = this.message.apply(this, arguments);
|
48
|
+
if (jasmine.isArray_(message)) {
|
49
|
+
message = message[this.isNot ? 1 : 0];
|
50
|
+
}
|
51
|
+
} else {
|
52
|
+
var englishyPredicate = matcherName.replace(/[A-Z]/g, function(s) { return ' ' + s.toLowerCase(); });
|
53
|
+
message = "Expected " + jasmine.pp(this.actual) + (this.isNot ? " not " : " ") + englishyPredicate;
|
54
|
+
if (matcherArgs.length > 0) {
|
55
|
+
for (var i = 0; i < matcherArgs.length; i++) {
|
56
|
+
if (i > 0) message += ",";
|
57
|
+
message += " " + jasmine.pp(matcherArgs[i]);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
message += ".";
|
61
|
+
}
|
62
|
+
}
|
63
|
+
var expectationResult = new jasmine.ExpectationResult({
|
64
|
+
matcherName: matcherName,
|
65
|
+
passed: result,
|
66
|
+
expected: matcherArgs.length > 1 ? matcherArgs : matcherArgs[0],
|
67
|
+
actual: this.actual,
|
68
|
+
message: message
|
69
|
+
});
|
70
|
+
this.spec.addMatcherResult(expectationResult);
|
71
|
+
return jasmine.undefined;
|
72
|
+
};
|
73
|
+
};
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
/**
|
79
|
+
* toBe: compares the actual to the expected using ===
|
80
|
+
* @param expected
|
81
|
+
*/
|
82
|
+
jasmine.Matchers.prototype.toBe = function(expected) {
|
83
|
+
return this.actual === expected;
|
84
|
+
};
|
85
|
+
|
86
|
+
/**
|
87
|
+
* toNotBe: compares the actual to the expected using !==
|
88
|
+
* @param expected
|
89
|
+
* @deprecated as of 1.0. Use not.toBe() instead.
|
90
|
+
*/
|
91
|
+
jasmine.Matchers.prototype.toNotBe = function(expected) {
|
92
|
+
return this.actual !== expected;
|
93
|
+
};
|
94
|
+
|
95
|
+
/**
|
96
|
+
* toEqual: compares the actual to the expected using common sense equality. Handles Objects, Arrays, etc.
|
97
|
+
*
|
98
|
+
* @param expected
|
99
|
+
*/
|
100
|
+
jasmine.Matchers.prototype.toEqual = function(expected) {
|
101
|
+
return this.env.equals_(this.actual, expected);
|
102
|
+
};
|
103
|
+
|
104
|
+
/**
|
105
|
+
* toNotEqual: compares the actual to the expected using the ! of jasmine.Matchers.toEqual
|
106
|
+
* @param expected
|
107
|
+
* @deprecated as of 1.0. Use not.toNotEqual() instead.
|
108
|
+
*/
|
109
|
+
jasmine.Matchers.prototype.toNotEqual = function(expected) {
|
110
|
+
return !this.env.equals_(this.actual, expected);
|
111
|
+
};
|
112
|
+
|
113
|
+
/**
|
114
|
+
* Matcher that compares the actual to the expected using a regular expression. Constructs a RegExp, so takes
|
115
|
+
* a pattern or a String.
|
116
|
+
*
|
117
|
+
* @param expected
|
118
|
+
*/
|
119
|
+
jasmine.Matchers.prototype.toMatch = function(expected) {
|
120
|
+
return new RegExp(expected).test(this.actual);
|
121
|
+
};
|
122
|
+
|
123
|
+
/**
|
124
|
+
* Matcher that compares the actual to the expected using the boolean inverse of jasmine.Matchers.toMatch
|
125
|
+
* @param expected
|
126
|
+
* @deprecated as of 1.0. Use not.toMatch() instead.
|
127
|
+
*/
|
128
|
+
jasmine.Matchers.prototype.toNotMatch = function(expected) {
|
129
|
+
return !(new RegExp(expected).test(this.actual));
|
130
|
+
};
|
131
|
+
|
132
|
+
/**
|
133
|
+
* Matcher that compares the actual to jasmine.undefined.
|
134
|
+
*/
|
135
|
+
jasmine.Matchers.prototype.toBeDefined = function() {
|
136
|
+
return (this.actual !== jasmine.undefined);
|
137
|
+
};
|
138
|
+
|
139
|
+
/**
|
140
|
+
* Matcher that compares the actual to jasmine.undefined.
|
141
|
+
*/
|
142
|
+
jasmine.Matchers.prototype.toBeUndefined = function() {
|
143
|
+
return (this.actual === jasmine.undefined);
|
144
|
+
};
|
145
|
+
|
146
|
+
/**
|
147
|
+
* Matcher that compares the actual to null.
|
148
|
+
*/
|
149
|
+
jasmine.Matchers.prototype.toBeNull = function() {
|
150
|
+
return (this.actual === null);
|
151
|
+
};
|
152
|
+
|
153
|
+
/**
|
154
|
+
* Matcher that boolean not-nots the actual.
|
155
|
+
*/
|
156
|
+
jasmine.Matchers.prototype.toBeTruthy = function() {
|
157
|
+
return !!this.actual;
|
158
|
+
};
|
159
|
+
|
160
|
+
|
161
|
+
/**
|
162
|
+
* Matcher that boolean nots the actual.
|
163
|
+
*/
|
164
|
+
jasmine.Matchers.prototype.toBeFalsy = function() {
|
165
|
+
return !this.actual;
|
166
|
+
};
|
167
|
+
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Matcher that checks to see if the actual, a Jasmine spy, was called.
|
171
|
+
*/
|
172
|
+
jasmine.Matchers.prototype.toHaveBeenCalled = function() {
|
173
|
+
if (arguments.length > 0) {
|
174
|
+
throw new Error('toHaveBeenCalled does not take arguments, use toHaveBeenCalledWith');
|
175
|
+
}
|
176
|
+
|
177
|
+
if (!jasmine.isSpy(this.actual)) {
|
178
|
+
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
|
179
|
+
}
|
180
|
+
|
181
|
+
this.message = function() {
|
182
|
+
return [
|
183
|
+
"Expected spy " + this.actual.identity + " to have been called.",
|
184
|
+
"Expected spy " + this.actual.identity + " not to have been called."
|
185
|
+
];
|
186
|
+
};
|
187
|
+
|
188
|
+
return this.actual.wasCalled;
|
189
|
+
};
|
190
|
+
|
191
|
+
/** @deprecated Use expect(xxx).toHaveBeenCalled() instead */
|
192
|
+
jasmine.Matchers.prototype.wasCalled = jasmine.Matchers.prototype.toHaveBeenCalled;
|
193
|
+
|
194
|
+
/**
|
195
|
+
* Matcher that checks to see if the actual, a Jasmine spy, was not called.
|
196
|
+
*
|
197
|
+
* @deprecated Use expect(xxx).not.toHaveBeenCalled() instead
|
198
|
+
*/
|
199
|
+
jasmine.Matchers.prototype.wasNotCalled = function() {
|
200
|
+
if (arguments.length > 0) {
|
201
|
+
throw new Error('wasNotCalled does not take arguments');
|
202
|
+
}
|
203
|
+
|
204
|
+
if (!jasmine.isSpy(this.actual)) {
|
205
|
+
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
|
206
|
+
}
|
207
|
+
|
208
|
+
this.message = function() {
|
209
|
+
return [
|
210
|
+
"Expected spy " + this.actual.identity + " to not have been called.",
|
211
|
+
"Expected spy " + this.actual.identity + " to have been called."
|
212
|
+
];
|
213
|
+
};
|
214
|
+
|
215
|
+
return !this.actual.wasCalled;
|
216
|
+
};
|
217
|
+
|
218
|
+
/**
|
219
|
+
* Matcher that checks to see if the actual, a Jasmine spy, was called with a set of parameters.
|
220
|
+
*
|
221
|
+
* @example
|
222
|
+
*
|
223
|
+
*/
|
224
|
+
jasmine.Matchers.prototype.toHaveBeenCalledWith = function() {
|
225
|
+
var expectedArgs = jasmine.util.argsToArray(arguments);
|
226
|
+
if (!jasmine.isSpy(this.actual)) {
|
227
|
+
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
|
228
|
+
}
|
229
|
+
this.message = function() {
|
230
|
+
if (this.actual.callCount == 0) {
|
231
|
+
// todo: what should the failure message for .not.toHaveBeenCalledWith() be? is this right? test better. [xw]
|
232
|
+
return [
|
233
|
+
"Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was never called.",
|
234
|
+
"Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was."
|
235
|
+
];
|
236
|
+
} else {
|
237
|
+
return [
|
238
|
+
"Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall),
|
239
|
+
"Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but was called with " + jasmine.pp(this.actual.argsForCall)
|
240
|
+
];
|
241
|
+
}
|
242
|
+
};
|
243
|
+
|
244
|
+
return this.env.contains_(this.actual.argsForCall, expectedArgs);
|
245
|
+
};
|
246
|
+
|
247
|
+
/** @deprecated Use expect(xxx).toHaveBeenCalledWith() instead */
|
248
|
+
jasmine.Matchers.prototype.wasCalledWith = jasmine.Matchers.prototype.toHaveBeenCalledWith;
|
249
|
+
|
250
|
+
/** @deprecated Use expect(xxx).not.toHaveBeenCalledWith() instead */
|
251
|
+
jasmine.Matchers.prototype.wasNotCalledWith = function() {
|
252
|
+
var expectedArgs = jasmine.util.argsToArray(arguments);
|
253
|
+
if (!jasmine.isSpy(this.actual)) {
|
254
|
+
throw new Error('Expected a spy, but got ' + jasmine.pp(this.actual) + '.');
|
255
|
+
}
|
256
|
+
|
257
|
+
this.message = function() {
|
258
|
+
return [
|
259
|
+
"Expected spy not to have been called with " + jasmine.pp(expectedArgs) + " but it was",
|
260
|
+
"Expected spy to have been called with " + jasmine.pp(expectedArgs) + " but it was"
|
261
|
+
]
|
262
|
+
};
|
263
|
+
|
264
|
+
return !this.env.contains_(this.actual.argsForCall, expectedArgs);
|
265
|
+
};
|
266
|
+
|
267
|
+
/**
|
268
|
+
* Matcher that checks that the expected item is an element in the actual Array.
|
269
|
+
*
|
270
|
+
* @param {Object} expected
|
271
|
+
*/
|
272
|
+
jasmine.Matchers.prototype.toContain = function(expected) {
|
273
|
+
return this.env.contains_(this.actual, expected);
|
274
|
+
};
|
275
|
+
|
276
|
+
/**
|
277
|
+
* Matcher that checks that the expected item is NOT an element in the actual Array.
|
278
|
+
*
|
279
|
+
* @param {Object} expected
|
280
|
+
* @deprecated as of 1.0. Use not.toNotContain() instead.
|
281
|
+
*/
|
282
|
+
jasmine.Matchers.prototype.toNotContain = function(expected) {
|
283
|
+
return !this.env.contains_(this.actual, expected);
|
284
|
+
};
|
285
|
+
|
286
|
+
jasmine.Matchers.prototype.toBeLessThan = function(expected) {
|
287
|
+
return this.actual < expected;
|
288
|
+
};
|
289
|
+
|
290
|
+
jasmine.Matchers.prototype.toBeGreaterThan = function(expected) {
|
291
|
+
return this.actual > expected;
|
292
|
+
};
|
293
|
+
|
294
|
+
/**
|
295
|
+
* Matcher that checks that the expected exception was thrown by the actual.
|
296
|
+
*
|
297
|
+
* @param {String} expected
|
298
|
+
*/
|
299
|
+
jasmine.Matchers.prototype.toThrow = function(expected) {
|
300
|
+
var result = false;
|
301
|
+
var exception;
|
302
|
+
if (typeof this.actual != 'function') {
|
303
|
+
throw new Error('Actual is not a function');
|
304
|
+
}
|
305
|
+
try {
|
306
|
+
this.actual();
|
307
|
+
} catch (e) {
|
308
|
+
exception = e;
|
309
|
+
}
|
310
|
+
if (exception) {
|
311
|
+
result = (expected === jasmine.undefined || this.env.equals_(exception.message || exception, expected.message || expected));
|
312
|
+
}
|
313
|
+
|
314
|
+
var not = this.isNot ? "not " : "";
|
315
|
+
|
316
|
+
this.message = function() {
|
317
|
+
if (exception && (expected === jasmine.undefined || !this.env.equals_(exception.message || exception, expected.message || expected))) {
|
318
|
+
return ["Expected function " + not + "to throw", expected ? expected.message || expected : " an exception", ", but it threw", exception.message || exception].join(' ');
|
319
|
+
} else {
|
320
|
+
return "Expected function to throw an exception.";
|
321
|
+
}
|
322
|
+
};
|
323
|
+
|
324
|
+
return result;
|
325
|
+
};
|
326
|
+
|
327
|
+
jasmine.Matchers.Any = function(expectedClass) {
|
328
|
+
this.expectedClass = expectedClass;
|
329
|
+
};
|
330
|
+
|
331
|
+
jasmine.Matchers.Any.prototype.matches = function(other) {
|
332
|
+
if (this.expectedClass == String) {
|
333
|
+
return typeof other == 'string' || other instanceof String;
|
334
|
+
}
|
335
|
+
|
336
|
+
if (this.expectedClass == Number) {
|
337
|
+
return typeof other == 'number' || other instanceof Number;
|
338
|
+
}
|
339
|
+
|
340
|
+
if (this.expectedClass == Function) {
|
341
|
+
return typeof other == 'function' || other instanceof Function;
|
342
|
+
}
|
343
|
+
|
344
|
+
if (this.expectedClass == Object) {
|
345
|
+
return typeof other == 'object';
|
346
|
+
}
|
347
|
+
|
348
|
+
return other instanceof this.expectedClass;
|
349
|
+
};
|
350
|
+
|
351
|
+
jasmine.Matchers.Any.prototype.toString = function() {
|
352
|
+
return '<jasmine.any(' + this.expectedClass + ')>';
|
353
|
+
};
|
354
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/**
|
2
|
+
* @constructor
|
3
|
+
*/
|
4
|
+
jasmine.MultiReporter = function() {
|
5
|
+
this.subReporters_ = [];
|
6
|
+
};
|
7
|
+
jasmine.util.inherit(jasmine.MultiReporter, jasmine.Reporter);
|
8
|
+
|
9
|
+
jasmine.MultiReporter.prototype.addReporter = function(reporter) {
|
10
|
+
this.subReporters_.push(reporter);
|
11
|
+
};
|
12
|
+
|
13
|
+
(function() {
|
14
|
+
var functionNames = [
|
15
|
+
"reportRunnerStarting",
|
16
|
+
"reportRunnerResults",
|
17
|
+
"reportSuiteResults",
|
18
|
+
"reportSpecStarting",
|
19
|
+
"reportSpecResults",
|
20
|
+
"log"
|
21
|
+
];
|
22
|
+
for (var i = 0; i < functionNames.length; i++) {
|
23
|
+
var functionName = functionNames[i];
|
24
|
+
jasmine.MultiReporter.prototype[functionName] = (function(functionName) {
|
25
|
+
return function() {
|
26
|
+
for (var j = 0; j < this.subReporters_.length; j++) {
|
27
|
+
var subReporter = this.subReporters_[j];
|
28
|
+
if (subReporter[functionName]) {
|
29
|
+
subReporter[functionName].apply(subReporter, arguments);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
};
|
33
|
+
})(functionName);
|
34
|
+
}
|
35
|
+
})();
|
@@ -0,0 +1,80 @@
|
|
1
|
+
/**
|
2
|
+
* Holds results for a set of Jasmine spec. Allows for the results array to hold another jasmine.NestedResults
|
3
|
+
*
|
4
|
+
* @constructor
|
5
|
+
*/
|
6
|
+
jasmine.NestedResults = function() {
|
7
|
+
/**
|
8
|
+
* The total count of results
|
9
|
+
*/
|
10
|
+
this.totalCount = 0;
|
11
|
+
/**
|
12
|
+
* Number of passed results
|
13
|
+
*/
|
14
|
+
this.passedCount = 0;
|
15
|
+
/**
|
16
|
+
* Number of failed results
|
17
|
+
*/
|
18
|
+
this.failedCount = 0;
|
19
|
+
/**
|
20
|
+
* Was this suite/spec skipped?
|
21
|
+
*/
|
22
|
+
this.skipped = false;
|
23
|
+
/**
|
24
|
+
* @ignore
|
25
|
+
*/
|
26
|
+
this.items_ = [];
|
27
|
+
};
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Roll up the result counts.
|
31
|
+
*
|
32
|
+
* @param result
|
33
|
+
*/
|
34
|
+
jasmine.NestedResults.prototype.rollupCounts = function(result) {
|
35
|
+
this.totalCount += result.totalCount;
|
36
|
+
this.passedCount += result.passedCount;
|
37
|
+
this.failedCount += result.failedCount;
|
38
|
+
};
|
39
|
+
|
40
|
+
/**
|
41
|
+
* Adds a log message.
|
42
|
+
* @param values Array of message parts which will be concatenated later.
|
43
|
+
*/
|
44
|
+
jasmine.NestedResults.prototype.log = function(values) {
|
45
|
+
this.items_.push(new jasmine.MessageResult(values));
|
46
|
+
};
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Getter for the results: message & results.
|
50
|
+
*/
|
51
|
+
jasmine.NestedResults.prototype.getItems = function() {
|
52
|
+
return this.items_;
|
53
|
+
};
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Adds a result, tracking counts (total, passed, & failed)
|
57
|
+
* @param {jasmine.ExpectationResult|jasmine.NestedResults} result
|
58
|
+
*/
|
59
|
+
jasmine.NestedResults.prototype.addResult = function(result) {
|
60
|
+
if (result.type != 'log') {
|
61
|
+
if (result.items_) {
|
62
|
+
this.rollupCounts(result);
|
63
|
+
} else {
|
64
|
+
this.totalCount++;
|
65
|
+
if (result.passed()) {
|
66
|
+
this.passedCount++;
|
67
|
+
} else {
|
68
|
+
this.failedCount++;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
this.items_.push(result);
|
73
|
+
};
|
74
|
+
|
75
|
+
/**
|
76
|
+
* @returns {Boolean} True if <b>everything</b> below passed
|
77
|
+
*/
|
78
|
+
jasmine.NestedResults.prototype.passed = function() {
|
79
|
+
return this.passedCount === this.totalCount;
|
80
|
+
};
|