scratch – Blame information for rev 58

Subversion Repositories:
Rev:
Rev Author Line No. Line
58 office 1 /*
2 Copyright (c) 2008-2015 Pivotal Labs
3  
4 Permission is hereby granted, free of charge, to any person obtaining
5 a copy of this software and associated documentation files (the
6 "Software"), to deal in the Software without restriction, including
7 without limitation the rights to use, copy, modify, merge, publish,
8 distribute, sublicense, and/or sell copies of the Software, and to
9 permit persons to whom the Software is furnished to do so, subject to
10 the following conditions:
11  
12 The above copyright notice and this permission notice shall be
13 included in all copies or substantial portions of the Software.
14  
15 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23 jasmineRequire.html = function(j$) {
24 j$.ResultsNode = jasmineRequire.ResultsNode();
25 j$.HtmlReporter = jasmineRequire.HtmlReporter(j$);
26 j$.QueryString = jasmineRequire.QueryString();
27 j$.HtmlSpecFilter = jasmineRequire.HtmlSpecFilter();
28 };
29  
30 jasmineRequire.HtmlReporter = function(j$) {
31  
32 var noopTimer = {
33 start: function() {},
34 elapsed: function() { return 0; }
35 };
36  
37 function HtmlReporter(options) {
38 var env = options.env || {},
39 getContainer = options.getContainer,
40 createElement = options.createElement,
41 createTextNode = options.createTextNode,
42 onRaiseExceptionsClick = options.onRaiseExceptionsClick || function() {},
43 onThrowExpectationsClick = options.onThrowExpectationsClick || function() {},
44 addToExistingQueryString = options.addToExistingQueryString || defaultQueryString,
45 timer = options.timer || noopTimer,
46 results = [],
47 specsExecuted = 0,
48 failureCount = 0,
49 pendingSpecCount = 0,
50 htmlReporterMain,
51 symbols,
52 failedSuites = [];
53  
54 this.initialize = function() {
55 clearPrior();
56 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)
60 ),
61 createDom('ul', {className: 'symbol-summary'}),
62 createDom('div', {className: 'alert'}),
63 createDom('div', {className: 'results'},
64 createDom('div', {className: 'failures'})
65 )
66 );
67 getContainer().appendChild(htmlReporterMain);
68  
69 symbols = find('.symbol-summary');
70 };
71  
72 var totalSpecsDefined;
73 this.jasmineStarted = function(options) {
74 totalSpecsDefined = options.totalSpecsDefined || 0;
75 timer.start();
76 };
77  
78 var summary = createDom('div', {className: 'summary'});
79  
80 var topResults = new j$.ResultsNode({}, '', null),
81 currentParent = topResults;
82  
83 this.suiteStarted = function(result) {
84 currentParent.addChild(result, 'suite');
85 currentParent = currentParent.last();
86 };
87  
88 this.suiteDone = function(result) {
89 if (result.status == 'failed') {
90 failedSuites.push(result);
91 }
92  
93 if (currentParent == topResults) {
94 return;
95 }
96  
97 currentParent = currentParent.parent;
98 };
99  
100 this.specStarted = function(result) {
101 currentParent.addChild(result, 'spec');
102 };
103  
104 var failures = [];
105 this.specDone = function(result) {
106 if(noExpectations(result) && typeof console !== 'undefined' && typeof console.error !== 'undefined') {
107 console.error('Spec \'' + result.fullName + '\' has no expectations.');
108 }
109  
110 if (result.status != 'disabled') {
111 specsExecuted++;
112 }
113  
114 symbols.appendChild(createDom('li', {
115 className: noExpectations(result) ? 'empty' : result.status,
116 id: 'spec_' + result.id,
117 title: result.fullName
118 }
119 ));
120  
121 if (result.status == 'failed') {
122 failureCount++;
123  
124 var failure =
125 createDom('div', {className: 'spec-detail failed'},
126 createDom('div', {className: 'description'},
127 createDom('a', {title: result.fullName, href: specHref(result)}, result.fullName)
128 ),
129 createDom('div', {className: 'messages'})
130 );
131 var messages = failure.childNodes[1];
132  
133 for (var i = 0; i < result.failedExpectations.length; i++) {
134 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));
137 }
138  
139 failures.push(failure);
140 }
141  
142 if (result.status == 'pending') {
143 pendingSpecCount++;
144 }
145 };
146  
147 this.jasmineDone = function() {
148 var banner = find('.banner');
149 var alert = find('.alert');
150 alert.appendChild(createDom('span', {className: 'duration'}, 'finished in ' + timer.elapsed() / 1000 + 's'));
151  
152 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('input', {
158 className: 'raise',
159 id: 'raise-exceptions',
160 type: 'checkbox'
161 }),
162 createDom('label', { className: 'label', 'for': 'raise-exceptions' }, 'raise exceptions')),
163 createDom('div', { className: 'throw-failures' },
164 createDom('input', {
165 className: 'throw',
166 id: 'throw-failures',
167 type: 'checkbox'
168 }),
169 createDom('label', { className: 'label', 'for': 'throw-failures' }, 'stop spec on expectation failure'))
170 )
171 ));
172  
173 var raiseCheckbox = find('#raise-exceptions');
174  
175 raiseCheckbox.checked = !env.catchingExceptions();
176 raiseCheckbox.onclick = onRaiseExceptionsClick;
177  
178 var throwCheckbox = find('#throw-failures');
179 throwCheckbox.checked = env.throwingExpectationFailures();
180 throwCheckbox.onclick = onThrowExpectationsClick;
181  
182 var optionsMenu = find('.run-options'),
183 optionsTrigger = optionsMenu.querySelector('.trigger'),
184 optionsPayload = optionsMenu.querySelector('.payload'),
185 isOpen = /\bopen\b/;
186  
187 optionsTrigger.onclick = function() {
188 if (isOpen.test(optionsPayload.className)) {
189 optionsPayload.className = optionsPayload.className.replace(isOpen, '');
190 } else {
191 optionsPayload.className += ' open';
192 }
193 };
194  
195 if (specsExecuted < totalSpecsDefined) {
196 < totalSpecsDefined) { var skippedMessage = 'Ran ' + specsExecuted + ' of ' + totalSpecsDefined + ' specs - run all';
197 < totalSpecsDefined) { alert.appendChild(
198 < totalSpecsDefined) { createDom('span', {className: 'bar skipped'},
199 < totalSpecsDefined) { createDom('a', {href: '?', title: 'Run all specs'}, skippedMessage)
200 < totalSpecsDefined) { )
201 < totalSpecsDefined) { );
202 < totalSpecsDefined) { }
203 < totalSpecsDefined) { var statusBarMessage = '';
204 < totalSpecsDefined) { var statusBarClassName = 'bar ';
205  
206 < totalSpecsDefined) { if (totalSpecsDefined > 0) {
207 < totalSpecsDefined) { statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
208 < totalSpecsDefined) { if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
209 < totalSpecsDefined) { statusBarClassName += (failureCount > 0) ? 'failed' : 'passed';
210 < totalSpecsDefined) { } else {
211 < totalSpecsDefined) { statusBarClassName += 'skipped';
212 < totalSpecsDefined) { statusBarMessage += 'No specs found';
213 < totalSpecsDefined) { }
214  
215 < totalSpecsDefined) { alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage));
216  
217 < totalSpecsDefined) { for(i = 0; i < failedSuites.length; i++) {
218 < totalSpecsDefined) {< failedSuites.length; i++) { var failedSuite = failedSuites[i];
219 < totalSpecsDefined) {< failedSuites.length; i++) { for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
220 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { var errorBarMessage = 'AfterAll ' + failedSuite.failedExpectations[j].message;
221 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { var errorBarClassName = 'bar errored';
222 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage));
223 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { }
224 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { }
225  
226 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { var results = find('.results');
227 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { results.appendChild(summary);
228  
229 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { summaryList(topResults, summary);
230  
231 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { function summaryList(resultsTree, domParent) {
232 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { var specListNode;
233 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) { for (var i = 0; i < resultsTree.children.length; i++) {
234 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { var resultNode = resultsTree.children[i];
235 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if (resultNode.type == 'suite') {
236 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { var suiteListNode = createDom('ul', {className: 'suite', id: 'suite-' + resultNode.result.id},
237 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('li', {className: 'suite-detail'},
238 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('a', {href: specHref(resultNode.result)}, resultNode.result.description)
239 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { )
240 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { );
241  
242 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { summaryList(resultNode, suiteListNode);
243 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { domParent.appendChild(suiteListNode);
244 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
245 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if (resultNode.type == 'spec') {
246 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if (domParent.getAttribute('class') != 'specs') {
247 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { specListNode = createDom('ul', {className: 'specs'});
248 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { domParent.appendChild(specListNode);
249 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
250 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { var specDescription = resultNode.result.description;
251 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if(noExpectations(resultNode.result)) {
252 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { specDescription = 'SPEC HAS NO EXPECTATIONS ' + specDescription;
253 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
254 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if(resultNode.result.status === 'pending' && resultNode.result.pendingReason !== '') {
255 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { specDescription = specDescription + ' PENDING WITH MESSAGE: ' + resultNode.result.pendingReason;
256 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
257 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { specListNode.appendChild(
258 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('li', {
259 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { className: resultNode.result.status,
260 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { id: 'spec-' + resultNode.result.id
261 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { },
262 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('a', {href: specHref(resultNode.result)}, specDescription)
263 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { )
264 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { );
265 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
266 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
267 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { }
268  
269 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { if (failures.length) {
270 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { alert.appendChild(
271 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('span', {className: 'menu bar spec-list'},
272 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('span', {}, 'Spec List | '),
273 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('a', {className: 'failures-menu', href: '#'}, 'Failures')));
274 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { alert.appendChild(
275 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('span', {className: 'menu bar failure-list'},
276 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('a', {className: 'spec-list-menu', href: '#'}, 'Spec List'),
277 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { createDom('span', {}, ' | Failures ')));
278  
279 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { find('.failures-menu').onclick = function() {
280 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { setMenuModeTo('failure-list');
281 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { };
282 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { find('.spec-list-menu').onclick = function() {
283 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { setMenuModeTo('spec-list');
284 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { };
285  
286 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { setMenuModeTo('failure-list');
287  
288 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { var failureNode = find('.failures');
289 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) { for (var i = 0; i < failures.length; i++) {
290 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { failureNode.appendChild(failures[i]);
291 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { }
292 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { }
293 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { };
294  
295 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { return this;
296  
297 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { function find(selector) {
298 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { return getContainer().querySelector('.jasmine_html-reporter ' + selector);
299 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { }
300  
301 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { function clearPrior() {
302 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { // return the reporter
303 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { var oldReporter = find('');
304  
305 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { if(oldReporter) {
306 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { getContainer().removeChild(oldReporter);
307 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { }
308 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { }
309  
310 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { function createDom(type, attrs, childrenVarArgs) {
311 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { var el = createElement(type);
312  
313 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) { for (var i = 2; i < arguments.length; i++) {
314 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var child = arguments[i];
315  
316 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { if (typeof child === 'string') {
317 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { el.appendChild(createTextNode(child));
318 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { } else {
319 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { if (child) {
320 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { el.appendChild(child);
321 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
322 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
323 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
324  
325 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { for (var attr in attrs) {
326 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { if (attr == 'className') {
327 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { el[attr] = attrs[attr];
328 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { } else {
329 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { el.setAttribute(attr, attrs[attr]);
330 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
331 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
332  
333 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return el;
334 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
335  
336 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function pluralize(singular, count) {
337 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var word = (count == 1 ? singular : singular + 's');
338  
339 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return '' + count + ' ' + word;
340 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
341  
342 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function specHref(result) {
343 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return addToExistingQueryString('spec', result.fullName);
344 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
345  
346 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function defaultQueryString(key, value) {
347 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return '?' + key + '=' + value;
348 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
349  
350 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function setMenuModeTo(mode) {
351 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { htmlReporterMain.setAttribute('class', 'jasmine_html-reporter ' + mode);
352 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
353  
354 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function noExpectations(result) {
355 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return (result.failedExpectations.length + result.passedExpectations.length) === 0 &&
356 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { result.status === 'passed';
357 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
358 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
359  
360 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return HtmlReporter;
361 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {};
362  
363 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {jasmineRequire.HtmlSpecFilter = function() {
364 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function HtmlSpecFilter(options) {
365 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var filterString = options && options.filterString() && options.filterString().replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
366 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var filterPattern = new RegExp(filterString);
367  
368 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.matches = function(specName) {
369 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return filterPattern.test(specName);
370 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
371 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
372  
373 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return HtmlSpecFilter;
374 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {};
375  
376 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {jasmineRequire.ResultsNode = function() {
377 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function ResultsNode(result, type, parent) {
378 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.result = result;
379 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.type = type;
380 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.parent = parent;
381  
382 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.children = [];
383  
384 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.addChild = function(result, type) {
385 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.children.push(new ResultsNode(result, type, this));
386 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
387  
388 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.last = function() {
389 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return this.children[this.children.length - 1];
390 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
391 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
392  
393 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return ResultsNode;
394 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {};
395  
396 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {jasmineRequire.QueryString = function() {
397 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function QueryString(options) {
398  
399 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.navigateWithNewParam = function(key, value) {
400 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { options.getWindowLocation().search = this.fullStringWithNewParam(key, value);
401 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
402  
403 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.fullStringWithNewParam = function(key, value) {
404 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var paramMap = queryStringToParamMap();
405 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { paramMap[key] = value;
406 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return toQueryString(paramMap);
407 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
408  
409 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { this.getParam = function(key) {
410 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return queryStringToParamMap()[key];
411 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { };
412  
413 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return this;
414  
415 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function toQueryString(paramMap) {
416 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var qStrPairs = [];
417 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { for (var prop in paramMap) {
418 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { qStrPairs.push(encodeURIComponent(prop) + '=' + encodeURIComponent(paramMap[prop]));
419 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
420 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { return '?' + qStrPairs.join('&');
421 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { }
422  
423 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { function queryStringToParamMap() {
424 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { var paramStr = options.getWindowLocation().search.substring(1),
425 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { params = [],
426 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { paramMap = {};
427  
428 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { if (paramStr.length > 0) {
429 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { params = paramStr.split('&');
430 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) { for (var i = 0; i < params.length; i++) {
431 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { var p = params[i].split('=');
432 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { var value = decodeURIComponent(p[1]);
433 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { if (value === 'true' || value === 'false') {
434 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { value = JSON.parse(value);
435 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { }
436 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { paramMap[decodeURIComponent(p[0])] = value;
437 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { }
438 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { }
439  
440 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { return paramMap;
441 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { }
442  
443 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { }
444  
445 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) { return QueryString;
446 < totalSpecsDefined) {< failedSuites.length; i++) {< failedSuite.failedExpectations.length; j++) {< resultsTree.children.length; i++) {< failures.length; i++) {< arguments.length; i++) {< params.length; i++) {};