jasmine-core 3.4.0 → 3.5.0
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.
- checksums.yaml +4 -4
- data/lib/jasmine-core/jasmine-html.js +285 -88
- data/lib/jasmine-core/jasmine.css +1 -1
- data/lib/jasmine-core/jasmine.js +1747 -562
- data/lib/jasmine-core/version.rb +1 -1
- metadata +3 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 413ab14189e6f5e61e2b520bdcaf065d5c5fe1ba21106bc2749b6c5016fa5fdd
|
4
|
+
data.tar.gz: 04006ebef8702957e1b784275e0d6fda55c2c0315472ca8e8d4d7dbb488d6918
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6259f1b56267cf39e368b3d4f3933eeb0b4d34e256d41377c352c68e082e3db02a423333cac6f22cc99afb14319cfa91fbf64e1beeba3ec80c78dc1105fa76c3
|
7
|
+
data.tar.gz: 6adee23b1047e3c5152194336ebfafda90835fefffd84994d36c031edbdc8a5c7caedf212a12436ee26dbcecc001f987dbb1ac15fd90df68164b961e9cc0fe45
|
@@ -52,8 +52,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
52
52
|
}
|
53
53
|
};
|
54
54
|
|
55
|
-
ResultsStateBuilder.prototype.specStarted = function(result) {
|
56
|
-
};
|
55
|
+
ResultsStateBuilder.prototype.specStarted = function(result) {};
|
57
56
|
|
58
57
|
ResultsStateBuilder.prototype.specDone = function(result) {
|
59
58
|
this.currentParent.addChild(result, 'spec');
|
@@ -71,32 +70,42 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
71
70
|
}
|
72
71
|
};
|
73
72
|
|
74
|
-
|
75
|
-
|
76
73
|
function HtmlReporter(options) {
|
77
|
-
var config = function() {
|
74
|
+
var config = function() {
|
75
|
+
return (options.env && options.env.configuration()) || {};
|
76
|
+
},
|
78
77
|
getContainer = options.getContainer,
|
79
78
|
createElement = options.createElement,
|
80
79
|
createTextNode = options.createTextNode,
|
81
80
|
navigateWithNewParam = options.navigateWithNewParam || function() {},
|
82
|
-
addToExistingQueryString =
|
81
|
+
addToExistingQueryString =
|
82
|
+
options.addToExistingQueryString || defaultQueryString,
|
83
83
|
filterSpecs = options.filterSpecs,
|
84
|
-
timer = options.timer || j$.noopTimer,
|
85
84
|
htmlReporterMain,
|
86
85
|
symbols,
|
87
86
|
deprecationWarnings = [];
|
88
87
|
|
89
88
|
this.initialize = function() {
|
90
89
|
clearPrior();
|
91
|
-
htmlReporterMain = createDom(
|
92
|
-
|
93
|
-
|
94
|
-
|
90
|
+
htmlReporterMain = createDom(
|
91
|
+
'div',
|
92
|
+
{ className: 'jasmine_html-reporter' },
|
93
|
+
createDom(
|
94
|
+
'div',
|
95
|
+
{ className: 'jasmine-banner' },
|
96
|
+
createDom('a', {
|
97
|
+
className: 'jasmine-title',
|
98
|
+
href: 'http://jasmine.github.io/',
|
99
|
+
target: '_blank'
|
100
|
+
}),
|
101
|
+
createDom('span', { className: 'jasmine-version' }, j$.version)
|
95
102
|
),
|
96
|
-
createDom('ul', {className: 'jasmine-symbol-summary'}),
|
97
|
-
createDom('div', {className: 'jasmine-alert'}),
|
98
|
-
createDom(
|
99
|
-
|
103
|
+
createDom('ul', { className: 'jasmine-symbol-summary' }),
|
104
|
+
createDom('div', { className: 'jasmine-alert' }),
|
105
|
+
createDom(
|
106
|
+
'div',
|
107
|
+
{ className: 'jasmine-results' },
|
108
|
+
createDom('div', { className: 'jasmine-failures' })
|
100
109
|
)
|
101
110
|
);
|
102
111
|
getContainer().appendChild(htmlReporterMain);
|
@@ -105,10 +114,9 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
105
114
|
var totalSpecsDefined;
|
106
115
|
this.jasmineStarted = function(options) {
|
107
116
|
totalSpecsDefined = options.totalSpecsDefined || 0;
|
108
|
-
timer.start();
|
109
117
|
};
|
110
118
|
|
111
|
-
var summary = createDom('div', {className: 'jasmine-summary'});
|
119
|
+
var summary = createDom('div', { className: 'jasmine-summary' });
|
112
120
|
|
113
121
|
var stateBuilder = new ResultsStateBuilder();
|
114
122
|
|
@@ -133,20 +141,26 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
133
141
|
this.specDone = function(result) {
|
134
142
|
stateBuilder.specDone(result);
|
135
143
|
|
136
|
-
if(noExpectations(result)
|
137
|
-
|
144
|
+
if (noExpectations(result)) {
|
145
|
+
var noSpecMsg = "Spec '" + result.fullName + "' has no expectations.";
|
146
|
+
if (result.status === 'failed') {
|
147
|
+
console.error(noSpecMsg);
|
148
|
+
} else {
|
149
|
+
console.warn(noSpecMsg);
|
150
|
+
}
|
138
151
|
}
|
139
152
|
|
140
|
-
if (!symbols){
|
153
|
+
if (!symbols) {
|
141
154
|
symbols = find('.jasmine-symbol-summary');
|
142
155
|
}
|
143
156
|
|
144
|
-
symbols.appendChild(
|
157
|
+
symbols.appendChild(
|
158
|
+
createDom('li', {
|
145
159
|
className: this.displaySpecInCorrectFormat(result),
|
146
160
|
id: 'spec_' + result.id,
|
147
161
|
title: result.fullName
|
148
|
-
}
|
149
|
-
)
|
162
|
+
})
|
163
|
+
);
|
150
164
|
|
151
165
|
if (result.status === 'failed') {
|
152
166
|
failures.push(failureDom(result));
|
@@ -156,12 +170,16 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
156
170
|
};
|
157
171
|
|
158
172
|
this.displaySpecInCorrectFormat = function(result) {
|
159
|
-
return noExpectations(result)
|
173
|
+
return noExpectations(result) && result.status === 'passed'
|
174
|
+
? 'jasmine-empty'
|
175
|
+
: this.resultStatus(result.status);
|
160
176
|
};
|
161
177
|
|
162
178
|
this.resultStatus = function(status) {
|
163
|
-
if(status === 'excluded') {
|
164
|
-
return config().hideDisabled
|
179
|
+
if (status === 'excluded') {
|
180
|
+
return config().hideDisabled
|
181
|
+
? 'jasmine-excluded-no-display'
|
182
|
+
: 'jasmine-excluded';
|
165
183
|
}
|
166
184
|
return 'jasmine-' + status;
|
167
185
|
};
|
@@ -171,16 +189,33 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
171
189
|
var alert = find('.jasmine-alert');
|
172
190
|
var order = doneResult && doneResult.order;
|
173
191
|
var i;
|
174
|
-
alert.appendChild(
|
192
|
+
alert.appendChild(
|
193
|
+
createDom(
|
194
|
+
'span',
|
195
|
+
{ className: 'jasmine-duration' },
|
196
|
+
'finished in ' + doneResult.totalTime / 1000 + 's'
|
197
|
+
)
|
198
|
+
);
|
175
199
|
|
176
200
|
banner.appendChild(optionsMenu(config()));
|
177
201
|
|
178
202
|
if (stateBuilder.specsExecuted < totalSpecsDefined) {
|
179
|
-
var skippedMessage =
|
203
|
+
var skippedMessage =
|
204
|
+
'Ran ' +
|
205
|
+
stateBuilder.specsExecuted +
|
206
|
+
' of ' +
|
207
|
+
totalSpecsDefined +
|
208
|
+
' specs - run all';
|
180
209
|
var skippedLink = addToExistingQueryString('spec', '');
|
181
210
|
alert.appendChild(
|
182
|
-
createDom(
|
183
|
-
|
211
|
+
createDom(
|
212
|
+
'span',
|
213
|
+
{ className: 'jasmine-bar jasmine-skipped' },
|
214
|
+
createDom(
|
215
|
+
'a',
|
216
|
+
{ href: skippedLink, title: 'Run all specs' },
|
217
|
+
skippedMessage
|
218
|
+
)
|
184
219
|
)
|
185
220
|
);
|
186
221
|
}
|
@@ -190,34 +225,66 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
190
225
|
var failed = stateBuilder.failureCount + globalFailures.length > 0;
|
191
226
|
|
192
227
|
if (totalSpecsDefined > 0 || failed) {
|
193
|
-
statusBarMessage +=
|
194
|
-
|
228
|
+
statusBarMessage +=
|
229
|
+
pluralize('spec', stateBuilder.specsExecuted) +
|
230
|
+
', ' +
|
231
|
+
pluralize('failure', stateBuilder.failureCount);
|
232
|
+
if (stateBuilder.pendingSpecCount) {
|
233
|
+
statusBarMessage +=
|
234
|
+
', ' + pluralize('pending spec', stateBuilder.pendingSpecCount);
|
235
|
+
}
|
195
236
|
}
|
196
237
|
|
197
238
|
if (doneResult.overallStatus === 'passed') {
|
198
239
|
statusBarClassName += ' jasmine-passed ';
|
199
240
|
} else if (doneResult.overallStatus === 'incomplete') {
|
200
241
|
statusBarClassName += ' jasmine-incomplete ';
|
201
|
-
statusBarMessage =
|
242
|
+
statusBarMessage =
|
243
|
+
'Incomplete: ' +
|
244
|
+
doneResult.incompleteReason +
|
245
|
+
', ' +
|
246
|
+
statusBarMessage;
|
202
247
|
} else {
|
203
248
|
statusBarClassName += ' jasmine-failed ';
|
204
249
|
}
|
205
250
|
|
206
251
|
var seedBar;
|
207
252
|
if (order && order.random) {
|
208
|
-
seedBar = createDom(
|
253
|
+
seedBar = createDom(
|
254
|
+
'span',
|
255
|
+
{ className: 'jasmine-seed-bar' },
|
209
256
|
', randomized with seed ',
|
210
|
-
createDom(
|
257
|
+
createDom(
|
258
|
+
'a',
|
259
|
+
{
|
260
|
+
title: 'randomized with seed ' + order.seed,
|
261
|
+
href: seedHref(order.seed)
|
262
|
+
},
|
263
|
+
order.seed
|
264
|
+
)
|
211
265
|
);
|
212
266
|
}
|
213
267
|
|
214
|
-
alert.appendChild(
|
268
|
+
alert.appendChild(
|
269
|
+
createDom(
|
270
|
+
'span',
|
271
|
+
{ className: statusBarClassName },
|
272
|
+
statusBarMessage,
|
273
|
+
seedBar
|
274
|
+
)
|
275
|
+
);
|
215
276
|
|
216
277
|
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
217
278
|
var afterAllMessagePrefix = 'AfterAll ';
|
218
279
|
|
219
|
-
for(i = 0; i < globalFailures.length; i++) {
|
220
|
-
alert.appendChild(
|
280
|
+
for (i = 0; i < globalFailures.length; i++) {
|
281
|
+
alert.appendChild(
|
282
|
+
createDom(
|
283
|
+
'span',
|
284
|
+
{ className: errorBarClassName },
|
285
|
+
globalFailureMessage(globalFailures[i])
|
286
|
+
)
|
287
|
+
);
|
221
288
|
}
|
222
289
|
|
223
290
|
function globalFailureMessage(failure) {
|
@@ -225,7 +292,9 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
225
292
|
var prefix = 'Error during loading: ' + failure.message;
|
226
293
|
|
227
294
|
if (failure.filename) {
|
228
|
-
return
|
295
|
+
return (
|
296
|
+
prefix + ' in ' + failure.filename + ' line ' + failure.lineno
|
297
|
+
);
|
229
298
|
} else {
|
230
299
|
return prefix;
|
231
300
|
}
|
@@ -237,9 +306,15 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
237
306
|
addDeprecationWarnings(doneResult);
|
238
307
|
|
239
308
|
var warningBarClassName = 'jasmine-bar jasmine-warning';
|
240
|
-
for(i = 0; i < deprecationWarnings.length; i++) {
|
309
|
+
for (i = 0; i < deprecationWarnings.length; i++) {
|
241
310
|
var warning = deprecationWarnings[i];
|
242
|
-
alert.appendChild(
|
311
|
+
alert.appendChild(
|
312
|
+
createDom(
|
313
|
+
'span',
|
314
|
+
{ className: warningBarClassName },
|
315
|
+
'DEPRECATION: ' + warning
|
316
|
+
)
|
317
|
+
);
|
243
318
|
}
|
244
319
|
|
245
320
|
var results = find('.jasmine-results');
|
@@ -249,13 +324,29 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
249
324
|
|
250
325
|
if (failures.length) {
|
251
326
|
alert.appendChild(
|
252
|
-
createDom(
|
327
|
+
createDom(
|
328
|
+
'span',
|
329
|
+
{ className: 'jasmine-menu jasmine-bar jasmine-spec-list' },
|
253
330
|
createDom('span', {}, 'Spec List | '),
|
254
|
-
createDom(
|
331
|
+
createDom(
|
332
|
+
'a',
|
333
|
+
{ className: 'jasmine-failures-menu', href: '#' },
|
334
|
+
'Failures'
|
335
|
+
)
|
336
|
+
)
|
337
|
+
);
|
255
338
|
alert.appendChild(
|
256
|
-
createDom(
|
257
|
-
|
258
|
-
|
339
|
+
createDom(
|
340
|
+
'span',
|
341
|
+
{ className: 'jasmine-menu jasmine-bar jasmine-failure-list' },
|
342
|
+
createDom(
|
343
|
+
'a',
|
344
|
+
{ className: 'jasmine-spec-list-menu', href: '#' },
|
345
|
+
'Spec List'
|
346
|
+
),
|
347
|
+
createDom('span', {}, ' | Failures ')
|
348
|
+
)
|
349
|
+
);
|
259
350
|
|
260
351
|
find('.jasmine-failures-menu').onclick = function() {
|
261
352
|
setMenuModeTo('jasmine-failure-list');
|
@@ -276,17 +367,40 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
276
367
|
return this;
|
277
368
|
|
278
369
|
function failureDom(result) {
|
279
|
-
var failure =
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
)
|
370
|
+
var failure = createDom(
|
371
|
+
'div',
|
372
|
+
{ className: 'jasmine-spec-detail jasmine-failed' },
|
373
|
+
failureDescription(result, stateBuilder.currentParent),
|
374
|
+
createDom('div', { className: 'jasmine-messages' })
|
375
|
+
);
|
284
376
|
var messages = failure.childNodes[1];
|
285
377
|
|
286
378
|
for (var i = 0; i < result.failedExpectations.length; i++) {
|
287
379
|
var expectation = result.failedExpectations[i];
|
288
|
-
messages.appendChild(
|
289
|
-
|
380
|
+
messages.appendChild(
|
381
|
+
createDom(
|
382
|
+
'div',
|
383
|
+
{ className: 'jasmine-result-message' },
|
384
|
+
expectation.message
|
385
|
+
)
|
386
|
+
);
|
387
|
+
messages.appendChild(
|
388
|
+
createDom(
|
389
|
+
'div',
|
390
|
+
{ className: 'jasmine-stack-trace' },
|
391
|
+
expectation.stack
|
392
|
+
)
|
393
|
+
);
|
394
|
+
}
|
395
|
+
|
396
|
+
if (result.failedExpectations.length === 0) {
|
397
|
+
messages.appendChild(
|
398
|
+
createDom(
|
399
|
+
'div',
|
400
|
+
{ className: 'jasmine-result-message' },
|
401
|
+
'Spec has no expectations'
|
402
|
+
)
|
403
|
+
);
|
290
404
|
}
|
291
405
|
|
292
406
|
return failure;
|
@@ -300,9 +414,20 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
300
414
|
continue;
|
301
415
|
}
|
302
416
|
if (resultNode.type === 'suite') {
|
303
|
-
var suiteListNode = createDom(
|
304
|
-
|
305
|
-
|
417
|
+
var suiteListNode = createDom(
|
418
|
+
'ul',
|
419
|
+
{ className: 'jasmine-suite', id: 'suite-' + resultNode.result.id },
|
420
|
+
createDom(
|
421
|
+
'li',
|
422
|
+
{
|
423
|
+
className:
|
424
|
+
'jasmine-suite-detail jasmine-' + resultNode.result.status
|
425
|
+
},
|
426
|
+
createDom(
|
427
|
+
'a',
|
428
|
+
{ href: specHref(resultNode.result) },
|
429
|
+
resultNode.result.description
|
430
|
+
)
|
306
431
|
)
|
307
432
|
);
|
308
433
|
|
@@ -311,22 +436,34 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
311
436
|
}
|
312
437
|
if (resultNode.type === 'spec') {
|
313
438
|
if (domParent.getAttribute('class') !== 'jasmine-specs') {
|
314
|
-
specListNode = createDom('ul', {className: 'jasmine-specs'});
|
439
|
+
specListNode = createDom('ul', { className: 'jasmine-specs' });
|
315
440
|
domParent.appendChild(specListNode);
|
316
441
|
}
|
317
442
|
var specDescription = resultNode.result.description;
|
318
|
-
if(noExpectations(resultNode.result)) {
|
443
|
+
if (noExpectations(resultNode.result)) {
|
319
444
|
specDescription = 'SPEC HAS NO EXPECTATIONS ' + specDescription;
|
320
445
|
}
|
321
|
-
if(
|
322
|
-
|
446
|
+
if (
|
447
|
+
resultNode.result.status === 'pending' &&
|
448
|
+
resultNode.result.pendingReason !== ''
|
449
|
+
) {
|
450
|
+
specDescription =
|
451
|
+
specDescription +
|
452
|
+
' PENDING WITH MESSAGE: ' +
|
453
|
+
resultNode.result.pendingReason;
|
323
454
|
}
|
324
455
|
specListNode.appendChild(
|
325
|
-
createDom(
|
456
|
+
createDom(
|
457
|
+
'li',
|
458
|
+
{
|
326
459
|
className: 'jasmine-' + resultNode.result.status,
|
327
460
|
id: 'spec-' + resultNode.result.id
|
328
461
|
},
|
329
|
-
createDom(
|
462
|
+
createDom(
|
463
|
+
'a',
|
464
|
+
{ href: specHref(resultNode.result) },
|
465
|
+
specDescription
|
466
|
+
)
|
330
467
|
)
|
331
468
|
);
|
332
469
|
}
|
@@ -334,37 +471,69 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
334
471
|
}
|
335
472
|
|
336
473
|
function optionsMenu(config) {
|
337
|
-
var optionsMenuDom = createDom(
|
474
|
+
var optionsMenuDom = createDom(
|
475
|
+
'div',
|
476
|
+
{ className: 'jasmine-run-options' },
|
338
477
|
createDom('span', { className: 'jasmine-trigger' }, 'Options'),
|
339
|
-
createDom(
|
340
|
-
|
478
|
+
createDom(
|
479
|
+
'div',
|
480
|
+
{ className: 'jasmine-payload' },
|
481
|
+
createDom(
|
482
|
+
'div',
|
483
|
+
{ className: 'jasmine-stop-on-failure' },
|
341
484
|
createDom('input', {
|
342
485
|
className: 'jasmine-fail-fast',
|
343
486
|
id: 'jasmine-fail-fast',
|
344
487
|
type: 'checkbox'
|
345
488
|
}),
|
346
|
-
createDom(
|
347
|
-
|
489
|
+
createDom(
|
490
|
+
'label',
|
491
|
+
{ className: 'jasmine-label', for: 'jasmine-fail-fast' },
|
492
|
+
'stop execution on spec failure'
|
493
|
+
)
|
494
|
+
),
|
495
|
+
createDom(
|
496
|
+
'div',
|
497
|
+
{ className: 'jasmine-throw-failures' },
|
348
498
|
createDom('input', {
|
349
499
|
className: 'jasmine-throw',
|
350
500
|
id: 'jasmine-throw-failures',
|
351
501
|
type: 'checkbox'
|
352
502
|
}),
|
353
|
-
createDom(
|
354
|
-
|
503
|
+
createDom(
|
504
|
+
'label',
|
505
|
+
{ className: 'jasmine-label', for: 'jasmine-throw-failures' },
|
506
|
+
'stop spec on expectation failure'
|
507
|
+
)
|
508
|
+
),
|
509
|
+
createDom(
|
510
|
+
'div',
|
511
|
+
{ className: 'jasmine-random-order' },
|
355
512
|
createDom('input', {
|
356
513
|
className: 'jasmine-random',
|
357
514
|
id: 'jasmine-random-order',
|
358
515
|
type: 'checkbox'
|
359
516
|
}),
|
360
|
-
createDom(
|
361
|
-
|
517
|
+
createDom(
|
518
|
+
'label',
|
519
|
+
{ className: 'jasmine-label', for: 'jasmine-random-order' },
|
520
|
+
'run tests in random order'
|
521
|
+
)
|
522
|
+
),
|
523
|
+
createDom(
|
524
|
+
'div',
|
525
|
+
{ className: 'jasmine-hide-disabled' },
|
362
526
|
createDom('input', {
|
363
527
|
className: 'jasmine-disabled',
|
364
528
|
id: 'jasmine-hide-disabled',
|
365
529
|
type: 'checkbox'
|
366
530
|
}),
|
367
|
-
createDom(
|
531
|
+
createDom(
|
532
|
+
'label',
|
533
|
+
{ className: 'jasmine-label', for: 'jasmine-hide-disabled' },
|
534
|
+
'hide disabled tests'
|
535
|
+
)
|
536
|
+
)
|
368
537
|
)
|
369
538
|
);
|
370
539
|
|
@@ -374,13 +543,17 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
374
543
|
navigateWithNewParam('failFast', !config.failFast);
|
375
544
|
};
|
376
545
|
|
377
|
-
var throwCheckbox = optionsMenuDom.querySelector(
|
546
|
+
var throwCheckbox = optionsMenuDom.querySelector(
|
547
|
+
'#jasmine-throw-failures'
|
548
|
+
);
|
378
549
|
throwCheckbox.checked = config.oneFailurePerSpec;
|
379
550
|
throwCheckbox.onclick = function() {
|
380
551
|
navigateWithNewParam('throwFailures', !config.oneFailurePerSpec);
|
381
552
|
};
|
382
553
|
|
383
|
-
var randomCheckbox = optionsMenuDom.querySelector(
|
554
|
+
var randomCheckbox = optionsMenuDom.querySelector(
|
555
|
+
'#jasmine-random-order'
|
556
|
+
);
|
384
557
|
randomCheckbox.checked = config.random;
|
385
558
|
randomCheckbox.onclick = function() {
|
386
559
|
navigateWithNewParam('random', !config.random);
|
@@ -398,7 +571,10 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
398
571
|
|
399
572
|
optionsTrigger.onclick = function() {
|
400
573
|
if (isOpen.test(optionsPayload.className)) {
|
401
|
-
optionsPayload.className = optionsPayload.className.replace(
|
574
|
+
optionsPayload.className = optionsPayload.className.replace(
|
575
|
+
isOpen,
|
576
|
+
''
|
577
|
+
);
|
402
578
|
} else {
|
403
579
|
optionsPayload.className += ' jasmine-open';
|
404
580
|
}
|
@@ -408,14 +584,24 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
408
584
|
}
|
409
585
|
|
410
586
|
function failureDescription(result, suite) {
|
411
|
-
var wrapper = createDom(
|
412
|
-
|
587
|
+
var wrapper = createDom(
|
588
|
+
'div',
|
589
|
+
{ className: 'jasmine-description' },
|
590
|
+
createDom(
|
591
|
+
'a',
|
592
|
+
{ title: result.description, href: specHref(result) },
|
593
|
+
result.description
|
594
|
+
)
|
413
595
|
);
|
414
596
|
var suiteLink;
|
415
597
|
|
416
598
|
while (suite && suite.parent) {
|
417
599
|
wrapper.insertBefore(createTextNode(' > '), wrapper.firstChild);
|
418
|
-
suiteLink = createDom(
|
600
|
+
suiteLink = createDom(
|
601
|
+
'a',
|
602
|
+
{ href: suiteHref(suite) },
|
603
|
+
suite.result.description
|
604
|
+
);
|
419
605
|
wrapper.insertBefore(suiteLink, wrapper.firstChild);
|
420
606
|
|
421
607
|
suite = suite.parent;
|
@@ -437,7 +623,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
437
623
|
|
438
624
|
function addDeprecationWarnings(result) {
|
439
625
|
if (result && result.deprecationWarnings) {
|
440
|
-
for(var i = 0; i < result.deprecationWarnings.length; i++) {
|
626
|
+
for (var i = 0; i < result.deprecationWarnings.length; i++) {
|
441
627
|
var warning = result.deprecationWarnings[i].message;
|
442
628
|
if (!j$.util.arrayContains(warning)) {
|
443
629
|
deprecationWarnings.push(warning);
|
@@ -454,7 +640,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
454
640
|
// return the reporter
|
455
641
|
var oldReporter = find('');
|
456
642
|
|
457
|
-
if(oldReporter) {
|
643
|
+
if (oldReporter) {
|
458
644
|
getContainer().removeChild(oldReporter);
|
459
645
|
}
|
460
646
|
}
|
@@ -486,7 +672,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
486
672
|
}
|
487
673
|
|
488
674
|
function pluralize(singular, count) {
|
489
|
-
var word =
|
675
|
+
var word = count == 1 ? singular : singular + 's';
|
490
676
|
|
491
677
|
return '' + count + ' ' + word;
|
492
678
|
}
|
@@ -508,8 +694,13 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
508
694
|
}
|
509
695
|
|
510
696
|
function noExpectations(result) {
|
511
|
-
|
512
|
-
result.
|
697
|
+
var allExpectations =
|
698
|
+
result.failedExpectations.length + result.passedExpectations.length;
|
699
|
+
|
700
|
+
return (
|
701
|
+
allExpectations === 0 &&
|
702
|
+
(result.status === 'passed' || result.status === 'failed')
|
703
|
+
);
|
513
704
|
}
|
514
705
|
|
515
706
|
function hasActiveSpec(resultNode) {
|
@@ -532,7 +723,10 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
532
723
|
|
533
724
|
jasmineRequire.HtmlSpecFilter = function() {
|
534
725
|
function HtmlSpecFilter(options) {
|
535
|
-
var filterString =
|
726
|
+
var filterString =
|
727
|
+
options &&
|
728
|
+
options.filterString() &&
|
729
|
+
options.filterString().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
|
536
730
|
var filterPattern = new RegExp(filterString);
|
537
731
|
|
538
732
|
this.matches = function(specName) {
|
@@ -569,9 +763,11 @@ jasmineRequire.ResultsNode = function() {
|
|
569
763
|
|
570
764
|
jasmineRequire.QueryString = function() {
|
571
765
|
function QueryString(options) {
|
572
|
-
|
573
766
|
this.navigateWithNewParam = function(key, value) {
|
574
|
-
options.getWindowLocation().search = this.fullStringWithNewParam(
|
767
|
+
options.getWindowLocation().search = this.fullStringWithNewParam(
|
768
|
+
key,
|
769
|
+
value
|
770
|
+
);
|
575
771
|
};
|
576
772
|
|
577
773
|
this.fullStringWithNewParam = function(key, value) {
|
@@ -589,7 +785,9 @@ jasmineRequire.QueryString = function() {
|
|
589
785
|
function toQueryString(paramMap) {
|
590
786
|
var qStrPairs = [];
|
591
787
|
for (var prop in paramMap) {
|
592
|
-
qStrPairs.push(
|
788
|
+
qStrPairs.push(
|
789
|
+
encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop])
|
790
|
+
);
|
593
791
|
}
|
594
792
|
return '?' + qStrPairs.join('&');
|
595
793
|
}
|
@@ -613,7 +811,6 @@ jasmineRequire.QueryString = function() {
|
|
613
811
|
|
614
812
|
return paramMap;
|
615
813
|
}
|
616
|
-
|
617
814
|
}
|
618
815
|
|
619
816
|
return QueryString;
|