jasmine-core 2.3.2 → 2.4.1
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.
- package/CONTRIBUTING.md +4 -4
- package/README.md +14 -9
- package/RELEASE.md +1 -1
- package/bower.json +0 -1
- package/lib/jasmine-core/boot.js +9 -0
- package/lib/jasmine-core/jasmine-html.js +87 -60
- package/lib/jasmine-core/jasmine.css +51 -58
- package/lib/jasmine-core/jasmine.js +187 -31
- package/package.json +3 -3
- package/GOALS_2.0.md +0 -64
package/CONTRIBUTING.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Developing for Jasmine Core
|
|
2
2
|
|
|
3
|
-
We welcome your contributions! Thanks for helping make Jasmine a better project for everyone. Please review the backlog and discussion lists before starting work. What you're looking for may already have been done. If it hasn't, the community can help make your contribution better.
|
|
3
|
+
We welcome your contributions! Thanks for helping make Jasmine a better project for everyone. Please review the backlog and discussion lists before starting work. What you're looking for may already have been done. If it hasn't, the community can help make your contribution better. If you want to contribute but don't know what to work on, [issues tagged ready for work](https://github.com/jasmine/jasmine/labels/ready%20for%20work) should have enough detail to get started.
|
|
4
4
|
|
|
5
5
|
## Links
|
|
6
6
|
|
|
@@ -82,11 +82,11 @@ To install the Node dependencies, you will need Node.js, Npm, and [Grunt](http:/
|
|
|
82
82
|
|
|
83
83
|
$ npm install --local
|
|
84
84
|
|
|
85
|
-
...will install all of the node modules locally.
|
|
85
|
+
...will install all of the node modules locally. Now run
|
|
86
86
|
|
|
87
87
|
$ grunt
|
|
88
88
|
|
|
89
|
-
...you see that JSHint runs your system is ready.
|
|
89
|
+
...if you see that JSHint runs, your system is ready.
|
|
90
90
|
|
|
91
91
|
### How to write new Jasmine code
|
|
92
92
|
|
|
@@ -105,7 +105,7 @@ Follow these tips and your pull request, patch, or suggestion is much more likel
|
|
|
105
105
|
|
|
106
106
|
Jasmine uses the [Jasmine Ruby gem](http://github.com/jasmine/jasmine-gem) to test itself in browser.
|
|
107
107
|
|
|
108
|
-
$ rake jasmine
|
|
108
|
+
$ bundle exec rake jasmine
|
|
109
109
|
|
|
110
110
|
...and then visit `http://localhost:8888` to run specs.
|
|
111
111
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<a name="README">[<img src="https://rawgithub.com/jasmine/jasmine/master/images/jasmine-horizontal.svg" width="400px" />](http://jasmine.github.io)</a>
|
|
2
2
|
|
|
3
|
-
[](https://travis-ci.org/jasmine/jasmine)
|
|
4
|
+
[](https://codeclimate.com/github/pivotal/jasmine)
|
|
4
5
|
|
|
5
6
|
=======
|
|
6
7
|
|
|
@@ -28,22 +29,24 @@ For the Jasmine Ruby Gem:<br>
|
|
|
28
29
|
For the Jasmine Python Egg:<br>
|
|
29
30
|
[https://github.com/jasmine/jasmine-py](https://github.com/jasmine/jasmine-py)
|
|
30
31
|
|
|
31
|
-
To install Jasmine on your local box:
|
|
32
|
+
To install Jasmine standalone on your local box:
|
|
32
33
|
|
|
33
|
-
*
|
|
34
|
+
* Download the standalone distribution for your desired release from the [releases page](https://github.com/jasmine/jasmine/releases)
|
|
34
35
|
* Create a Jasmine directory in your project - `mkdir my-project/jasmine`
|
|
35
|
-
* Move
|
|
36
|
+
* Move the dist to your project directory - `mv jasmine/dist/jasmine-standalone-2.0.0.zip my-project/jasmine`
|
|
36
37
|
* Change directory - `cd my-project/jasmine`
|
|
37
38
|
* Unzip the dist - `unzip jasmine-standalone-2.0.0.zip`
|
|
38
39
|
|
|
39
40
|
Add the following to your HTML file:
|
|
40
41
|
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
```html
|
|
43
|
+
<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.0.0/jasmine_favicon.png">
|
|
44
|
+
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-2.0.0/jasmine.css">
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine.js"></script>
|
|
47
|
+
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine-html.js"></script>
|
|
48
|
+
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/boot.js"></script>
|
|
49
|
+
```
|
|
47
50
|
|
|
48
51
|
## Supported environments
|
|
49
52
|
|
|
@@ -62,6 +65,8 @@ Jasmine tests itself across many browsers (Safari, Chrome, Firefox, PhantomJS, a
|
|
|
62
65
|
* [Davis W. Frank](mailto:dwfrank@pivotal.io), Pivotal Labs
|
|
63
66
|
* [Rajan Agaskar](mailto:rajan@pivotal.io), Pivotal Labs
|
|
64
67
|
* [Gregg Van Hove](mailto:gvanhove@pivotal.io), Pivotal Labs
|
|
68
|
+
* [Greg Cobb](mailto:gcobb@pivotal.io), Pivotal Labs
|
|
69
|
+
* [Chris Amavisca](mailto:camavisca@pivotal.io), Pivotal Labs
|
|
65
70
|
|
|
66
71
|
### Maintainers Emeritus
|
|
67
72
|
|
package/RELEASE.md
CHANGED
|
@@ -15,7 +15,7 @@ Please attempt to keep commits to `master` small, but cohesive. If a feature is
|
|
|
15
15
|
|
|
16
16
|
We attempt to stick to [Semantic Versioning](http://semver.org/). Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible.
|
|
17
17
|
|
|
18
|
-
The current version lives in the file `/package.json`. This version will be the version number that is currently released. When releasing a new version, update `package.json`
|
|
18
|
+
The current version lives in the file `/package.json`. This version will be the version number that is currently released. When releasing a new version, update `package.json` with the new version and `grunt build:copyVersionToGem` to update the gem version number.
|
|
19
19
|
|
|
20
20
|
This version is used by both `jasmine.js` and the `jasmine-core` Ruby gem.
|
|
21
21
|
|
package/bower.json
CHANGED
package/lib/jasmine-core/boot.js
CHANGED
|
@@ -77,6 +77,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
77
77
|
var throwingExpectationFailures = queryString.getParam("throwFailures");
|
|
78
78
|
env.throwOnExpectationFailure(throwingExpectationFailures);
|
|
79
79
|
|
|
80
|
+
var random = queryString.getParam("random");
|
|
81
|
+
env.randomizeTests(random);
|
|
82
|
+
|
|
83
|
+
var seed = queryString.getParam("seed");
|
|
84
|
+
if (seed) {
|
|
85
|
+
env.seed(seed);
|
|
86
|
+
}
|
|
87
|
+
|
|
80
88
|
/**
|
|
81
89
|
* ## Reporters
|
|
82
90
|
* The `HtmlReporter` builds all of the HTML UI for the runner page. This reporter paints the dots, stars, and x's for specs, as well as all spec names and all failures (if any).
|
|
@@ -85,6 +93,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
85
93
|
env: env,
|
|
86
94
|
onRaiseExceptionsClick: function() { queryString.navigateWithNewParam("catch", !env.catchingExceptions()); },
|
|
87
95
|
onThrowExpectationsClick: function() { queryString.navigateWithNewParam("throwFailures", !env.throwingExpectationFailures()); },
|
|
96
|
+
onRandomClick: function() { queryString.navigateWithNewParam("random", !env.randomTests()); },
|
|
88
97
|
addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); },
|
|
89
98
|
getContainer: function() { return document.body; },
|
|
90
99
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
|
@@ -41,6 +41,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
41
41
|
createTextNode = options.createTextNode,
|
|
42
42
|
onRaiseExceptionsClick = options.onRaiseExceptionsClick || function() {},
|
|
43
43
|
onThrowExpectationsClick = options.onThrowExpectationsClick || function() {},
|
|
44
|
+
onRandomClick = options.onRandomClick || function() {},
|
|
44
45
|
addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
|
|
45
46
|
timer = options.timer || noopTimer,
|
|
46
47
|
results = [],
|
|
@@ -54,19 +55,17 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
54
55
|
this.initialize = function() {
|
|
55
56
|
clearPrior();
|
|
56
57
|
htmlReporterMain = createDom('div', {className: 'jasmine_html-reporter'},
|
|
57
|
-
createDom('div', {className: 'banner'},
|
|
58
|
-
createDom('a', {className: 'title', href: 'http://jasmine.github.io/', target: '_blank'}),
|
|
59
|
-
createDom('span', {className: 'version'}, j$.version)
|
|
58
|
+
createDom('div', {className: 'jasmine-banner'},
|
|
59
|
+
createDom('a', {className: 'jasmine-title', href: 'http://jasmine.github.io/', target: '_blank'}),
|
|
60
|
+
createDom('span', {className: 'jasmine-version'}, j$.version)
|
|
60
61
|
),
|
|
61
|
-
createDom('ul', {className: 'symbol-summary'}),
|
|
62
|
-
createDom('div', {className: 'alert'}),
|
|
63
|
-
createDom('div', {className: 'results'},
|
|
64
|
-
createDom('div', {className: 'failures'})
|
|
62
|
+
createDom('ul', {className: 'jasmine-symbol-summary'}),
|
|
63
|
+
createDom('div', {className: 'jasmine-alert'}),
|
|
64
|
+
createDom('div', {className: 'jasmine-results'},
|
|
65
|
+
createDom('div', {className: 'jasmine-failures'})
|
|
65
66
|
)
|
|
66
67
|
);
|
|
67
68
|
getContainer().appendChild(htmlReporterMain);
|
|
68
|
-
|
|
69
|
-
symbols = find('.symbol-summary');
|
|
70
69
|
};
|
|
71
70
|
|
|
72
71
|
var totalSpecsDefined;
|
|
@@ -75,7 +74,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
75
74
|
timer.start();
|
|
76
75
|
};
|
|
77
76
|
|
|
78
|
-
var summary = createDom('div', {className: 'summary'});
|
|
77
|
+
var summary = createDom('div', {className: 'jasmine-summary'});
|
|
79
78
|
|
|
80
79
|
var topResults = new j$.ResultsNode({}, '', null),
|
|
81
80
|
currentParent = topResults;
|
|
@@ -111,8 +110,12 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
111
110
|
specsExecuted++;
|
|
112
111
|
}
|
|
113
112
|
|
|
113
|
+
if (!symbols){
|
|
114
|
+
symbols = find('.jasmine-symbol-summary');
|
|
115
|
+
}
|
|
116
|
+
|
|
114
117
|
symbols.appendChild(createDom('li', {
|
|
115
|
-
className: noExpectations(result) ? 'empty' : result.status,
|
|
118
|
+
className: noExpectations(result) ? 'jasmine-empty' : 'jasmine-' + result.status,
|
|
116
119
|
id: 'spec_' + result.id,
|
|
117
120
|
title: result.fullName
|
|
118
121
|
}
|
|
@@ -122,18 +125,18 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
122
125
|
failureCount++;
|
|
123
126
|
|
|
124
127
|
var failure =
|
|
125
|
-
createDom('div', {className: 'spec-detail failed'},
|
|
126
|
-
createDom('div', {className: 'description'},
|
|
128
|
+
createDom('div', {className: 'jasmine-spec-detail jasmine-failed'},
|
|
129
|
+
createDom('div', {className: 'jasmine-description'},
|
|
127
130
|
createDom('a', {title: result.fullName, href: specHref(result)}, result.fullName)
|
|
128
131
|
),
|
|
129
|
-
createDom('div', {className: 'messages'})
|
|
132
|
+
createDom('div', {className: 'jasmine-messages'})
|
|
130
133
|
);
|
|
131
134
|
var messages = failure.childNodes[1];
|
|
132
135
|
|
|
133
136
|
for (var i = 0; i < result.failedExpectations.length; i++) {
|
|
134
137
|
var expectation = result.failedExpectations[i];
|
|
135
|
-
messages.appendChild(createDom('div', {className: 'result-message'}, expectation.message));
|
|
136
|
-
messages.appendChild(createDom('div', {className: 'stack-trace'}, expectation.stack));
|
|
138
|
+
messages.appendChild(createDom('div', {className: 'jasmine-result-message'}, expectation.message));
|
|
139
|
+
messages.appendChild(createDom('div', {className: 'jasmine-stack-trace'}, expectation.stack));
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
failures.push(failure);
|
|
@@ -144,86 +147,106 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
144
147
|
}
|
|
145
148
|
};
|
|
146
149
|
|
|
147
|
-
this.jasmineDone = function() {
|
|
148
|
-
var banner = find('.banner');
|
|
149
|
-
var alert = find('.alert');
|
|
150
|
-
|
|
150
|
+
this.jasmineDone = function(doneResult) {
|
|
151
|
+
var banner = find('.jasmine-banner');
|
|
152
|
+
var alert = find('.jasmine-alert');
|
|
153
|
+
var order = doneResult && doneResult.order;
|
|
154
|
+
alert.appendChild(createDom('span', {className: 'jasmine-duration'}, 'finished in ' + timer.elapsed() / 1000 + 's'));
|
|
151
155
|
|
|
152
156
|
banner.appendChild(
|
|
153
|
-
createDom('div', { className: 'run-options' },
|
|
154
|
-
createDom('span', { className: 'trigger' }, 'Options'),
|
|
155
|
-
createDom('div', { className: 'payload' },
|
|
156
|
-
createDom('div', { className: 'exceptions' },
|
|
157
|
+
createDom('div', { className: 'jasmine-run-options' },
|
|
158
|
+
createDom('span', { className: 'jasmine-trigger' }, 'Options'),
|
|
159
|
+
createDom('div', { className: 'jasmine-payload' },
|
|
160
|
+
createDom('div', { className: 'jasmine-exceptions' },
|
|
161
|
+
createDom('input', {
|
|
162
|
+
className: 'jasmine-raise',
|
|
163
|
+
id: 'jasmine-raise-exceptions',
|
|
164
|
+
type: 'checkbox'
|
|
165
|
+
}),
|
|
166
|
+
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-raise-exceptions' }, 'raise exceptions')),
|
|
167
|
+
createDom('div', { className: 'jasmine-throw-failures' },
|
|
157
168
|
createDom('input', {
|
|
158
|
-
className: '
|
|
159
|
-
id: '
|
|
169
|
+
className: 'jasmine-throw',
|
|
170
|
+
id: 'jasmine-throw-failures',
|
|
160
171
|
type: 'checkbox'
|
|
161
172
|
}),
|
|
162
|
-
createDom('label', { className: 'label', 'for': '
|
|
163
|
-
createDom('div', { className: '
|
|
173
|
+
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-throw-failures' }, 'stop spec on expectation failure')),
|
|
174
|
+
createDom('div', { className: 'jasmine-random-order' },
|
|
164
175
|
createDom('input', {
|
|
165
|
-
className: '
|
|
166
|
-
id: '
|
|
176
|
+
className: 'jasmine-random',
|
|
177
|
+
id: 'jasmine-random-order',
|
|
167
178
|
type: 'checkbox'
|
|
168
179
|
}),
|
|
169
|
-
createDom('label', { className: 'label', 'for': '
|
|
180
|
+
createDom('label', { className: 'jasmine-label', 'for': 'jasmine-random-order' }, 'run tests in random order'))
|
|
170
181
|
)
|
|
171
182
|
));
|
|
172
183
|
|
|
173
|
-
var raiseCheckbox = find('#raise-exceptions');
|
|
184
|
+
var raiseCheckbox = find('#jasmine-raise-exceptions');
|
|
174
185
|
|
|
175
186
|
raiseCheckbox.checked = !env.catchingExceptions();
|
|
176
187
|
raiseCheckbox.onclick = onRaiseExceptionsClick;
|
|
177
188
|
|
|
178
|
-
var throwCheckbox = find('#throw-failures');
|
|
189
|
+
var throwCheckbox = find('#jasmine-throw-failures');
|
|
179
190
|
throwCheckbox.checked = env.throwingExpectationFailures();
|
|
180
191
|
throwCheckbox.onclick = onThrowExpectationsClick;
|
|
181
192
|
|
|
182
|
-
var
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
193
|
+
var randomCheckbox = find('#jasmine-random-order');
|
|
194
|
+
randomCheckbox.checked = env.randomTests();
|
|
195
|
+
randomCheckbox.onclick = onRandomClick;
|
|
196
|
+
|
|
197
|
+
var optionsMenu = find('.jasmine-run-options'),
|
|
198
|
+
optionsTrigger = optionsMenu.querySelector('.jasmine-trigger'),
|
|
199
|
+
optionsPayload = optionsMenu.querySelector('.jasmine-payload'),
|
|
200
|
+
isOpen = /\bjasmine-open\b/;
|
|
186
201
|
|
|
187
202
|
optionsTrigger.onclick = function() {
|
|
188
203
|
if (isOpen.test(optionsPayload.className)) {
|
|
189
204
|
optionsPayload.className = optionsPayload.className.replace(isOpen, '');
|
|
190
205
|
} else {
|
|
191
|
-
optionsPayload.className += ' open';
|
|
206
|
+
optionsPayload.className += ' jasmine-open';
|
|
192
207
|
}
|
|
193
208
|
};
|
|
194
209
|
|
|
195
210
|
if (specsExecuted < totalSpecsDefined) {
|
|
196
211
|
var skippedMessage = 'Ran ' + specsExecuted + ' of ' + totalSpecsDefined + ' specs - run all';
|
|
197
212
|
alert.appendChild(
|
|
198
|
-
createDom('span', {className: 'bar skipped'},
|
|
213
|
+
createDom('span', {className: 'jasmine-bar jasmine-skipped'},
|
|
199
214
|
createDom('a', {href: '?', title: 'Run all specs'}, skippedMessage)
|
|
200
215
|
)
|
|
201
216
|
);
|
|
202
217
|
}
|
|
203
218
|
var statusBarMessage = '';
|
|
204
|
-
var statusBarClassName = 'bar ';
|
|
219
|
+
var statusBarClassName = 'jasmine-bar ';
|
|
205
220
|
|
|
206
221
|
if (totalSpecsDefined > 0) {
|
|
207
222
|
statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
|
|
208
223
|
if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
|
|
209
|
-
statusBarClassName += (failureCount > 0) ? 'failed' : 'passed';
|
|
224
|
+
statusBarClassName += (failureCount > 0) ? 'jasmine-failed' : 'jasmine-passed';
|
|
210
225
|
} else {
|
|
211
|
-
statusBarClassName += 'skipped';
|
|
226
|
+
statusBarClassName += 'jasmine-skipped';
|
|
212
227
|
statusBarMessage += 'No specs found';
|
|
213
228
|
}
|
|
214
229
|
|
|
215
|
-
|
|
230
|
+
var seedBar;
|
|
231
|
+
if (order && order.random) {
|
|
232
|
+
seedBar = createDom('span', {className: 'jasmine-seed-bar'},
|
|
233
|
+
', randomized with seed ',
|
|
234
|
+
createDom('a', {title: 'randomized with seed ' + order.seed, href: seedHref(order.seed)}, order.seed)
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
|
|
216
239
|
|
|
217
240
|
for(i = 0; i < failedSuites.length; i++) {
|
|
218
241
|
var failedSuite = failedSuites[i];
|
|
219
242
|
for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
|
|
220
243
|
var errorBarMessage = 'AfterAll ' + failedSuite.failedExpectations[j].message;
|
|
221
|
-
var errorBarClassName = 'bar errored';
|
|
244
|
+
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
|
222
245
|
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage));
|
|
223
246
|
}
|
|
224
247
|
}
|
|
225
248
|
|
|
226
|
-
var results = find('.results');
|
|
249
|
+
var results = find('.jasmine-results');
|
|
227
250
|
results.appendChild(summary);
|
|
228
251
|
|
|
229
252
|
summaryList(topResults, summary);
|
|
@@ -233,8 +256,8 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
233
256
|
for (var i = 0; i < resultsTree.children.length; i++) {
|
|
234
257
|
var resultNode = resultsTree.children[i];
|
|
235
258
|
if (resultNode.type == 'suite') {
|
|
236
|
-
var suiteListNode = createDom('ul', {className: 'suite', id: 'suite-' + resultNode.result.id},
|
|
237
|
-
createDom('li', {className: 'suite-detail'},
|
|
259
|
+
var suiteListNode = createDom('ul', {className: 'jasmine-suite', id: 'suite-' + resultNode.result.id},
|
|
260
|
+
createDom('li', {className: 'jasmine-suite-detail'},
|
|
238
261
|
createDom('a', {href: specHref(resultNode.result)}, resultNode.result.description)
|
|
239
262
|
)
|
|
240
263
|
);
|
|
@@ -243,8 +266,8 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
243
266
|
domParent.appendChild(suiteListNode);
|
|
244
267
|
}
|
|
245
268
|
if (resultNode.type == 'spec') {
|
|
246
|
-
if (domParent.getAttribute('class') != 'specs') {
|
|
247
|
-
specListNode = createDom('ul', {className: 'specs'});
|
|
269
|
+
if (domParent.getAttribute('class') != 'jasmine-specs') {
|
|
270
|
+
specListNode = createDom('ul', {className: 'jasmine-specs'});
|
|
248
271
|
domParent.appendChild(specListNode);
|
|
249
272
|
}
|
|
250
273
|
var specDescription = resultNode.result.description;
|
|
@@ -256,7 +279,7 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
256
279
|
}
|
|
257
280
|
specListNode.appendChild(
|
|
258
281
|
createDom('li', {
|
|
259
|
-
className: resultNode.result.status,
|
|
282
|
+
className: 'jasmine-' + resultNode.result.status,
|
|
260
283
|
id: 'spec-' + resultNode.result.id
|
|
261
284
|
},
|
|
262
285
|
createDom('a', {href: specHref(resultNode.result)}, specDescription)
|
|
@@ -268,24 +291,24 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
268
291
|
|
|
269
292
|
if (failures.length) {
|
|
270
293
|
alert.appendChild(
|
|
271
|
-
createDom('span', {className: 'menu bar spec-list'},
|
|
294
|
+
createDom('span', {className: 'jasmine-menu jasmine-bar jasmine-spec-list'},
|
|
272
295
|
createDom('span', {}, 'Spec List | '),
|
|
273
|
-
createDom('a', {className: 'failures-menu', href: '#'}, 'Failures')));
|
|
296
|
+
createDom('a', {className: 'jasmine-failures-menu', href: '#'}, 'Failures')));
|
|
274
297
|
alert.appendChild(
|
|
275
|
-
createDom('span', {className: 'menu bar failure-list'},
|
|
276
|
-
createDom('a', {className: 'spec-list-menu', href: '#'}, 'Spec List'),
|
|
298
|
+
createDom('span', {className: 'jasmine-menu jasmine-bar jasmine-failure-list'},
|
|
299
|
+
createDom('a', {className: 'jasmine-spec-list-menu', href: '#'}, 'Spec List'),
|
|
277
300
|
createDom('span', {}, ' | Failures ')));
|
|
278
301
|
|
|
279
|
-
find('.failures-menu').onclick = function() {
|
|
280
|
-
setMenuModeTo('failure-list');
|
|
302
|
+
find('.jasmine-failures-menu').onclick = function() {
|
|
303
|
+
setMenuModeTo('jasmine-failure-list');
|
|
281
304
|
};
|
|
282
|
-
find('.spec-list-menu').onclick = function() {
|
|
283
|
-
setMenuModeTo('spec-list');
|
|
305
|
+
find('.jasmine-spec-list-menu').onclick = function() {
|
|
306
|
+
setMenuModeTo('jasmine-spec-list');
|
|
284
307
|
};
|
|
285
308
|
|
|
286
|
-
setMenuModeTo('failure-list');
|
|
309
|
+
setMenuModeTo('jasmine-failure-list');
|
|
287
310
|
|
|
288
|
-
var failureNode = find('.failures');
|
|
311
|
+
var failureNode = find('.jasmine-failures');
|
|
289
312
|
for (var i = 0; i < failures.length; i++) {
|
|
290
313
|
failureNode.appendChild(failures[i]);
|
|
291
314
|
}
|
|
@@ -343,6 +366,10 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|
|
343
366
|
return addToExistingQueryString('spec', result.fullName);
|
|
344
367
|
}
|
|
345
368
|
|
|
369
|
+
function seedHref(seed) {
|
|
370
|
+
return addToExistingQueryString('seed', seed);
|
|
371
|
+
}
|
|
372
|
+
|
|
346
373
|
function defaultQueryString(key, value) {
|
|
347
374
|
return '?' + key + '=' + value;
|
|
348
375
|
}
|
|
@@ -4,62 +4,55 @@ body { overflow-y: scroll; }
|
|
|
4
4
|
.jasmine_html-reporter a { text-decoration: none; }
|
|
5
5
|
.jasmine_html-reporter a:hover { text-decoration: underline; }
|
|
6
6
|
.jasmine_html-reporter p, .jasmine_html-reporter h1, .jasmine_html-reporter h2, .jasmine_html-reporter h3, .jasmine_html-reporter h4, .jasmine_html-reporter h5, .jasmine_html-reporter h6 { margin: 0; line-height: 14px; }
|
|
7
|
-
.jasmine_html-reporter .banner, .jasmine_html-reporter .symbol-summary, .jasmine_html-reporter .summary, .jasmine_html-reporter .result-message, .jasmine_html-reporter .spec .description, .jasmine_html-reporter .spec-detail .description, .jasmine_html-reporter .alert .bar, .jasmine_html-reporter .stack-trace { padding-left: 9px; padding-right: 9px; }
|
|
8
|
-
.jasmine_html-reporter .banner { position: relative; }
|
|
9
|
-
.jasmine_html-reporter .banner .title { background: url('data:image/png;base64,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') no-repeat; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iNjgxLjk2MjUyIgogICBoZWlnaHQ9IjE4Ny41IgogICBpZD0ic3ZnMiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxjbGlwUGF0aAogICAgICAgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoCiAgICAgICAgIGQ9Ik0gMCwxNTAwIDAsMCBsIDU0NTUuNzQsMCAwLDE1MDAgTCAwLDE1MDAgeiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgyMCIgLz48L2NsaXBQYXRoPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsMTg3LjUpIgogICAgIGlkPSJnMTAiPjxnCiAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMSwwLjEpIgogICAgICAgaWQ9ImcxMiI+PGcKICAgICAgICAgaWQ9ImcxNCI+PGcKICAgICAgICAgICBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgxOCkiCiAgICAgICAgICAgaWQ9ImcxNiI+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTU0NCw1OTkuNDM0IGMgMC45MiwtNDAuMzUyIDI1LjY4LC04MS42MDIgNzEuNTMsLTgxLjYwMiAyNy41MSwwIDQ3LjY4LDEyLjgzMiA2MS40NCwzNS43NTQgMTIuODMsMjIuOTMgMTIuODMsNTYuODUyIDEyLjgzLDgyLjUyNyBsIDAsMzI5LjE4NCAtNzEuNTIsMCAwLDEwNC41NDMgMjY2LjgzLDAgMCwtMTA0LjU0MyAtNzAuNiwwIDAsLTM0NC43NyBjIDAsLTU4LjY5MSAtMy42OCwtMTA0LjUzMSAtNDQuOTMsLTE1Mi4yMTggLTM2LjY4LC00Mi4xOCAtOTYuMjgsLTY2LjAyIC0xNTMuMTQsLTY2LjAyIC0xMTcuMzcsMCAtMjA3LjI0LDc3Ljk0MSAtMjAyLjY0LDE5Ny4xNDUgbCAxMzAuMiwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDIzMDEuNCw2NjIuNjk1IGMgMCw4MC43MDMgLTY2Ljk0LDE0NS44MTMgLTE0Ny42MywxNDUuODEzIC04My40NCwwIC0xNDcuNjMsLTY4Ljc4MSAtMTQ3LjYzLC0xNTEuMzAxIDAsLTc5Ljc4NSA2Ni45NCwtMTQ1LjgwMSAxNDUuOCwtMTQ1LjgwMSA4NC4zNSwwIDE0OS40Niw2Ny44NTIgMTQ5LjQ2LDE1MS4yODkgeiBtIC0xLjgzLC0xODEuNTQ3IGMgLTM1Ljc3LC01NC4wOTcgLTkzLjUzLC03OC44NTkgLTE1Ny43MiwtNzguODU5IC0xNDAuMywwIC0yNTEuMjQsMTE2LjQ0OSAtMjUxLjI0LDI1NC45MTggMCwxNDIuMTI5IDExMy43LDI2MC40MSAyNTYuNzQsMjYwLjQxIDYzLjI3LDAgMTE4LjI5LC0yOS4zMzYgMTUyLjIyLC04Mi41MjMgbCAwLDY5LjY4NyAxNzUuMTQsMCAwLC0xMDQuNTI3IC02MS40NCwwIDAsLTI4MC41OTggNjEuNDQsMCAwLC0xMDQuNTI3IC0xNzUuMTQsMCAwLDY2LjAxOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAyNjIyLjMzLDU1Ny4yNTggYyAzLjY3LC00NC4wMTYgMzMuMDEsLTczLjM0OCA3OC44NiwtNzMuMzQ4IDMzLjkzLDAgNjYuOTMsMjMuODI0IDY2LjkzLDYwLjUwNCAwLDQ4LjYwNiAtNDUuODQsNTYuODU2IC04My40NCw2Ni45NDEgLTg1LjI4LDIyLjAwNCAtMTc4LjgxLDQ4LjYwNiAtMTc4LjgxLDE1NS44NzkgMCw5My41MzYgNzguODYsMTQ3LjYzMyAxNjUuOTgsMTQ3LjYzMyA0NCwwIDgzLjQzLC05LjE3NiAxMTAuOTQsLTQ0LjAwOCBsIDAsMzMuOTIyIDgyLjUzLDAgMCwtMTMyLjk2NSAtMTA4LjIxLDAgYyAtMS44MywzNC44NTYgLTI4LjQyLDU3Ljc3NCAtNjMuMjYsNTcuNzc0IC0zMC4yNiwwIC02Mi4zNSwtMTcuNDIyIC02Mi4zNSwtNTEuMzQ4IDAsLTQ1Ljg0NyA0NC45MywtNTUuOTMgODAuNjksLTY0LjE4IDg4LjAyLC0yMC4xNzUgMTgyLjQ3LC00Ny42OTUgMTgyLjQ3LC0xNTcuNzM0IDAsLTk5LjAyNyAtODMuNDQsLTE1NC4wMzkgLTE3NS4xMywtMTU0LjAzOSAtNDkuNTMsMCAtOTQuNDYsMTUuNTgyIC0xMjYuNTUsNTMuMTggbCAwLC00MC4zNCAtODUuMjcsMCAwLDE0Mi4xMjkgMTE0LjYyLDAiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGgyNiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMjk4OC4xOCw4MDAuMjU0IC02My4yNiwwIDAsMTA0LjUyNyAxNjUuMDUsMCAwLC03My4zNTUgYyAzMS4xOCw1MS4zNDcgNzguODYsODUuMjc3IDE0MS4yMSw4NS4yNzcgNjcuODUsMCAxMjQuNzEsLTQxLjI1OCAxNTIuMjEsLTEwMi42OTkgMjYuNiw2Mi4zNTEgOTIuNjIsMTAyLjY5OSAxNjAuNDcsMTAyLjY5OSA1My4xOSwwIDEwNS40NiwtMjIgMTQxLjIxLC02Mi4zNTEgMzguNTIsLTQ0LjkzOCAzOC41MiwtOTMuNTMyIDM4LjUyLC0xNDkuNDU3IGwgMCwtMTg1LjIzOSA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40MiwwIDAsMTA0LjUyNyA2My4yOCwwIDAsMTU3LjcxNSBjIDAsMzIuMTAyIDAsNjAuNTI3IC0xNC42Nyw4OC45NTcgLTE4LjM0LDI2LjU4MiAtNDguNjEsNDAuMzQ0IC03OS43Nyw0MC4zNDQgLTMwLjI2LDAgLTYzLjI4LC0xMi44NDQgLTgyLjUzLC0zNi42NzIgLTIyLjkzLC0yOS4zNTUgLTIyLjkzLC01Ni44NjMgLTIyLjkzLC05Mi42MjkgbCAwLC0xNTcuNzE1IDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM4LjQxLDAgMCwxMDQuNTI3IDYzLjI4LDAgMCwxNTAuMzgzIGMgMCwyOS4zNDggMCw2Ni4wMjMgLTE0LjY3LDkxLjY5OSAtMTUuNTksMjkuMzM2IC00Ny42OSw0NC45MzQgLTgwLjcsNDQuOTM0IC0zMS4xOCwwIC01Ny43NywtMTEuMDA4IC03Ny45NCwtMzUuNzc0IC0yNC43NywtMzAuMjUzIC0yNi42LC02Mi4zNDMgLTI2LjYsLTk5Ljk0MSBsIDAsLTE1MS4zMDEgNjMuMjcsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNiwwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAzOTk4LjY2LDk1MS41NDcgLTExMS44NywwIDAsMTE4LjI5MyAxMTEuODcsMCAwLC0xMTguMjkzIHogbSAwLC00MzEuODkxIDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM5LjMzLDAgMCwxMDQuNTI3IDY0LjE5LDAgMCwyODAuNTk4IC02My4yNywwIDAsMTA0LjUyNyAxNzUuMTQsMCAwLC0zODUuMTI1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzAiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDQxNTkuMTIsODAwLjI1NCAtNjMuMjcsMCAwLDEwNC41MjcgMTc1LjE0LDAgMCwtNjkuNjg3IGMgMjkuMzUsNTQuMTAxIDg0LjM2LDgwLjY5OSAxNDQuODcsODAuNjk5IDUzLjE5LDAgMTA1LjQ1LC0yMi4wMTYgMTQxLjIyLC02MC41MjcgNDAuMzQsLTQ0LjkzNCA0MS4yNiwtODguMDMyIDQxLjI2LC0xNDMuOTU3IGwgMCwtMTkxLjY1MyA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40LDAgMCwxMDQuNTI3IDYzLjI2LDAgMCwxNTguNjM3IGMgMCwzMC4yNjIgMCw2MS40MzQgLTE5LjI2LDg4LjAzNSAtMjAuMTcsMjYuNTgyIC01My4xOCwzOS40MTQgLTg2LjE5LDM5LjQxNCAtMzMuOTMsMCAtNjguNzcsLTEzLjc1IC04OC45NCwtNDEuMjUgLTIxLjA5LC0yNy41IC0yMS4wOSwtNjkuNjg3IC0yMS4wOSwtMTAyLjcwNyBsIDAsLTE0Mi4xMjkgNjMuMjYsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNywwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDMyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA1MDgyLjQ4LDcwMy45NjUgYyAtMTkuMjQsNzAuNjA1IC04MS42LDExNS41NDcgLTE1NC4wNCwxMTUuNTQ3IC02Ni4wNCwwIC0xMjkuMywtNTEuMzQ4IC0xNDMuMDUsLTExNS41NDcgbCAyOTcuMDksMCB6IG0gODUuMjcsLTE0NC44ODMgYyAtMzguNTEsLTkzLjUyMyAtMTI5LjI3LC0xNTYuNzkzIC0yMzEuMDUsLTE1Ni43OTMgLTE0My4wNywwIC0yNTcuNjgsMTExLjg3MSAtMjU3LjY4LDI1NS44MzYgMCwxNDQuODgzIDEwOS4xMiwyNjEuMzI4IDI1NC45MSwyNjEuMzI4IDY3Ljg3LDAgMTM1LjcyLC0zMC4yNTggMTgzLjM5LC03OC44NjMgNDguNjIsLTUxLjM0NCA2OC43OSwtMTEzLjY5NSA2OC43OSwtMTgzLjM4MyBsIC0zLjY3LC0zOS40MzQgLTM5Ni4xMywwIGMgMTQuNjcsLTY3Ljg2MyA3Ny4wMywtMTE3LjM2MyAxNDYuNzIsLTExNy4zNjMgNDguNTksMCA5MC43NiwxOC4zMjggMTE4LjI4LDU4LjY3MiBsIDExNi40NCwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDY5MC44OTUsODUwLjcwMyA5MC43NSwwIDIyLjU0MywzMS4wMzUgMCwyNDMuMTIyIC0xMzUuODI5LDAgMCwtMjQzLjE0MSAyMi41MzYsLTMxLjAxNiIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDM2IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA2MzIuMzk1LDc0Mi4yNTggMjguMDM5LDg2LjMwNCAtMjIuNTUxLDMxLjA0IC0yMzEuMjIzLDc1LjEyOCAtNDEuOTc2LC0xMjkuMTgzIDIzMS4yNTcsLTc1LjEzNyAzNi40NTQsMTEuODQ4IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzgiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDcxNy40NDksNjUzLjEwNSAtNzMuNDEsNTMuMzYgLTM2LjQ4OCwtMTEuODc1IC0xNDIuOTAzLC0xOTYuNjkyIDEwOS44ODMsLTc5LjgyOCAxNDIuOTE4LDE5Ni43MDMgMCwzOC4zMzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0MCIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gODI4LjUyLDcwNi40NjUgLTczLjQyNiwtNTMuMzQgMC4wMTEsLTM4LjM1OSBMIDg5OC4wMDQsNDE4LjA3IDEwMDcuOSw0OTcuODk4IDg2NC45NzMsNjk0LjYwOSA4MjguNTIsNzA2LjQ2NSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA4MTIuMDg2LDgyOC41ODYgMjguMDU1LC04Ni4zMiAzNi40ODQsLTExLjgzNiAyMzEuMjI1LDc1LjExNyAtNDEuOTcsMTI5LjE4MyAtMjMxLjIzOSwtNzUuMTQgLTIyLjU1NSwtMzEuMDA0IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNDQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDczNi4zMDEsMTMzNS44OCBjIC0zMjMuMDQ3LDAgLTU4NS44NzUsLTI2Mi43OCAtNTg1Ljg3NSwtNTg1Ljc4MiAwLC0zMjMuMTE4IDI2Mi44MjgsLTU4NS45NzcgNTg1Ljg3NSwtNTg1Ljk3NyAzMjMuMDE5LDAgNTg1LjgwOSwyNjIuODU5IDU4NS44MDksNTg1Ljk3NyAwLDMyMy4wMDIgLTI2Mi43OSw1ODUuNzgyIC01ODUuODA5LDU4NS43ODIgbCAwLDAgeiBtIDAsLTExOC42MSBjIDI1Ny45NzIsMCA0NjcuMTg5LC0yMDkuMTMgNDY3LjE4OSwtNDY3LjE3MiAwLC0yNTguMTI5IC0yMDkuMjE3LC00NjcuMzQ4IC00NjcuMTg5LC00NjcuMzQ4IC0yNTguMDc0LDAgLTQ2Ny4yNTQsMjA5LjIxOSAtNDY3LjI1NCw0NjcuMzQ4IDAsMjU4LjA0MiAyMDkuMTgsNDY3LjE3MiA0NjcuMjU0LDQ2Ny4xNzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0NiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTA5MS4xMyw2MTkuODgzIC0xNzUuNzcxLDU3LjEyMSAxMS42MjksMzUuODA4IDE3NS43NjIsLTU3LjEyMSAtMTEuNjIsLTM1LjgwOCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQ4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA4NjYuOTU3LDkwMi4wNzQgODM2LjUsOTI0LjE5OSA5NDUuMTIxLDEwNzMuNzMgOTc1LjU4NiwxMDUxLjYxIDg2Ni45NTcsOTAyLjA3NCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA2MDcuNDY1LDkwMy40NDUgNDk4Ljg1NSwxMDUyLjk3IDUyOS4zMiwxMDc1LjEgNjM3LjkzLDkyNS41NjYgNjA3LjQ2NSw5MDMuNDQ1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDM4MC42ODgsNjIyLjEyOSAtMTEuNjI2LDM1LjgwMSAxNzUuNzU4LDU3LjA5IDExLjYyMSwtMzUuODAxIC0xNzUuNzUzLC01Ny4wOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDU0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA3MTYuMjg5LDM3Ni41OSAzNy42NDA2LDAgMCwxODQuODE2IC0zNy42NDA2LDAgMCwtMTg0LjgxNiB6IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTYiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=') no-repeat, none; -moz-background-size: 100%; -o-background-size: 100%; -webkit-background-size: 100%; background-size: 100%; display: block; float: left; width: 90px; height: 25px; }
|
|
10
|
-
.jasmine_html-reporter .banner .version { margin-left: 14px; position: relative; top: 6px; }
|
|
7
|
+
.jasmine_html-reporter .jasmine-banner, .jasmine_html-reporter .jasmine-symbol-summary, .jasmine_html-reporter .jasmine-summary, .jasmine_html-reporter .jasmine-result-message, .jasmine_html-reporter .jasmine-spec .jasmine-description, .jasmine_html-reporter .jasmine-spec-detail .jasmine-description, .jasmine_html-reporter .jasmine-alert .jasmine-bar, .jasmine_html-reporter .jasmine-stack-trace { padding-left: 9px; padding-right: 9px; }
|
|
8
|
+
.jasmine_html-reporter .jasmine-banner { position: relative; }
|
|
9
|
+
.jasmine_html-reporter .jasmine-banner .jasmine-title { background: url('data:image/png;base64,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') no-repeat; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICB3aWR0aD0iNjgxLjk2MjUyIgogICBoZWlnaHQ9IjE4Ny41IgogICBpZD0ic3ZnMiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhOCI+PHJkZjpSREY+PGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPjxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PjxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgICBpZD0iZGVmczYiPjxjbGlwUGF0aAogICAgICAgaWQ9ImNsaXBQYXRoMTgiPjxwYXRoCiAgICAgICAgIGQ9Ik0gMCwxNTAwIDAsMCBsIDU0NTUuNzQsMCAwLDE1MDAgTCAwLDE1MDAgeiIKICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgaWQ9InBhdGgyMCIgLz48L2NsaXBQYXRoPjwvZGVmcz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsMTg3LjUpIgogICAgIGlkPSJnMTAiPjxnCiAgICAgICB0cmFuc2Zvcm09InNjYWxlKDAuMSwwLjEpIgogICAgICAgaWQ9ImcxMiI+PGcKICAgICAgICAgaWQ9ImcxNCI+PGcKICAgICAgICAgICBjbGlwLXBhdGg9InVybCgjY2xpcFBhdGgxOCkiCiAgICAgICAgICAgaWQ9ImcxNiI+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTU0NCw1OTkuNDM0IGMgMC45MiwtNDAuMzUyIDI1LjY4LC04MS42MDIgNzEuNTMsLTgxLjYwMiAyNy41MSwwIDQ3LjY4LDEyLjgzMiA2MS40NCwzNS43NTQgMTIuODMsMjIuOTMgMTIuODMsNTYuODUyIDEyLjgzLDgyLjUyNyBsIDAsMzI5LjE4NCAtNzEuNTIsMCAwLDEwNC41NDMgMjY2LjgzLDAgMCwtMTA0LjU0MyAtNzAuNiwwIDAsLTM0NC43NyBjIDAsLTU4LjY5MSAtMy42OCwtMTA0LjUzMSAtNDQuOTMsLTE1Mi4yMTggLTM2LjY4LC00Mi4xOCAtOTYuMjgsLTY2LjAyIC0xNTMuMTQsLTY2LjAyIC0xMTcuMzcsMCAtMjA3LjI0LDc3Ljk0MSAtMjAyLjY0LDE5Ny4xNDUgbCAxMzAuMiwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMjIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDIzMDEuNCw2NjIuNjk1IGMgMCw4MC43MDMgLTY2Ljk0LDE0NS44MTMgLTE0Ny42MywxNDUuODEzIC04My40NCwwIC0xNDcuNjMsLTY4Ljc4MSAtMTQ3LjYzLC0xNTEuMzAxIDAsLTc5Ljc4NSA2Ni45NCwtMTQ1LjgwMSAxNDUuOCwtMTQ1LjgwMSA4NC4zNSwwIDE0OS40Niw2Ny44NTIgMTQ5LjQ2LDE1MS4yODkgeiBtIC0xLjgzLC0xODEuNTQ3IGMgLTM1Ljc3LC01NC4wOTcgLTkzLjUzLC03OC44NTkgLTE1Ny43MiwtNzguODU5IC0xNDAuMywwIC0yNTEuMjQsMTE2LjQ0OSAtMjUxLjI0LDI1NC45MTggMCwxNDIuMTI5IDExMy43LDI2MC40MSAyNTYuNzQsMjYwLjQxIDYzLjI3LDAgMTE4LjI5LC0yOS4zMzYgMTUyLjIyLC04Mi41MjMgbCAwLDY5LjY4NyAxNzUuMTQsMCAwLC0xMDQuNTI3IC02MS40NCwwIDAsLTI4MC41OTggNjEuNDQsMCAwLC0xMDQuNTI3IC0xNzUuMTQsMCAwLDY2LjAxOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAyNjIyLjMzLDU1Ny4yNTggYyAzLjY3LC00NC4wMTYgMzMuMDEsLTczLjM0OCA3OC44NiwtNzMuMzQ4IDMzLjkzLDAgNjYuOTMsMjMuODI0IDY2LjkzLDYwLjUwNCAwLDQ4LjYwNiAtNDUuODQsNTYuODU2IC04My40NCw2Ni45NDEgLTg1LjI4LDIyLjAwNCAtMTc4LjgxLDQ4LjYwNiAtMTc4LjgxLDE1NS44NzkgMCw5My41MzYgNzguODYsMTQ3LjYzMyAxNjUuOTgsMTQ3LjYzMyA0NCwwIDgzLjQzLC05LjE3NiAxMTAuOTQsLTQ0LjAwOCBsIDAsMzMuOTIyIDgyLjUzLDAgMCwtMTMyLjk2NSAtMTA4LjIxLDAgYyAtMS44MywzNC44NTYgLTI4LjQyLDU3Ljc3NCAtNjMuMjYsNTcuNzc0IC0zMC4yNiwwIC02Mi4zNSwtMTcuNDIyIC02Mi4zNSwtNTEuMzQ4IDAsLTQ1Ljg0NyA0NC45MywtNTUuOTMgODAuNjksLTY0LjE4IDg4LjAyLC0yMC4xNzUgMTgyLjQ3LC00Ny42OTUgMTgyLjQ3LC0xNTcuNzM0IDAsLTk5LjAyNyAtODMuNDQsLTE1NC4wMzkgLTE3NS4xMywtMTU0LjAzOSAtNDkuNTMsMCAtOTQuNDYsMTUuNTgyIC0xMjYuNTUsNTMuMTggbCAwLC00MC4zNCAtODUuMjcsMCAwLDE0Mi4xMjkgMTE0LjYyLDAiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGgyNiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMjk4OC4xOCw4MDAuMjU0IC02My4yNiwwIDAsMTA0LjUyNyAxNjUuMDUsMCAwLC03My4zNTUgYyAzMS4xOCw1MS4zNDcgNzguODYsODUuMjc3IDE0MS4yMSw4NS4yNzcgNjcuODUsMCAxMjQuNzEsLTQxLjI1OCAxNTIuMjEsLTEwMi42OTkgMjYuNiw2Mi4zNTEgOTIuNjIsMTAyLjY5OSAxNjAuNDcsMTAyLjY5OSA1My4xOSwwIDEwNS40NiwtMjIgMTQxLjIxLC02Mi4zNTEgMzguNTIsLTQ0LjkzOCAzOC41MiwtOTMuNTMyIDM4LjUyLC0xNDkuNDU3IGwgMCwtMTg1LjIzOSA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40MiwwIDAsMTA0LjUyNyA2My4yOCwwIDAsMTU3LjcxNSBjIDAsMzIuMTAyIDAsNjAuNTI3IC0xNC42Nyw4OC45NTcgLTE4LjM0LDI2LjU4MiAtNDguNjEsNDAuMzQ0IC03OS43Nyw0MC4zNDQgLTMwLjI2LDAgLTYzLjI4LC0xMi44NDQgLTgyLjUzLC0zNi42NzIgLTIyLjkzLC0yOS4zNTUgLTIyLjkzLC01Ni44NjMgLTIyLjkzLC05Mi42MjkgbCAwLC0xNTcuNzE1IDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM4LjQxLDAgMCwxMDQuNTI3IDYzLjI4LDAgMCwxNTAuMzgzIGMgMCwyOS4zNDggMCw2Ni4wMjMgLTE0LjY3LDkxLjY5OSAtMTUuNTksMjkuMzM2IC00Ny42OSw0NC45MzQgLTgwLjcsNDQuOTM0IC0zMS4xOCwwIC01Ny43NywtMTEuMDA4IC03Ny45NCwtMzUuNzc0IC0yNC43NywtMzAuMjUzIC0yNi42LC02Mi4zNDMgLTI2LjYsLTk5Ljk0MSBsIDAsLTE1MS4zMDEgNjMuMjcsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNiwwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDI4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSAzOTk4LjY2LDk1MS41NDcgLTExMS44NywwIDAsMTE4LjI5MyAxMTEuODcsMCAwLC0xMTguMjkzIHogbSAwLC00MzEuODkxIDYzLjI3LDAgMCwtMTA0LjUyNyAtMjM5LjMzLDAgMCwxMDQuNTI3IDY0LjE5LDAgMCwyODAuNTk4IC02My4yNywwIDAsMTA0LjUyNyAxNzUuMTQsMCAwLC0zODUuMTI1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzAiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDQxNTkuMTIsODAwLjI1NCAtNjMuMjcsMCAwLDEwNC41MjcgMTc1LjE0LDAgMCwtNjkuNjg3IGMgMjkuMzUsNTQuMTAxIDg0LjM2LDgwLjY5OSAxNDQuODcsODAuNjk5IDUzLjE5LDAgMTA1LjQ1LC0yMi4wMTYgMTQxLjIyLC02MC41MjcgNDAuMzQsLTQ0LjkzNCA0MS4yNiwtODguMDMyIDQxLjI2LC0xNDMuOTU3IGwgMCwtMTkxLjY1MyA2My4yNywwIDAsLTEwNC41MjcgLTIzOC40LDAgMCwxMDQuNTI3IDYzLjI2LDAgMCwxNTguNjM3IGMgMCwzMC4yNjIgMCw2MS40MzQgLTE5LjI2LDg4LjAzNSAtMjAuMTcsMjYuNTgyIC01My4xOCwzOS40MTQgLTg2LjE5LDM5LjQxNCAtMzMuOTMsMCAtNjguNzcsLTEzLjc1IC04OC45NCwtNDEuMjUgLTIxLjA5LC0yNy41IC0yMS4wOSwtNjkuNjg3IC0yMS4wOSwtMTAyLjcwNyBsIDAsLTE0Mi4xMjkgNjMuMjYsMCAwLC0xMDQuNTI3IC0yMzguNCwwIDAsMTA0LjUyNyA2My4yNywwIDAsMjgwLjU5OCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDMyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA1MDgyLjQ4LDcwMy45NjUgYyAtMTkuMjQsNzAuNjA1IC04MS42LDExNS41NDcgLTE1NC4wNCwxMTUuNTQ3IC02Ni4wNCwwIC0xMjkuMywtNTEuMzQ4IC0xNDMuMDUsLTExNS41NDcgbCAyOTcuMDksMCB6IG0gODUuMjcsLTE0NC44ODMgYyAtMzguNTEsLTkzLjUyMyAtMTI5LjI3LC0xNTYuNzkzIC0yMzEuMDUsLTE1Ni43OTMgLTE0My4wNywwIC0yNTcuNjgsMTExLjg3MSAtMjU3LjY4LDI1NS44MzYgMCwxNDQuODgzIDEwOS4xMiwyNjEuMzI4IDI1NC45MSwyNjEuMzI4IDY3Ljg3LDAgMTM1LjcyLC0zMC4yNTggMTgzLjM5LC03OC44NjMgNDguNjIsLTUxLjM0NCA2OC43OSwtMTEzLjY5NSA2OC43OSwtMTgzLjM4MyBsIC0zLjY3LC0zOS40MzQgLTM5Ni4xMywwIGMgMTQuNjcsLTY3Ljg2MyA3Ny4wMywtMTE3LjM2MyAxNDYuNzIsLTExNy4zNjMgNDguNTksMCA5MC43NiwxOC4zMjggMTE4LjI4LDU4LjY3MiBsIDExNi40NCwwIgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDY5MC44OTUsODUwLjcwMyA5MC43NSwwIDIyLjU0MywzMS4wMzUgMCwyNDMuMTIyIC0xMzUuODI5LDAgMCwtMjQzLjE0MSAyMi41MzYsLTMxLjAxNiIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDM2IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA2MzIuMzk1LDc0Mi4yNTggMjguMDM5LDg2LjMwNCAtMjIuNTUxLDMxLjA0IC0yMzEuMjIzLDc1LjEyOCAtNDEuOTc2LC0xMjkuMTgzIDIzMS4yNTcsLTc1LjEzNyAzNi40NTQsMTEuODQ4IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoMzgiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDcxNy40NDksNjUzLjEwNSAtNzMuNDEsNTMuMzYgLTM2LjQ4OCwtMTEuODc1IC0xNDIuOTAzLC0xOTYuNjkyIDEwOS44ODMsLTc5LjgyOCAxNDIuOTE4LDE5Ni43MDMgMCwzOC4zMzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0MCIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gODI4LjUyLDcwNi40NjUgLTczLjQyNiwtNTMuMzQgMC4wMTEsLTM4LjM1OSBMIDg5OC4wMDQsNDE4LjA3IDEwMDcuOSw0OTcuODk4IDg2NC45NzMsNjk0LjYwOSA4MjguNTIsNzA2LjQ2NSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQyIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA4MTIuMDg2LDgyOC41ODYgMjguMDU1LC04Ni4zMiAzNi40ODQsLTExLjgzNiAyMzEuMjI1LDc1LjExNyAtNDEuOTcsMTI5LjE4MyAtMjMxLjIzOSwtNzUuMTQgLTIyLjU1NSwtMzEuMDA0IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNDQiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDczNi4zMDEsMTMzNS44OCBjIC0zMjMuMDQ3LDAgLTU4NS44NzUsLTI2Mi43OCAtNTg1Ljg3NSwtNTg1Ljc4MiAwLC0zMjMuMTE4IDI2Mi44MjgsLTU4NS45NzcgNTg1Ljg3NSwtNTg1Ljk3NyAzMjMuMDE5LDAgNTg1LjgwOSwyNjIuODU5IDU4NS44MDksNTg1Ljk3NyAwLDMyMy4wMDIgLTI2Mi43OSw1ODUuNzgyIC01ODUuODA5LDU4NS43ODIgbCAwLDAgeiBtIDAsLTExOC42MSBjIDI1Ny45NzIsMCA0NjcuMTg5LC0yMDkuMTMgNDY3LjE4OSwtNDY3LjE3MiAwLC0yNTguMTI5IC0yMDkuMjE3LC00NjcuMzQ4IC00NjcuMTg5LC00NjcuMzQ4IC0yNTguMDc0LDAgLTQ2Ny4yNTQsMjA5LjIxOSAtNDY3LjI1NCw0NjcuMzQ4IDAsMjU4LjA0MiAyMDkuMTgsNDY3LjE3MiA0NjcuMjU0LDQ2Ny4xNzIiCiAgICAgICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICAgICAgaWQ9InBhdGg0NiIKICAgICAgICAgICAgIHN0eWxlPSJmaWxsOiM4YTQxODI7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiIC8+PHBhdGgKICAgICAgICAgICAgIGQ9Im0gMTA5MS4xMyw2MTkuODgzIC0xNzUuNzcxLDU3LjEyMSAxMS42MjksMzUuODA4IDE3NS43NjIsLTU3LjEyMSAtMTEuNjIsLTM1LjgwOCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDQ4IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA4NjYuOTU3LDkwMi4wNzQgODM2LjUsOTI0LjE5OSA5NDUuMTIxLDEwNzMuNzMgOTc1LjU4NiwxMDUxLjYxIDg2Ni45NTcsOTAyLjA3NCIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDUwIgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0iTSA2MDcuNDY1LDkwMy40NDUgNDk4Ljg1NSwxMDUyLjk3IDUyOS4zMiwxMDc1LjEgNjM3LjkzLDkyNS41NjYgNjA3LjQ2NSw5MDMuNDQ1IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTIiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjxwYXRoCiAgICAgICAgICAgICBkPSJtIDM4MC42ODgsNjIyLjEyOSAtMTEuNjI2LDM1LjgwMSAxNzUuNzU4LDU3LjA5IDExLjYyMSwtMzUuODAxIC0xNzUuNzUzLC01Ny4wOSIKICAgICAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgICAgICBpZD0icGF0aDU0IgogICAgICAgICAgICAgc3R5bGU9ImZpbGw6IzhhNDE4MjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIgLz48cGF0aAogICAgICAgICAgICAgZD0ibSA3MTYuMjg5LDM3Ni41OSAzNy42NDA2LDAgMCwxODQuODE2IC0zNy42NDA2LDAgMCwtMTg0LjgxNiB6IgogICAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICAgICAgICAgIGlkPSJwYXRoNTYiCiAgICAgICAgICAgICBzdHlsZT0iZmlsbDojOGE0MTgyO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L2c+PC9nPjwvZz48L3N2Zz4=') no-repeat, none; -moz-background-size: 100%; -o-background-size: 100%; -webkit-background-size: 100%; background-size: 100%; display: block; float: left; width: 90px; height: 25px; }
|
|
10
|
+
.jasmine_html-reporter .jasmine-banner .jasmine-version { margin-left: 14px; position: relative; top: 6px; }
|
|
11
11
|
.jasmine_html-reporter #jasmine_content { position: fixed; right: 100%; }
|
|
12
|
-
.jasmine_html-reporter .version { color: #aaa; }
|
|
13
|
-
.jasmine_html-reporter .banner { margin-top: 14px; }
|
|
14
|
-
.jasmine_html-reporter .duration { color: #fff; float: right; line-height: 28px; padding-right: 9px; }
|
|
15
|
-
.jasmine_html-reporter .symbol-summary { overflow: hidden; *zoom: 1; margin: 14px 0; }
|
|
16
|
-
.jasmine_html-reporter .symbol-summary li { display: inline-block; height:
|
|
17
|
-
.jasmine_html-reporter .symbol-summary li.passed { font-size: 14px; }
|
|
18
|
-
.jasmine_html-reporter .symbol-summary li.passed:before { color: #007069; content: "\02022"; }
|
|
19
|
-
.jasmine_html-reporter .symbol-summary li.failed { line-height: 9px; }
|
|
20
|
-
.jasmine_html-reporter .symbol-summary li.failed:before { color: #ca3a11; content: "\d7"; font-weight: bold; margin-left: -1px; }
|
|
21
|
-
.jasmine_html-reporter .symbol-summary li.disabled { font-size: 14px; }
|
|
22
|
-
.jasmine_html-reporter .symbol-summary li.disabled:before { color: #bababa; content: "\02022"; }
|
|
23
|
-
.jasmine_html-reporter .symbol-summary li.pending { line-height: 17px; }
|
|
24
|
-
.jasmine_html-reporter .symbol-summary li.pending:before { color: #ba9d37; content: "*"; }
|
|
25
|
-
.jasmine_html-reporter .symbol-summary li.empty { font-size: 14px; }
|
|
26
|
-
.jasmine_html-reporter .symbol-summary li.empty:before { color: #ba9d37; content: "\02022"; }
|
|
27
|
-
.jasmine_html-reporter .run-options { float: right; margin-right: 5px; border: 1px solid #8a4182; color: #8a4182; position: relative; line-height: 20px; }
|
|
28
|
-
.jasmine_html-reporter .run-options .trigger { cursor: pointer; padding: 8px 16px; }
|
|
29
|
-
.jasmine_html-reporter .run-options .payload { position: absolute; display: none; right: -1px; border: 1px solid #8a4182; background-color: #eee; white-space: nowrap; padding: 4px 8px; }
|
|
30
|
-
.jasmine_html-reporter .run-options .payload.open { display: block; }
|
|
31
|
-
.jasmine_html-reporter .bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
|
|
32
|
-
.jasmine_html-reporter .bar.failed { background-color: #ca3a11; }
|
|
33
|
-
.jasmine_html-reporter .bar.passed { background-color: #007069; }
|
|
34
|
-
.jasmine_html-reporter .bar.skipped { background-color: #bababa; }
|
|
35
|
-
.jasmine_html-reporter .bar.errored { background-color: #ca3a11; }
|
|
36
|
-
.jasmine_html-reporter .bar.menu { background-color: #fff; color: #aaa; }
|
|
37
|
-
.jasmine_html-reporter .bar.menu a { color: #333; }
|
|
38
|
-
.jasmine_html-reporter .bar a { color: white; }
|
|
39
|
-
.jasmine_html-reporter.spec-list .bar.menu.failure-list, .jasmine_html-reporter.spec-list .results .failures { display: none; }
|
|
40
|
-
.jasmine_html-reporter.failure-list .bar.menu.spec-list, .jasmine_html-reporter.failure-list .summary { display: none; }
|
|
41
|
-
.jasmine_html-reporter .
|
|
42
|
-
.jasmine_html-reporter .
|
|
43
|
-
.jasmine_html-reporter
|
|
44
|
-
.jasmine_html-reporter.
|
|
45
|
-
.jasmine_html-reporter.
|
|
46
|
-
.jasmine_html-reporter
|
|
47
|
-
.jasmine_html-reporter.
|
|
48
|
-
.jasmine_html-reporter .
|
|
49
|
-
.jasmine_html-reporter .summary {
|
|
50
|
-
.jasmine_html-reporter .
|
|
51
|
-
.jasmine_html-reporter .
|
|
52
|
-
.jasmine_html-reporter .
|
|
53
|
-
.jasmine_html-reporter .
|
|
54
|
-
.jasmine_html-reporter .
|
|
55
|
-
.jasmine_html-reporter .
|
|
56
|
-
.jasmine_html-reporter .
|
|
57
|
-
.jasmine_html-reporter .
|
|
58
|
-
.jasmine_html-reporter .
|
|
59
|
-
.jasmine_html-reporter .suite a { color: #333; }
|
|
60
|
-
.jasmine_html-reporter .failures .spec-detail { margin-bottom: 28px; }
|
|
61
|
-
.jasmine_html-reporter .failures .spec-detail .description { background-color: #ca3a11; }
|
|
62
|
-
.jasmine_html-reporter .failures .spec-detail .description a { color: white; }
|
|
63
|
-
.jasmine_html-reporter .result-message { padding-top: 14px; color: #333; white-space: pre; }
|
|
64
|
-
.jasmine_html-reporter .result-message span.result { display: block; }
|
|
65
|
-
.jasmine_html-reporter .stack-trace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666; border: 1px solid #ddd; background: white; white-space: pre; }
|
|
12
|
+
.jasmine_html-reporter .jasmine-version { color: #aaa; }
|
|
13
|
+
.jasmine_html-reporter .jasmine-banner { margin-top: 14px; }
|
|
14
|
+
.jasmine_html-reporter .jasmine-duration { color: #fff; float: right; line-height: 28px; padding-right: 9px; }
|
|
15
|
+
.jasmine_html-reporter .jasmine-symbol-summary { overflow: hidden; *zoom: 1; margin: 14px 0; }
|
|
16
|
+
.jasmine_html-reporter .jasmine-symbol-summary li { display: inline-block; height: 10px; width: 14px; font-size: 16px; }
|
|
17
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed { font-size: 14px; }
|
|
18
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-passed:before { color: #007069; content: "\02022"; }
|
|
19
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed { line-height: 9px; }
|
|
20
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-failed:before { color: #ca3a11; content: "\d7"; font-weight: bold; margin-left: -1px; }
|
|
21
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-disabled { font-size: 14px; }
|
|
22
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-disabled:before { color: #bababa; content: "\02022"; }
|
|
23
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending { line-height: 17px; }
|
|
24
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-pending:before { color: #ba9d37; content: "*"; }
|
|
25
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty { font-size: 14px; }
|
|
26
|
+
.jasmine_html-reporter .jasmine-symbol-summary li.jasmine-empty:before { color: #ba9d37; content: "\02022"; }
|
|
27
|
+
.jasmine_html-reporter .jasmine-run-options { float: right; margin-right: 5px; border: 1px solid #8a4182; color: #8a4182; position: relative; line-height: 20px; }
|
|
28
|
+
.jasmine_html-reporter .jasmine-run-options .jasmine-trigger { cursor: pointer; padding: 8px 16px; }
|
|
29
|
+
.jasmine_html-reporter .jasmine-run-options .jasmine-payload { position: absolute; display: none; right: -1px; border: 1px solid #8a4182; background-color: #eee; white-space: nowrap; padding: 4px 8px; }
|
|
30
|
+
.jasmine_html-reporter .jasmine-run-options .jasmine-payload.jasmine-open { display: block; }
|
|
31
|
+
.jasmine_html-reporter .jasmine-bar { line-height: 28px; font-size: 14px; display: block; color: #eee; }
|
|
32
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-failed { background-color: #ca3a11; }
|
|
33
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-passed { background-color: #007069; }
|
|
34
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-skipped { background-color: #bababa; }
|
|
35
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-errored { background-color: #ca3a11; }
|
|
36
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-menu { background-color: #fff; color: #aaa; }
|
|
37
|
+
.jasmine_html-reporter .jasmine-bar.jasmine-menu a { color: #333; }
|
|
38
|
+
.jasmine_html-reporter .jasmine-bar a { color: white; }
|
|
39
|
+
.jasmine_html-reporter.jasmine-spec-list .jasmine-bar.jasmine-menu.jasmine-failure-list, .jasmine_html-reporter.jasmine-spec-list .jasmine-results .jasmine-failures { display: none; }
|
|
40
|
+
.jasmine_html-reporter.jasmine-failure-list .jasmine-bar.jasmine-menu.jasmine-spec-list, .jasmine_html-reporter.jasmine-failure-list .jasmine-summary { display: none; }
|
|
41
|
+
.jasmine_html-reporter .jasmine-results { margin-top: 14px; }
|
|
42
|
+
.jasmine_html-reporter .jasmine-summary { margin-top: 14px; }
|
|
43
|
+
.jasmine_html-reporter .jasmine-summary ul { list-style-type: none; margin-left: 14px; padding-top: 0; padding-left: 0; }
|
|
44
|
+
.jasmine_html-reporter .jasmine-summary ul.jasmine-suite { margin-top: 7px; margin-bottom: 7px; }
|
|
45
|
+
.jasmine_html-reporter .jasmine-summary li.jasmine-passed a { color: #007069; }
|
|
46
|
+
.jasmine_html-reporter .jasmine-summary li.jasmine-failed a { color: #ca3a11; }
|
|
47
|
+
.jasmine_html-reporter .jasmine-summary li.jasmine-empty a { color: #ba9d37; }
|
|
48
|
+
.jasmine_html-reporter .jasmine-summary li.jasmine-pending a { color: #ba9d37; }
|
|
49
|
+
.jasmine_html-reporter .jasmine-summary li.jasmine-disabled a { color: #bababa; }
|
|
50
|
+
.jasmine_html-reporter .jasmine-description + .jasmine-suite { margin-top: 0; }
|
|
51
|
+
.jasmine_html-reporter .jasmine-suite { margin-top: 14px; }
|
|
52
|
+
.jasmine_html-reporter .jasmine-suite a { color: #333; }
|
|
53
|
+
.jasmine_html-reporter .jasmine-failures .jasmine-spec-detail { margin-bottom: 28px; }
|
|
54
|
+
.jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description { background-color: #ca3a11; }
|
|
55
|
+
.jasmine_html-reporter .jasmine-failures .jasmine-spec-detail .jasmine-description a { color: white; }
|
|
56
|
+
.jasmine_html-reporter .jasmine-result-message { padding-top: 14px; color: #333; white-space: pre; }
|
|
57
|
+
.jasmine_html-reporter .jasmine-result-message span.jasmine-result { display: block; }
|
|
58
|
+
.jasmine_html-reporter .jasmine-stack-trace { margin: 5px 0 0 0; max-height: 224px; overflow: auto; line-height: 18px; color: #666; border: 1px solid #ddd; background: white; white-space: pre; }
|
|
@@ -24,7 +24,11 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
|
|
|
24
24
|
var jasmineRequire;
|
|
25
25
|
|
|
26
26
|
if (typeof module !== 'undefined' && module.exports) {
|
|
27
|
-
|
|
27
|
+
if (typeof global !== 'undefined') {
|
|
28
|
+
jasmineGlobal = global;
|
|
29
|
+
} else {
|
|
30
|
+
jasmineGlobal = {};
|
|
31
|
+
}
|
|
28
32
|
jasmineRequire = exports;
|
|
29
33
|
} else {
|
|
30
34
|
if (typeof window !== 'undefined' && typeof window.toString === 'function' && window.toString() === '[object GjsGlobal]') {
|
|
@@ -68,6 +72,7 @@ var getJasmineRequireObj = (function (jasmineGlobal) {
|
|
|
68
72
|
j$.Timer = jRequire.Timer();
|
|
69
73
|
j$.TreeProcessor = jRequire.TreeProcessor();
|
|
70
74
|
j$.version = jRequire.version();
|
|
75
|
+
j$.Order = jRequire.Order();
|
|
71
76
|
|
|
72
77
|
j$.matchers = jRequire.requireMatchers(jRequire, j$);
|
|
73
78
|
|
|
@@ -93,6 +98,7 @@ getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
|
|
|
93
98
|
'toEqual',
|
|
94
99
|
'toHaveBeenCalled',
|
|
95
100
|
'toHaveBeenCalledWith',
|
|
101
|
+
'toHaveBeenCalledTimes',
|
|
96
102
|
'toMatch',
|
|
97
103
|
'toThrow',
|
|
98
104
|
'toThrowError'
|
|
@@ -447,6 +453,53 @@ if (typeof window == void 0 && typeof exports == 'object') {
|
|
|
447
453
|
exports.Spec = jasmineRequire.Spec;
|
|
448
454
|
}
|
|
449
455
|
|
|
456
|
+
/*jshint bitwise: false*/
|
|
457
|
+
|
|
458
|
+
getJasmineRequireObj().Order = function() {
|
|
459
|
+
function Order(options) {
|
|
460
|
+
this.random = 'random' in options ? options.random : true;
|
|
461
|
+
var seed = this.seed = options.seed || generateSeed();
|
|
462
|
+
this.sort = this.random ? randomOrder : naturalOrder;
|
|
463
|
+
|
|
464
|
+
function naturalOrder(items) {
|
|
465
|
+
return items;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
function randomOrder(items) {
|
|
469
|
+
var copy = items.slice();
|
|
470
|
+
copy.sort(function(a, b) {
|
|
471
|
+
return jenkinsHash(seed + a.id) - jenkinsHash(seed + b.id);
|
|
472
|
+
});
|
|
473
|
+
return copy;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
function generateSeed() {
|
|
477
|
+
return String(Math.random()).slice(-5);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
// Bob Jenkins One-at-a-Time Hash algorithm is a non-cryptographic hash function
|
|
481
|
+
// used to get a different output when the key changes slighly.
|
|
482
|
+
// We use your return to sort the children randomly in a consistent way when
|
|
483
|
+
// used in conjunction with a seed
|
|
484
|
+
|
|
485
|
+
function jenkinsHash(key) {
|
|
486
|
+
var hash, i;
|
|
487
|
+
for(hash = i = 0; i < key.length; ++i) {
|
|
488
|
+
hash += key.charCodeAt(i);
|
|
489
|
+
hash += (hash << 10);
|
|
490
|
+
hash ^= (hash >> 6);
|
|
491
|
+
}
|
|
492
|
+
hash += (hash << 3);
|
|
493
|
+
hash ^= (hash >> 11);
|
|
494
|
+
hash += (hash << 15);
|
|
495
|
+
return hash;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
return Order;
|
|
501
|
+
};
|
|
502
|
+
|
|
450
503
|
getJasmineRequireObj().Env = function(j$) {
|
|
451
504
|
function Env(options) {
|
|
452
505
|
options = options || {};
|
|
@@ -469,6 +522,8 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
469
522
|
var currentlyExecutingSuites = [];
|
|
470
523
|
var currentDeclarationSuite = null;
|
|
471
524
|
var throwOnExpectationFailure = false;
|
|
525
|
+
var random = false;
|
|
526
|
+
var seed = null;
|
|
472
527
|
|
|
473
528
|
var currentSuite = function() {
|
|
474
529
|
return currentlyExecutingSuites[currentlyExecutingSuites.length - 1];
|
|
@@ -618,6 +673,21 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
618
673
|
return throwOnExpectationFailure;
|
|
619
674
|
};
|
|
620
675
|
|
|
676
|
+
this.randomizeTests = function(value) {
|
|
677
|
+
random = !!value;
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
this.randomTests = function() {
|
|
681
|
+
return random;
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
this.seed = function(value) {
|
|
685
|
+
if (value) {
|
|
686
|
+
seed = value;
|
|
687
|
+
}
|
|
688
|
+
return seed;
|
|
689
|
+
};
|
|
690
|
+
|
|
621
691
|
var queueRunnerFactory = function(options) {
|
|
622
692
|
options.catchException = catchException;
|
|
623
693
|
options.clearStack = options.clearStack || clearStack;
|
|
@@ -649,6 +719,12 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
649
719
|
runnablesToRun = [topSuite.id];
|
|
650
720
|
}
|
|
651
721
|
}
|
|
722
|
+
|
|
723
|
+
var order = new j$.Order({
|
|
724
|
+
random: random,
|
|
725
|
+
seed: seed
|
|
726
|
+
});
|
|
727
|
+
|
|
652
728
|
var processor = new j$.TreeProcessor({
|
|
653
729
|
tree: topSuite,
|
|
654
730
|
runnableIds: runnablesToRun,
|
|
@@ -664,6 +740,9 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
664
740
|
}
|
|
665
741
|
currentlyExecutingSuites.pop();
|
|
666
742
|
reporter.suiteDone(result);
|
|
743
|
+
},
|
|
744
|
+
orderChildren: function(node) {
|
|
745
|
+
return order.sort(node.children);
|
|
667
746
|
}
|
|
668
747
|
});
|
|
669
748
|
|
|
@@ -675,7 +754,11 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
675
754
|
totalSpecsDefined: totalSpecsDefined
|
|
676
755
|
});
|
|
677
756
|
|
|
678
|
-
processor.execute(
|
|
757
|
+
processor.execute(function() {
|
|
758
|
+
reporter.jasmineDone({
|
|
759
|
+
order: order
|
|
760
|
+
});
|
|
761
|
+
});
|
|
679
762
|
};
|
|
680
763
|
|
|
681
764
|
this.addReporter = function(reporterToAdd) {
|
|
@@ -710,13 +793,20 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
710
793
|
|
|
711
794
|
this.describe = function(description, specDefinitions) {
|
|
712
795
|
var suite = suiteFactory(description);
|
|
796
|
+
if (specDefinitions.length > 0) {
|
|
797
|
+
throw new Error('describe does not expect a done parameter');
|
|
798
|
+
}
|
|
799
|
+
if (currentDeclarationSuite.markedPending) {
|
|
800
|
+
suite.pend();
|
|
801
|
+
}
|
|
713
802
|
addSpecsToSuite(suite, specDefinitions);
|
|
714
803
|
return suite;
|
|
715
804
|
};
|
|
716
805
|
|
|
717
806
|
this.xdescribe = function(description, specDefinitions) {
|
|
718
|
-
var suite =
|
|
719
|
-
suite.
|
|
807
|
+
var suite = suiteFactory(description);
|
|
808
|
+
suite.pend();
|
|
809
|
+
addSpecsToSuite(suite, specDefinitions);
|
|
720
810
|
return suite;
|
|
721
811
|
};
|
|
722
812
|
|
|
@@ -822,19 +912,22 @@ getJasmineRequireObj().Env = function(j$) {
|
|
|
822
912
|
|
|
823
913
|
this.it = function(description, fn, timeout) {
|
|
824
914
|
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
|
|
915
|
+
if (currentDeclarationSuite.markedPending) {
|
|
916
|
+
spec.pend();
|
|
917
|
+
}
|
|
825
918
|
currentDeclarationSuite.addChild(spec);
|
|
826
919
|
return spec;
|
|
827
920
|
};
|
|
828
921
|
|
|
829
922
|
this.xit = function() {
|
|
830
923
|
var spec = this.it.apply(this, arguments);
|
|
831
|
-
spec.pend();
|
|
924
|
+
spec.pend('Temporarily disabled with xit');
|
|
832
925
|
return spec;
|
|
833
926
|
};
|
|
834
927
|
|
|
835
|
-
this.fit = function(){
|
|
836
|
-
var spec =
|
|
837
|
-
|
|
928
|
+
this.fit = function(description, fn, timeout){
|
|
929
|
+
var spec = specFactory(description, fn, currentDeclarationSuite, timeout);
|
|
930
|
+
currentDeclarationSuite.addChild(spec);
|
|
838
931
|
focusedRunnables.push(spec.id);
|
|
839
932
|
unfocusAncestor();
|
|
840
933
|
return spec;
|
|
@@ -918,6 +1011,7 @@ getJasmineRequireObj().JsApiReporter = function() {
|
|
|
918
1011
|
|
|
919
1012
|
this.started = false;
|
|
920
1013
|
this.finished = false;
|
|
1014
|
+
this.runDetails = {};
|
|
921
1015
|
|
|
922
1016
|
this.jasmineStarted = function() {
|
|
923
1017
|
this.started = true;
|
|
@@ -927,8 +1021,9 @@ getJasmineRequireObj().JsApiReporter = function() {
|
|
|
927
1021
|
|
|
928
1022
|
var executionTime;
|
|
929
1023
|
|
|
930
|
-
this.jasmineDone = function() {
|
|
1024
|
+
this.jasmineDone = function(runDetails) {
|
|
931
1025
|
this.finished = true;
|
|
1026
|
+
this.runDetails = runDetails;
|
|
932
1027
|
executionTime = timer.elapsed();
|
|
933
1028
|
status = 'done';
|
|
934
1029
|
};
|
|
@@ -1606,6 +1701,8 @@ getJasmineRequireObj().pp = function(j$) {
|
|
|
1606
1701
|
this.emitScalar('HTMLNode');
|
|
1607
1702
|
} else if (value instanceof Date) {
|
|
1608
1703
|
this.emitScalar('Date(' + value + ')');
|
|
1704
|
+
} else if (value.toString && typeof value === 'object' && !(value instanceof Array) && value.toString !== Object.prototype.toString) {
|
|
1705
|
+
this.emitScalar(value.toString());
|
|
1609
1706
|
} else if (j$.util.arrayContains(this.seen, value)) {
|
|
1610
1707
|
this.emitScalar('<circular reference: ' + (j$.isArray_(value) ? 'Array' : 'Object') + '>');
|
|
1611
1708
|
} else if (j$.isArray_(value) || j$.isA_('Object', value)) {
|
|
@@ -1810,7 +1907,7 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
|
|
1810
1907
|
if (queueableFn.timeout) {
|
|
1811
1908
|
timeoutId = Function.prototype.apply.apply(self.timeout.setTimeout, [j$.getGlobal(), [function() {
|
|
1812
1909
|
var error = new Error('Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.');
|
|
1813
|
-
onException(error
|
|
1910
|
+
onException(error);
|
|
1814
1911
|
next();
|
|
1815
1912
|
}, queueableFn.timeout()]]);
|
|
1816
1913
|
}
|
|
@@ -1823,12 +1920,12 @@ getJasmineRequireObj().QueueRunner = function(j$) {
|
|
|
1823
1920
|
}
|
|
1824
1921
|
}
|
|
1825
1922
|
|
|
1826
|
-
function onException(e
|
|
1923
|
+
function onException(e) {
|
|
1827
1924
|
self.onException(e);
|
|
1828
1925
|
}
|
|
1829
1926
|
|
|
1830
1927
|
function handleException(e, queueableFn) {
|
|
1831
|
-
onException(e
|
|
1928
|
+
onException(e);
|
|
1832
1929
|
if (!self.catchException(e)) {
|
|
1833
1930
|
//TODO: set a var when we catch an exception and
|
|
1834
1931
|
//use a finally block to close the loop in a nice way..
|
|
@@ -1900,6 +1997,17 @@ getJasmineRequireObj().SpyRegistry = function(j$) {
|
|
|
1900
1997
|
throw new Error(methodName + ' has already been spied upon');
|
|
1901
1998
|
}
|
|
1902
1999
|
|
|
2000
|
+
var descriptor;
|
|
2001
|
+
try {
|
|
2002
|
+
descriptor = Object.getOwnPropertyDescriptor(obj, methodName);
|
|
2003
|
+
} catch(e) {
|
|
2004
|
+
// IE 8 doesn't support `definePropery` on non-DOM nodes
|
|
2005
|
+
}
|
|
2006
|
+
|
|
2007
|
+
if (descriptor && !(descriptor.writable || descriptor.set)) {
|
|
2008
|
+
throw new Error(methodName + ' is not declared writable or has no setter');
|
|
2009
|
+
}
|
|
2010
|
+
|
|
1903
2011
|
var spy = j$.createSpy(methodName, obj[methodName]);
|
|
1904
2012
|
|
|
1905
2013
|
currentSpies().push({
|
|
@@ -2030,6 +2138,10 @@ getJasmineRequireObj().Suite = function(j$) {
|
|
|
2030
2138
|
this.disabled = true;
|
|
2031
2139
|
};
|
|
2032
2140
|
|
|
2141
|
+
Suite.prototype.pend = function(message) {
|
|
2142
|
+
this.markedPending = true;
|
|
2143
|
+
};
|
|
2144
|
+
|
|
2033
2145
|
Suite.prototype.beforeEach = function(fn) {
|
|
2034
2146
|
this.beforeFns.unshift(fn);
|
|
2035
2147
|
};
|
|
@@ -2055,6 +2167,10 @@ getJasmineRequireObj().Suite = function(j$) {
|
|
|
2055
2167
|
return 'disabled';
|
|
2056
2168
|
}
|
|
2057
2169
|
|
|
2170
|
+
if (this.markedPending) {
|
|
2171
|
+
return 'pending';
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2058
2174
|
if (this.result.failedExpectations.length > 0) {
|
|
2059
2175
|
return 'failed';
|
|
2060
2176
|
} else {
|
|
@@ -2184,6 +2300,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2184
2300
|
queueRunnerFactory = attrs.queueRunnerFactory,
|
|
2185
2301
|
nodeStart = attrs.nodeStart || function() {},
|
|
2186
2302
|
nodeComplete = attrs.nodeComplete || function() {},
|
|
2303
|
+
orderChildren = attrs.orderChildren || function(node) { return node.children; },
|
|
2187
2304
|
stats = { valid: true },
|
|
2188
2305
|
processed = false,
|
|
2189
2306
|
defaultMin = Infinity,
|
|
@@ -2208,6 +2325,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2208
2325
|
|
|
2209
2326
|
queueRunnerFactory({
|
|
2210
2327
|
queueableFns: childFns,
|
|
2328
|
+
userContext: tree.sharedUserContext(),
|
|
2211
2329
|
onException: function() {
|
|
2212
2330
|
tree.onException.apply(tree, arguments);
|
|
2213
2331
|
},
|
|
@@ -2246,8 +2364,10 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2246
2364
|
} else {
|
|
2247
2365
|
var hasExecutableChild = false;
|
|
2248
2366
|
|
|
2249
|
-
|
|
2250
|
-
|
|
2367
|
+
var orderedChildren = orderChildren(node);
|
|
2368
|
+
|
|
2369
|
+
for (var i = 0; i < orderedChildren.length; i++) {
|
|
2370
|
+
var child = orderedChildren[i];
|
|
2251
2371
|
|
|
2252
2372
|
processNode(child, parentEnabled);
|
|
2253
2373
|
|
|
@@ -2264,7 +2384,7 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2264
2384
|
executable: hasExecutableChild
|
|
2265
2385
|
};
|
|
2266
2386
|
|
|
2267
|
-
segmentChildren(node, stats[node.id], executableIndex);
|
|
2387
|
+
segmentChildren(node, orderedChildren, stats[node.id], executableIndex);
|
|
2268
2388
|
|
|
2269
2389
|
if (!node.canBeReentered() && stats[node.id].segments.length > 1) {
|
|
2270
2390
|
stats = { valid: false };
|
|
@@ -2280,11 +2400,11 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2280
2400
|
return executableIndex === undefined ? defaultMax : executableIndex;
|
|
2281
2401
|
}
|
|
2282
2402
|
|
|
2283
|
-
function segmentChildren(node, nodeStats, executableIndex) {
|
|
2403
|
+
function segmentChildren(node, orderedChildren, nodeStats, executableIndex) {
|
|
2284
2404
|
var currentSegment = { index: 0, owner: node, nodes: [], min: startingMin(executableIndex), max: startingMax(executableIndex) },
|
|
2285
2405
|
result = [currentSegment],
|
|
2286
2406
|
lastMax = defaultMax,
|
|
2287
|
-
orderedChildSegments = orderChildSegments(
|
|
2407
|
+
orderedChildSegments = orderChildSegments(orderedChildren);
|
|
2288
2408
|
|
|
2289
2409
|
function isSegmentBoundary(minIndex) {
|
|
2290
2410
|
return lastMax !== defaultMax && minIndex !== defaultMin && lastMax < minIndex - 1;
|
|
@@ -2310,30 +2430,29 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2310
2430
|
}
|
|
2311
2431
|
|
|
2312
2432
|
function orderChildSegments(children) {
|
|
2313
|
-
var
|
|
2433
|
+
var specifiedOrder = [],
|
|
2434
|
+
unspecifiedOrder = [];
|
|
2314
2435
|
|
|
2315
2436
|
for (var i = 0; i < children.length; i++) {
|
|
2316
2437
|
var child = children[i],
|
|
2317
2438
|
segments = stats[child.id].segments;
|
|
2318
2439
|
|
|
2319
2440
|
for (var j = 0; j < segments.length; j++) {
|
|
2320
|
-
|
|
2321
|
-
}
|
|
2322
|
-
}
|
|
2323
|
-
|
|
2324
|
-
result.sort(function(a, b) {
|
|
2325
|
-
if (a.min === null) {
|
|
2326
|
-
return b.min === null ? 0 : 1;
|
|
2327
|
-
}
|
|
2441
|
+
var seg = segments[j];
|
|
2328
2442
|
|
|
2329
|
-
|
|
2330
|
-
|
|
2443
|
+
if (seg.min === defaultMin) {
|
|
2444
|
+
unspecifiedOrder.push(seg);
|
|
2445
|
+
} else {
|
|
2446
|
+
specifiedOrder.push(seg);
|
|
2447
|
+
}
|
|
2331
2448
|
}
|
|
2449
|
+
}
|
|
2332
2450
|
|
|
2451
|
+
specifiedOrder.sort(function(a, b) {
|
|
2333
2452
|
return a.min - b.min;
|
|
2334
2453
|
});
|
|
2335
2454
|
|
|
2336
|
-
return
|
|
2455
|
+
return specifiedOrder.concat(unspecifiedOrder);
|
|
2337
2456
|
}
|
|
2338
2457
|
|
|
2339
2458
|
function executeNode(node, segmentNumber) {
|
|
@@ -2384,6 +2503,12 @@ getJasmineRequireObj().TreeProcessor = function() {
|
|
|
2384
2503
|
getJasmineRequireObj().Any = function(j$) {
|
|
2385
2504
|
|
|
2386
2505
|
function Any(expectedObject) {
|
|
2506
|
+
if (typeof expectedObject === 'undefined') {
|
|
2507
|
+
throw new TypeError(
|
|
2508
|
+
'jasmine.any() expects to be passed a constructor function. ' +
|
|
2509
|
+
'Please pass one or use jasmine.anything() to match any object.'
|
|
2510
|
+
);
|
|
2511
|
+
}
|
|
2387
2512
|
this.expectedObject = expectedObject;
|
|
2388
2513
|
}
|
|
2389
2514
|
|
|
@@ -2976,6 +3101,37 @@ getJasmineRequireObj().toHaveBeenCalled = function(j$) {
|
|
|
2976
3101
|
return toHaveBeenCalled;
|
|
2977
3102
|
};
|
|
2978
3103
|
|
|
3104
|
+
getJasmineRequireObj().toHaveBeenCalledTimes = function(j$) {
|
|
3105
|
+
|
|
3106
|
+
function toHaveBeenCalledTimes() {
|
|
3107
|
+
return {
|
|
3108
|
+
compare: function(actual, expected) {
|
|
3109
|
+
if (!j$.isSpy(actual)) {
|
|
3110
|
+
throw new Error('Expected a spy, but got ' + j$.pp(actual) + '.');
|
|
3111
|
+
}
|
|
3112
|
+
|
|
3113
|
+
var args = Array.prototype.slice.call(arguments, 0),
|
|
3114
|
+
result = { pass: false };
|
|
3115
|
+
|
|
3116
|
+
if(!expected){
|
|
3117
|
+
throw new Error('Expected times failed is required as an argument.');
|
|
3118
|
+
}
|
|
3119
|
+
|
|
3120
|
+
actual = args[0];
|
|
3121
|
+
var calls = actual.calls.count();
|
|
3122
|
+
var timesMessage = expected === 1 ? 'once' : expected + ' times';
|
|
3123
|
+
result.pass = calls === expected;
|
|
3124
|
+
result.message = result.pass ?
|
|
3125
|
+
'Expected spy ' + actual.and.identity() + ' not to have been called ' + timesMessage + '. It was called ' + calls + ' times.' :
|
|
3126
|
+
'Expected spy ' + actual.and.identity() + ' to have been called ' + timesMessage + '. It was called ' + calls + ' times.';
|
|
3127
|
+
return result;
|
|
3128
|
+
}
|
|
3129
|
+
};
|
|
3130
|
+
}
|
|
3131
|
+
|
|
3132
|
+
return toHaveBeenCalledTimes;
|
|
3133
|
+
};
|
|
3134
|
+
|
|
2979
3135
|
getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
|
|
2980
3136
|
|
|
2981
3137
|
function toHaveBeenCalledWith(util, customEqualityTesters) {
|
|
@@ -3079,7 +3235,7 @@ getJasmineRequireObj().toThrow = function(j$) {
|
|
|
3079
3235
|
};
|
|
3080
3236
|
|
|
3081
3237
|
getJasmineRequireObj().toThrowError = function(j$) {
|
|
3082
|
-
function toThrowError (
|
|
3238
|
+
function toThrowError () {
|
|
3083
3239
|
return {
|
|
3084
3240
|
compare: function(actual) {
|
|
3085
3241
|
var threw = false,
|
|
@@ -3294,5 +3450,5 @@ getJasmineRequireObj().interface = function(jasmine, env) {
|
|
|
3294
3450
|
};
|
|
3295
3451
|
|
|
3296
3452
|
getJasmineRequireObj().version = function() {
|
|
3297
|
-
return '2.
|
|
3453
|
+
return '2.4.1';
|
|
3298
3454
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jasmine-core",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.1",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/jasmine/jasmine.git"
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
"homepage": "http://jasmine.github.io",
|
|
20
20
|
"main": "./lib/jasmine-core.js",
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"glob": "~
|
|
22
|
+
"glob": "~5.0.13",
|
|
23
23
|
"grunt": "~0.4.1",
|
|
24
24
|
"grunt-cli": "^0.1.13",
|
|
25
25
|
"grunt-contrib-compass": "~0.6.0",
|
|
26
26
|
"grunt-contrib-compress": "~0.5.2",
|
|
27
27
|
"grunt-contrib-concat": "~0.3.0",
|
|
28
28
|
"grunt-contrib-jshint": "~0.7.0",
|
|
29
|
-
"jasmine": "
|
|
29
|
+
"jasmine": "git://github.com/jasmine/jasmine-npm.git",
|
|
30
30
|
"load-grunt-tasks": "^0.4.0",
|
|
31
31
|
"shelljs": "~0.1.4",
|
|
32
32
|
"temp": "~0.8.1"
|
package/GOALS_2.0.md
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# (Vague) Jasmine 2.0 Goals/(Guidelines)
|
|
2
|
-
|
|
3
|
-
1. No globals!
|
|
4
|
-
* jasmine library is entirely inside `jasmine` namespace
|
|
5
|
-
* globals required for backwards compatibility should be added in `boot.js` (EG, var describe = jasmine.getCurrentEnv().describe lives in boot.js)
|
|
6
|
-
1. Don't use properties as getters. Use methods.
|
|
7
|
-
* Properties aren't encapsulated -- can be mutated, unsafe.
|
|
8
|
-
1. Reporters get data objects (no methods).
|
|
9
|
-
* easier to refactor as needed
|
|
10
|
-
1. More unit tests - fewer nasty integration tests
|
|
11
|
-
|
|
12
|
-
## Remaining non-story-able work:
|
|
13
|
-
* Make a `TODO` list
|
|
14
|
-
|
|
15
|
-
### Hard
|
|
16
|
-
* Finish killing Globals
|
|
17
|
-
* Guidelines:
|
|
18
|
-
* New objects can have constructors on `jasmine`
|
|
19
|
-
* Top level functions can live on `jasmine`
|
|
20
|
-
* Top level (i.e., any `jasmine` property) should only be referenced inside the `Env` constructor
|
|
21
|
-
* should better allow any object to get jasmine code (Node-friendly)
|
|
22
|
-
* review everything in base.js
|
|
23
|
-
* Remove isA functions:
|
|
24
|
-
* isArray_ - used in matchers and spies
|
|
25
|
-
* isString_
|
|
26
|
-
* isDOMNode_
|
|
27
|
-
* isA_
|
|
28
|
-
* unimplementedMethod_, used by PrettyPrinter
|
|
29
|
-
* jasmine.util should be util closure inside of env or something
|
|
30
|
-
* argsToArray is used for Spies and matching (and can be replaced)
|
|
31
|
-
* inherit is only for PrettyPrinter now
|
|
32
|
-
* formatException is used only inside Env/spec
|
|
33
|
-
* htmlEscape is for messages in matchers - should this be HTML at all?
|
|
34
|
-
* Pretty printing
|
|
35
|
-
* move away from pretty printer and to a JSON.stringify implementation?
|
|
36
|
-
* jasmineToString vs. custom toString ?
|
|
37
|
-
|
|
38
|
-
### Easy
|
|
39
|
-
|
|
40
|
-
* unify params to ctors: options vs. attrs.
|
|
41
|
-
* This will be a lot of the TODOs, but clean up & simplify Env.js (is this a 2.1 task?)
|
|
42
|
-
|
|
43
|
-
### DONE
|
|
44
|
-
* Matchers improvements
|
|
45
|
-
* unit testable DONE
|
|
46
|
-
* better equality (from Underscore) DONE
|
|
47
|
-
* addCustomMatchers doesn't explode stack DONE
|
|
48
|
-
* refactor equals function so that it just loops & recurses over a list of fns (custom and built-in) - 2.1? (Tracker story)
|
|
49
|
-
* Spies
|
|
50
|
-
* break these out into their own tests/file DONE
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
## Other Topics
|
|
54
|
-
|
|
55
|
-
* Docs
|
|
56
|
-
* Docco has gone over well. Should we annotate all the sources and then have Pages be more complex, having tutorials and annotated source like Backbone? Are we small enough?
|
|
57
|
-
* Need examples for:
|
|
58
|
-
* How to build a Custom Matcher
|
|
59
|
-
* How to add a custom equality tester
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|