evergreen 0.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +101 -3
- data/bin/evergreen +2 -2
- data/lib/evergreen.rb +14 -2
- data/lib/evergreen/evergreen.js +23 -0
- data/lib/evergreen/rails.rb +8 -0
- data/lib/evergreen/runner.rb +21 -14
- data/lib/evergreen/spec.rb +12 -33
- data/lib/evergreen/version.rb +1 -1
- data/lib/evergreen/views/list.erb +1 -1
- data/lib/evergreen/views/spec.erb +9 -22
- data/lib/jasmine/README.markdown +21 -28
- data/lib/jasmine/Rakefile +98 -68
- data/lib/jasmine/example/SpecRunner.html +27 -0
- data/lib/jasmine/example/spec/PlayerSpec.js +58 -0
- data/lib/jasmine/example/spec/SpecHelper.js +9 -0
- data/lib/jasmine/example/src/Player.js +22 -0
- data/lib/jasmine/example/src/Song.js +7 -0
- data/lib/jasmine/lib/jasmine-html.js +182 -0
- data/lib/jasmine/lib/{jasmine-0.10.4.js → jasmine.js} +127 -155
- data/lib/jasmine/spec/runner.html +4 -3
- data/lib/jasmine/spec/suites/BaseSpec.js +27 -0
- data/lib/jasmine/spec/suites/CustomMatchersSpec.js +0 -24
- data/lib/jasmine/spec/suites/EnvSpec.js +1 -1
- data/lib/jasmine/spec/suites/JsApiReporterSpec.js +16 -9
- data/lib/jasmine/spec/suites/MatchersSpec.js +49 -42
- data/lib/jasmine/spec/suites/MockClockSpec.js +4 -0
- data/lib/jasmine/spec/suites/MultiReporterSpec.js +23 -8
- data/lib/jasmine/spec/suites/PrettyPrintSpec.js +2 -2
- data/lib/jasmine/spec/suites/ReporterSpec.js +10 -14
- data/lib/jasmine/spec/suites/RunnerSpec.js +6 -6
- data/lib/jasmine/spec/suites/SpecRunningSpec.js +1 -1
- data/lib/jasmine/spec/suites/SpecSpec.js +15 -1
- data/lib/jasmine/spec/suites/SpySpec.js +3 -3
- data/lib/jasmine/spec/suites/TrivialReporterSpec.js +91 -14
- data/lib/jasmine/spec/suites/WaitsForBlockSpec.js +5 -6
- data/lib/jasmine/src/JsApiReporter.js +4 -6
- data/lib/jasmine/src/Matchers.js +19 -19
- data/lib/jasmine/src/MultiReporter.js +8 -1
- data/lib/jasmine/src/NestedResults.js +5 -5
- data/lib/jasmine/src/PrettyPrinter.js +2 -2
- data/lib/jasmine/src/Reporter.js +4 -0
- data/lib/jasmine/src/Spec.js +12 -8
- data/lib/jasmine/src/base.js +40 -44
- data/lib/jasmine/{lib → src/html}/TrivialReporter.js +17 -6
- data/lib/jasmine/src/html/jasmine.css +166 -0
- data/lib/jasmine/src/mock-timeout.js +22 -16
- data/lib/jasmine/src/version.json +2 -2
- data/lib/tasks/evergreen.rake +7 -0
- data/spec/evergreen_spec.rb +18 -0
- data/spec/fixtures/public/jquery.js +152 -0
- data/spec/fixtures/spec/javascripts/bar_spec.js +0 -0
- data/spec/fixtures/spec/javascripts/failing_spec.js +12 -0
- data/spec/fixtures/spec/javascripts/foo_spec.js +0 -0
- data/spec/fixtures/spec/javascripts/templates_spec.html +1 -0
- data/spec/fixtures/spec/javascripts/templates_spec.js +23 -0
- data/spec/fixtures/spec/javascripts/testing_spec.js +11 -0
- data/spec/fixtures/spec/javascripts/transactions_spec.js +14 -0
- data/spec/meta_spec.rb +17 -0
- data/spec/runner_spec.rb +35 -0
- data/spec/spec_helper.rb +33 -0
- data/spec/spec_spec.rb +30 -0
- metadata +64 -48
- data/lib/jasmine/doc/files.html +0 -460
- data/lib/jasmine/doc/index.html +0 -322
- data/lib/jasmine/doc/symbols/_global_.html +0 -918
- data/lib/jasmine/doc/symbols/jasmine.Block.html +0 -417
- data/lib/jasmine/doc/symbols/jasmine.Clock.html +0 -678
- data/lib/jasmine/doc/symbols/jasmine.Env.html +0 -1169
- data/lib/jasmine/doc/symbols/jasmine.JsApiReporter.html +0 -822
- data/lib/jasmine/doc/symbols/jasmine.Matchers.html +0 -1474
- data/lib/jasmine/doc/symbols/jasmine.MultiReporter.html +0 -394
- data/lib/jasmine/doc/symbols/jasmine.NestedResults.html +0 -710
- data/lib/jasmine/doc/symbols/jasmine.Reporter.html +0 -574
- data/lib/jasmine/doc/symbols/jasmine.Runner.html +0 -710
- data/lib/jasmine/doc/symbols/jasmine.Spec.html +0 -1253
- data/lib/jasmine/doc/symbols/jasmine.Spy.html +0 -855
- data/lib/jasmine/doc/symbols/jasmine.Suite.html +0 -705
- data/lib/jasmine/doc/symbols/jasmine.html +0 -1345
- data/lib/jasmine/doc/symbols/jasmine.util.html +0 -535
- data/lib/jasmine/doc/symbols/src/lib_TrivialReporter.js.html +0 -124
- data/lib/jasmine/doc/symbols/src/src_Block.js.html +0 -29
- data/lib/jasmine/doc/symbols/src/src_Env.js.html +0 -248
- data/lib/jasmine/doc/symbols/src/src_JsApiReporter.js.html +0 -111
- data/lib/jasmine/doc/symbols/src/src_Matchers.js.html +0 -344
- data/lib/jasmine/doc/symbols/src/src_MultiReporter.js.html +0 -36
- data/lib/jasmine/doc/symbols/src/src_NestedResults.js.html +0 -88
- data/lib/jasmine/doc/symbols/src/src_PrettyPrinter.js.html +0 -130
- data/lib/jasmine/doc/symbols/src/src_Queue.js.html +0 -102
- data/lib/jasmine/doc/symbols/src/src_Reporter.js.html +0 -35
- data/lib/jasmine/doc/symbols/src/src_Reporters.js.html +0 -51
- data/lib/jasmine/doc/symbols/src/src_Runner.js.html +0 -75
- data/lib/jasmine/doc/symbols/src/src_Spec.js.html +0 -214
- data/lib/jasmine/doc/symbols/src/src_Suite.js.html +0 -77
- data/lib/jasmine/doc/symbols/src/src_WaitsBlock.js.html +0 -21
- data/lib/jasmine/doc/symbols/src/src_WaitsForBlock.js.html +0 -45
- data/lib/jasmine/doc/symbols/src/src_base.js.html +0 -585
- data/lib/jasmine/doc/symbols/src/src_mock-timeout.js.html +0 -185
- data/lib/jasmine/doc/symbols/src/src_util.js.html +0 -75
- data/lib/jasmine/example/example_runner.html +0 -22
- data/lib/jasmine/example/spec/example_suite.js +0 -11
- data/lib/jasmine/spec/jasmine_helper.rb +0 -44
- data/lib/jasmine/spec/jasmine_spec.rb +0 -31
- data/lib/jasmine/spec/saucelabs.yml +0 -24
- data/lib/jasmine/src/Reporters.js +0 -43
|
@@ -21,8 +21,8 @@ jasmine.PrettyPrinter.prototype.format = function(value) {
|
|
|
21
21
|
this.emitScalar('undefined');
|
|
22
22
|
} else if (value === null) {
|
|
23
23
|
this.emitScalar('null');
|
|
24
|
-
} else if (value
|
|
25
|
-
this.emitScalar('<
|
|
24
|
+
} else if (value === jasmine.getGlobal()) {
|
|
25
|
+
this.emitScalar('<global>');
|
|
26
26
|
} else if (value instanceof jasmine.Matchers.Any) {
|
|
27
27
|
this.emitScalar(value.toString());
|
|
28
28
|
} else if (typeof value === 'string') {
|
data/lib/jasmine/src/Reporter.js
CHANGED
|
@@ -17,6 +17,10 @@ jasmine.Reporter.prototype.reportRunnerResults = function(runner) {
|
|
|
17
17
|
jasmine.Reporter.prototype.reportSuiteResults = function(suite) {
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
//noinspection JSUnusedLocalSymbols
|
|
21
|
+
jasmine.Reporter.prototype.reportSpecStarting = function(spec) {
|
|
22
|
+
};
|
|
23
|
+
|
|
20
24
|
//noinspection JSUnusedLocalSymbols
|
|
21
25
|
jasmine.Reporter.prototype.reportSpecResults = function(spec) {
|
|
22
26
|
};
|
data/lib/jasmine/src/Spec.js
CHANGED
|
@@ -37,13 +37,13 @@ jasmine.Spec.prototype.results = function() {
|
|
|
37
37
|
return this.results_;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
jasmine.Spec.prototype.
|
|
46
|
-
return this.results_;
|
|
40
|
+
/**
|
|
41
|
+
* All parameters are pretty-printed and concatenated together, then written to the spec's output.
|
|
42
|
+
*
|
|
43
|
+
* Be careful not to leave calls to <code>jasmine.log</code> in production code.
|
|
44
|
+
*/
|
|
45
|
+
jasmine.Spec.prototype.log = function() {
|
|
46
|
+
return this.results_.log(arguments);
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
jasmine.Spec.prototype.runs = function (func) {
|
|
@@ -60,6 +60,9 @@ jasmine.Spec.prototype.addToQueue = function (block) {
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
+
/**
|
|
64
|
+
* @param {jasmine.ExpectationResult} result
|
|
65
|
+
*/
|
|
63
66
|
jasmine.Spec.prototype.addMatcherResult = function(result) {
|
|
64
67
|
this.results_.addResult(result);
|
|
65
68
|
};
|
|
@@ -131,7 +134,8 @@ jasmine.Spec.prototype.execute = function(onComplete) {
|
|
|
131
134
|
spec.finish(onComplete);
|
|
132
135
|
return;
|
|
133
136
|
}
|
|
134
|
-
|
|
137
|
+
|
|
138
|
+
this.env.reporter.reportSpecStarting(this);
|
|
135
139
|
|
|
136
140
|
spec.env.currentSpec = spec;
|
|
137
141
|
|
data/lib/jasmine/src/base.js
CHANGED
|
@@ -26,6 +26,14 @@ jasmine.undefined = jasmine.___undefined___;
|
|
|
26
26
|
*/
|
|
27
27
|
jasmine.DEFAULT_UPDATE_INTERVAL = 250;
|
|
28
28
|
|
|
29
|
+
jasmine.getGlobal = function() {
|
|
30
|
+
function getGlobal() {
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return getGlobal();
|
|
35
|
+
};
|
|
36
|
+
|
|
29
37
|
/**
|
|
30
38
|
* Allows for bound functions to be compared. Internal use only.
|
|
31
39
|
*
|
|
@@ -42,35 +50,41 @@ jasmine.bindOriginal_ = function(base, name) {
|
|
|
42
50
|
};
|
|
43
51
|
} else {
|
|
44
52
|
// IE support
|
|
45
|
-
return
|
|
53
|
+
return jasmine.getGlobal()[name];
|
|
46
54
|
}
|
|
47
55
|
};
|
|
48
56
|
|
|
49
|
-
jasmine.setTimeout = jasmine.bindOriginal_(
|
|
50
|
-
jasmine.clearTimeout = jasmine.bindOriginal_(
|
|
51
|
-
jasmine.setInterval = jasmine.bindOriginal_(
|
|
52
|
-
jasmine.clearInterval = jasmine.bindOriginal_(
|
|
57
|
+
jasmine.setTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'setTimeout');
|
|
58
|
+
jasmine.clearTimeout = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearTimeout');
|
|
59
|
+
jasmine.setInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'setInterval');
|
|
60
|
+
jasmine.clearInterval = jasmine.bindOriginal_(jasmine.getGlobal(), 'clearInterval');
|
|
53
61
|
|
|
54
|
-
jasmine.MessageResult = function(
|
|
55
|
-
this.type = '
|
|
56
|
-
this.
|
|
62
|
+
jasmine.MessageResult = function(values) {
|
|
63
|
+
this.type = 'log';
|
|
64
|
+
this.values = values;
|
|
57
65
|
this.trace = new Error(); // todo: test better
|
|
58
66
|
};
|
|
59
67
|
|
|
60
68
|
jasmine.MessageResult.prototype.toString = function() {
|
|
61
|
-
|
|
69
|
+
var text = "";
|
|
70
|
+
for(var i = 0; i < this.values.length; i++) {
|
|
71
|
+
if (i > 0) text += " ";
|
|
72
|
+
if (jasmine.isString_(this.values[i])) {
|
|
73
|
+
text += this.values[i];
|
|
74
|
+
} else {
|
|
75
|
+
text += jasmine.pp(this.values[i]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return text;
|
|
62
79
|
};
|
|
63
80
|
|
|
64
81
|
jasmine.ExpectationResult = function(params) {
|
|
65
|
-
this.type = '
|
|
82
|
+
this.type = 'expect';
|
|
66
83
|
this.matcherName = params.matcherName;
|
|
67
84
|
this.passed_ = params.passed;
|
|
68
85
|
this.expected = params.expected;
|
|
69
86
|
this.actual = params.actual;
|
|
70
87
|
|
|
71
|
-
/** @deprecated */
|
|
72
|
-
this.details = params.details;
|
|
73
|
-
|
|
74
88
|
this.message = this.passed_ ? 'Passed.' : params.message;
|
|
75
89
|
this.trace = this.passed_ ? '' : new Error(this.message);
|
|
76
90
|
};
|
|
@@ -158,7 +172,7 @@ jasmine.isDomNode = function(obj) {
|
|
|
158
172
|
*
|
|
159
173
|
* @example
|
|
160
174
|
* // don't care about which function is passed in, as long as it's a function
|
|
161
|
-
* expect(mySpy).
|
|
175
|
+
* expect(mySpy).toHaveBeenCalledWith(jasmine.any(Function));
|
|
162
176
|
*
|
|
163
177
|
* @param {Class} clazz
|
|
164
178
|
* @returns matchable object of the type clazz
|
|
@@ -173,7 +187,8 @@ jasmine.any = function(clazz) {
|
|
|
173
187
|
* Spies should be created in test setup, before expectations. They can then be checked, using the standard Jasmine
|
|
174
188
|
* expectation syntax. Spies can be checked if they were called or not and what the calling params were.
|
|
175
189
|
*
|
|
176
|
-
* A Spy has the following
|
|
190
|
+
* A Spy has the following fields: wasCalled, callCount, mostRecentCall, and argsForCall (see docs).
|
|
191
|
+
*
|
|
177
192
|
* Spies are torn down at the end of every spec.
|
|
178
193
|
*
|
|
179
194
|
* Note: Do <b>not</b> call new jasmine.Spy() directly - a spy must be created using spyOn, jasmine.createSpy or jasmine.createSpyObj.
|
|
@@ -203,8 +218,8 @@ jasmine.any = function(clazz) {
|
|
|
203
218
|
*
|
|
204
219
|
* // mock example
|
|
205
220
|
* foo.not(7 == 7);
|
|
206
|
-
* expect(foo.not).
|
|
207
|
-
* expect(foo.not).
|
|
221
|
+
* expect(foo.not).toHaveBeenCalled();
|
|
222
|
+
* expect(foo.not).toHaveBeenCalledWith(true);
|
|
208
223
|
*
|
|
209
224
|
* @constructor
|
|
210
225
|
* @see spyOn, jasmine.createSpy, jasmine.createSpyObj
|
|
@@ -395,8 +410,14 @@ jasmine.createSpyObj = function(baseName, methodNames) {
|
|
|
395
410
|
return obj;
|
|
396
411
|
};
|
|
397
412
|
|
|
398
|
-
|
|
399
|
-
|
|
413
|
+
/**
|
|
414
|
+
* All parameters are pretty-printed and concatenated together, then written to the current spec's output.
|
|
415
|
+
*
|
|
416
|
+
* Be careful not to leave calls to <code>jasmine.log</code> in production code.
|
|
417
|
+
*/
|
|
418
|
+
jasmine.log = function() {
|
|
419
|
+
var spec = jasmine.getEnv().currentSpec;
|
|
420
|
+
spec.log.apply(spec, arguments);
|
|
400
421
|
};
|
|
401
422
|
|
|
402
423
|
/**
|
|
@@ -559,28 +580,3 @@ jasmine.XmlHttpRequest = (typeof XMLHttpRequest == "undefined") ? function() {
|
|
|
559
580
|
}
|
|
560
581
|
throw new Error("This browser does not support XMLHttpRequest.");
|
|
561
582
|
} : XMLHttpRequest;
|
|
562
|
-
|
|
563
|
-
/**
|
|
564
|
-
* Adds suite files to an HTML document so that they are executed, thus adding them to the current
|
|
565
|
-
* Jasmine environment.
|
|
566
|
-
*
|
|
567
|
-
* @param {String} url path to the file to include
|
|
568
|
-
* @param {Boolean} opt_global
|
|
569
|
-
* @deprecated We suggest you use a different method of including JS source files. <code>jasmine.include</code> will be removed soon.
|
|
570
|
-
*/
|
|
571
|
-
jasmine.include = function(url, opt_global) {
|
|
572
|
-
if (opt_global) {
|
|
573
|
-
document.write('<script type="text/javascript" src="' + url + '"></' + 'script>');
|
|
574
|
-
} else {
|
|
575
|
-
var xhr;
|
|
576
|
-
try {
|
|
577
|
-
xhr = new jasmine.XmlHttpRequest();
|
|
578
|
-
xhr.open("GET", url, false);
|
|
579
|
-
xhr.send(null);
|
|
580
|
-
} catch(e) {
|
|
581
|
-
throw new Error("couldn't fetch " + url + ": " + e);
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
return eval(xhr.responseText);
|
|
585
|
-
}
|
|
586
|
-
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
jasmine.TrivialReporter = function(doc) {
|
|
2
2
|
this.document = doc || document;
|
|
3
3
|
this.suiteDivs = {};
|
|
4
|
+
this.logRunningSpecs = false;
|
|
4
5
|
};
|
|
5
6
|
|
|
6
7
|
jasmine.TrivialReporter.prototype.createDom = function(type, attrs, childrenVarArgs) {
|
|
@@ -58,10 +59,10 @@ jasmine.TrivialReporter.prototype.reportRunnerStarting = function(runner) {
|
|
|
58
59
|
var suiteDiv = this.createDom('div', { className: 'suite' },
|
|
59
60
|
this.createDom('a', { className: 'run_spec', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, "run"),
|
|
60
61
|
this.createDom('a', { className: 'description', href: '?spec=' + encodeURIComponent(suite.getFullName()) }, suite.description));
|
|
61
|
-
this.suiteDivs[suite.
|
|
62
|
+
this.suiteDivs[suite.id] = suiteDiv;
|
|
62
63
|
var parentDiv = this.outerDiv;
|
|
63
64
|
if (suite.parentSuite) {
|
|
64
|
-
parentDiv = this.suiteDivs[suite.parentSuite.
|
|
65
|
+
parentDiv = this.suiteDivs[suite.parentSuite.id];
|
|
65
66
|
}
|
|
66
67
|
parentDiv.appendChild(suiteDiv);
|
|
67
68
|
}
|
|
@@ -112,7 +113,13 @@ jasmine.TrivialReporter.prototype.reportSuiteResults = function(suite) {
|
|
|
112
113
|
if (results.totalCount == 0) { // todo: change this to check results.skipped
|
|
113
114
|
status = 'skipped';
|
|
114
115
|
}
|
|
115
|
-
this.suiteDivs[suite.
|
|
116
|
+
this.suiteDivs[suite.id].className += " " + status;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
jasmine.TrivialReporter.prototype.reportSpecStarting = function(spec) {
|
|
120
|
+
if (this.logRunningSpecs) {
|
|
121
|
+
this.log('>> Jasmine Running ' + spec.suite.description + ' ' + spec.description + '...');
|
|
122
|
+
}
|
|
116
123
|
};
|
|
117
124
|
|
|
118
125
|
jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
|
|
@@ -134,7 +141,10 @@ jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
|
|
|
134
141
|
var messagesDiv = this.createDom('div', { className: 'messages' });
|
|
135
142
|
for (var i = 0; i < resultItems.length; i++) {
|
|
136
143
|
var result = resultItems[i];
|
|
137
|
-
|
|
144
|
+
|
|
145
|
+
if (result.type == 'log') {
|
|
146
|
+
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage log'}, result.toString()));
|
|
147
|
+
} else if (result.type == 'expect' && result.passed && !result.passed()) {
|
|
138
148
|
messagesDiv.appendChild(this.createDom('div', {className: 'resultMessage fail'}, result.message));
|
|
139
149
|
|
|
140
150
|
if (result.trace.stack) {
|
|
@@ -147,11 +157,12 @@ jasmine.TrivialReporter.prototype.reportSpecResults = function(spec) {
|
|
|
147
157
|
specDiv.appendChild(messagesDiv);
|
|
148
158
|
}
|
|
149
159
|
|
|
150
|
-
this.suiteDivs[spec.suite.
|
|
160
|
+
this.suiteDivs[spec.suite.id].appendChild(specDiv);
|
|
151
161
|
};
|
|
152
162
|
|
|
153
163
|
jasmine.TrivialReporter.prototype.log = function() {
|
|
154
|
-
console.
|
|
164
|
+
var console = jasmine.getGlobal().console;
|
|
165
|
+
if (console && console.log) console.log.apply(console, arguments);
|
|
155
166
|
};
|
|
156
167
|
|
|
157
168
|
jasmine.TrivialReporter.prototype.getLocation = function() {
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
body {
|
|
2
|
+
font-family: "Helvetica Neue Light", "Lucida Grande", "Calibri", "Arial", sans-serif;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
.jasmine_reporter a:visited, .jasmine_reporter a {
|
|
7
|
+
color: #303;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.jasmine_reporter a:hover, .jasmine_reporter a:active {
|
|
11
|
+
color: blue;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.run_spec {
|
|
15
|
+
float:right;
|
|
16
|
+
padding-right: 5px;
|
|
17
|
+
font-size: .8em;
|
|
18
|
+
text-decoration: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.jasmine_reporter {
|
|
22
|
+
margin: 0 5px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.banner {
|
|
26
|
+
color: #303;
|
|
27
|
+
background-color: #fef;
|
|
28
|
+
padding: 5px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.logo {
|
|
32
|
+
float: left;
|
|
33
|
+
font-size: 1.1em;
|
|
34
|
+
padding-left: 5px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.logo .version {
|
|
38
|
+
font-size: .6em;
|
|
39
|
+
padding-left: 1em;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.runner.running {
|
|
43
|
+
background-color: yellow;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
.options {
|
|
48
|
+
text-align: right;
|
|
49
|
+
font-size: .8em;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
.suite {
|
|
56
|
+
border: 1px outset gray;
|
|
57
|
+
margin: 5px 0;
|
|
58
|
+
padding-left: 1em;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.suite .suite {
|
|
62
|
+
margin: 5px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.suite.passed {
|
|
66
|
+
background-color: #dfd;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.suite.failed {
|
|
70
|
+
background-color: #fdd;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.spec {
|
|
74
|
+
margin: 5px;
|
|
75
|
+
padding-left: 1em;
|
|
76
|
+
clear: both;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.spec.failed, .spec.passed, .spec.skipped {
|
|
80
|
+
padding-bottom: 5px;
|
|
81
|
+
border: 1px solid gray;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.spec.failed {
|
|
85
|
+
background-color: #fbb;
|
|
86
|
+
border-color: red;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.spec.passed {
|
|
90
|
+
background-color: #bfb;
|
|
91
|
+
border-color: green;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.spec.skipped {
|
|
95
|
+
background-color: #bbb;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.messages {
|
|
99
|
+
border-left: 1px dashed gray;
|
|
100
|
+
padding-left: 1em;
|
|
101
|
+
padding-right: 1em;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.passed {
|
|
105
|
+
background-color: #cfc;
|
|
106
|
+
display: none;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.failed {
|
|
110
|
+
background-color: #fbb;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.skipped {
|
|
114
|
+
color: #777;
|
|
115
|
+
background-color: #eee;
|
|
116
|
+
display: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
/*.resultMessage {*/
|
|
121
|
+
/*white-space: pre;*/
|
|
122
|
+
/*}*/
|
|
123
|
+
|
|
124
|
+
.resultMessage span.result {
|
|
125
|
+
display: block;
|
|
126
|
+
line-height: 2em;
|
|
127
|
+
color: black;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.resultMessage .mismatch {
|
|
131
|
+
color: black;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.stackTrace {
|
|
135
|
+
white-space: pre;
|
|
136
|
+
font-size: .8em;
|
|
137
|
+
margin-left: 10px;
|
|
138
|
+
max-height: 5em;
|
|
139
|
+
overflow: auto;
|
|
140
|
+
border: 1px inset red;
|
|
141
|
+
padding: 1em;
|
|
142
|
+
background: #eef;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.finished-at {
|
|
146
|
+
padding-left: 1em;
|
|
147
|
+
font-size: .6em;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.show-passed .passed,
|
|
151
|
+
.show-skipped .skipped {
|
|
152
|
+
display: block;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
#jasmine_content {
|
|
157
|
+
position:fixed;
|
|
158
|
+
right: 100%;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.runner {
|
|
162
|
+
border: 1px solid gray;
|
|
163
|
+
display: block;
|
|
164
|
+
margin: 5px 0;
|
|
165
|
+
padding: 2px 0 2px 10px;
|
|
166
|
+
}
|
|
@@ -64,9 +64,9 @@ jasmine.FakeTimer.prototype.runFunctionsWithinRange = function(oldMillis, nowMil
|
|
|
64
64
|
funcToRun.funcToCall();
|
|
65
65
|
if (funcToRun.recurring) {
|
|
66
66
|
this.scheduleFunction(funcToRun.timeoutKey,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
funcToRun.funcToCall,
|
|
68
|
+
funcToRun.millis,
|
|
69
|
+
true);
|
|
70
70
|
}
|
|
71
71
|
} catch(e) {
|
|
72
72
|
}
|
|
@@ -110,10 +110,12 @@ jasmine.Clock = {
|
|
|
110
110
|
},
|
|
111
111
|
|
|
112
112
|
useMock: function() {
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
if (!jasmine.Clock.isInstalled()) {
|
|
114
|
+
var spec = jasmine.getEnv().currentSpec;
|
|
115
|
+
spec.after(jasmine.Clock.uninstallMock);
|
|
115
116
|
|
|
116
|
-
|
|
117
|
+
jasmine.Clock.installMock();
|
|
118
|
+
}
|
|
117
119
|
},
|
|
118
120
|
|
|
119
121
|
installMock: function() {
|
|
@@ -126,24 +128,28 @@ jasmine.Clock = {
|
|
|
126
128
|
},
|
|
127
129
|
|
|
128
130
|
real: {
|
|
129
|
-
setTimeout:
|
|
130
|
-
clearTimeout:
|
|
131
|
-
setInterval:
|
|
132
|
-
clearInterval:
|
|
131
|
+
setTimeout: jasmine.getGlobal().setTimeout,
|
|
132
|
+
clearTimeout: jasmine.getGlobal().clearTimeout,
|
|
133
|
+
setInterval: jasmine.getGlobal().setInterval,
|
|
134
|
+
clearInterval: jasmine.getGlobal().clearInterval
|
|
133
135
|
},
|
|
134
136
|
|
|
135
137
|
assertInstalled: function() {
|
|
136
|
-
if (jasmine.Clock.
|
|
138
|
+
if (!jasmine.Clock.isInstalled()) {
|
|
137
139
|
throw new Error("Mock clock is not installed, use jasmine.Clock.useMock()");
|
|
138
140
|
}
|
|
139
141
|
},
|
|
140
142
|
|
|
143
|
+
isInstalled: function() {
|
|
144
|
+
return jasmine.Clock.installed == jasmine.Clock.defaultFakeTimer;
|
|
145
|
+
},
|
|
146
|
+
|
|
141
147
|
installed: null
|
|
142
148
|
};
|
|
143
149
|
jasmine.Clock.installed = jasmine.Clock.real;
|
|
144
150
|
|
|
145
151
|
//else for IE support
|
|
146
|
-
|
|
152
|
+
jasmine.getGlobal().setTimeout = function(funcToCall, millis) {
|
|
147
153
|
if (jasmine.Clock.installed.setTimeout.apply) {
|
|
148
154
|
return jasmine.Clock.installed.setTimeout.apply(this, arguments);
|
|
149
155
|
} else {
|
|
@@ -151,7 +157,7 @@ window.setTimeout = function(funcToCall, millis) {
|
|
|
151
157
|
}
|
|
152
158
|
};
|
|
153
159
|
|
|
154
|
-
|
|
160
|
+
jasmine.getGlobal().setInterval = function(funcToCall, millis) {
|
|
155
161
|
if (jasmine.Clock.installed.setInterval.apply) {
|
|
156
162
|
return jasmine.Clock.installed.setInterval.apply(this, arguments);
|
|
157
163
|
} else {
|
|
@@ -159,7 +165,7 @@ window.setInterval = function(funcToCall, millis) {
|
|
|
159
165
|
}
|
|
160
166
|
};
|
|
161
167
|
|
|
162
|
-
|
|
168
|
+
jasmine.getGlobal().clearTimeout = function(timeoutKey) {
|
|
163
169
|
if (jasmine.Clock.installed.clearTimeout.apply) {
|
|
164
170
|
return jasmine.Clock.installed.clearTimeout.apply(this, arguments);
|
|
165
171
|
} else {
|
|
@@ -167,11 +173,11 @@ window.clearTimeout = function(timeoutKey) {
|
|
|
167
173
|
}
|
|
168
174
|
};
|
|
169
175
|
|
|
170
|
-
|
|
176
|
+
jasmine.getGlobal().clearInterval = function(timeoutKey) {
|
|
171
177
|
if (jasmine.Clock.installed.clearTimeout.apply) {
|
|
172
178
|
return jasmine.Clock.installed.clearInterval.apply(this, arguments);
|
|
173
179
|
} else {
|
|
174
|
-
|
|
180
|
+
return jasmine.Clock.installed.clearInterval(timeoutKey);
|
|
175
181
|
}
|
|
176
182
|
};
|
|
177
183
|
|