jasmine-core 2.4.1 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/console/console.js +1 -1
- data/lib/jasmine-core/boot.js +1 -1
- data/lib/jasmine-core/jasmine-html.js +15 -7
- data/lib/jasmine-core/jasmine.js +261 -82
- data/lib/jasmine-core/node_boot.js +1 -1
- data/lib/jasmine-core/spec/console/ConsoleReporterSpec.js +16 -16
- data/lib/jasmine-core/spec/core/CallTrackerSpec.js +26 -11
- data/lib/jasmine-core/spec/core/ClockSpec.js +61 -42
- data/lib/jasmine-core/spec/core/DelayedFunctionSchedulerSpec.js +28 -15
- data/lib/jasmine-core/spec/core/EnvSpec.js +8 -8
- data/lib/jasmine-core/spec/core/ExceptionFormatterSpec.js +6 -6
- data/lib/jasmine-core/spec/core/ExceptionsSpec.js +1 -1
- data/lib/jasmine-core/spec/core/ExpectationResultSpec.js +8 -8
- data/lib/jasmine-core/spec/core/ExpectationSpec.js +17 -17
- data/lib/jasmine-core/spec/core/JsApiReporterSpec.js +14 -14
- data/lib/jasmine-core/spec/core/MockDateSpec.js +14 -14
- data/lib/jasmine-core/spec/core/PrettyPrintSpec.js +65 -56
- data/lib/jasmine-core/spec/core/QueueRunnerSpec.js +32 -18
- data/lib/jasmine-core/spec/core/ReportDispatcherSpec.js +27 -3
- data/lib/jasmine-core/spec/core/SpecSpec.js +37 -37
- data/lib/jasmine-core/spec/core/SpyRegistrySpec.js +46 -7
- data/lib/jasmine-core/spec/core/SpySpec.js +11 -11
- data/lib/jasmine-core/spec/core/SpyStrategySpec.js +25 -13
- data/lib/jasmine-core/spec/core/SuiteSpec.js +25 -25
- data/lib/jasmine-core/spec/core/TimerSpec.js +2 -2
- data/lib/jasmine-core/spec/core/TreeProcessorSpec.js +26 -26
- data/lib/jasmine-core/spec/core/UtilSpec.js +12 -12
- data/lib/jasmine-core/spec/core/asymmetric_equality/AnySpec.js +8 -8
- data/lib/jasmine-core/spec/core/asymmetric_equality/AnythingSpec.js +7 -7
- data/lib/jasmine-core/spec/core/asymmetric_equality/ArrayContainingSpec.js +6 -6
- data/lib/jasmine-core/spec/core/asymmetric_equality/ObjectContainingSpec.js +11 -11
- data/lib/jasmine-core/spec/core/asymmetric_equality/StringMatchingSpec.js +4 -4
- data/lib/jasmine-core/spec/core/formatErrorMsgSpec.js +13 -0
- data/lib/jasmine-core/spec/core/integration/CustomMatchersSpec.js +2 -2
- data/lib/jasmine-core/spec/core/integration/EnvSpec.js +195 -76
- data/lib/jasmine-core/spec/core/integration/SpecRunningSpec.js +20 -21
- data/lib/jasmine-core/spec/core/matchers/matchersUtilSpec.js +164 -114
- data/lib/jasmine-core/spec/core/matchers/toBeCloseToSpec.js +4 -4
- data/lib/jasmine-core/spec/core/matchers/toBeDefinedSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeFalsySpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanOrEqualSpec.js +29 -0
- data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeLessThanOrEqualSpec.js +29 -0
- data/lib/jasmine-core/spec/core/matchers/toBeLessThanSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeNaNSpec.js +3 -3
- data/lib/jasmine-core/spec/core/matchers/toBeNullSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeTruthySpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeUndefinedSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toContainSpec.js +4 -4
- data/lib/jasmine-core/spec/core/matchers/toEqualSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledSpec.js +11 -11
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledTimesSpec.js +22 -17
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledWithSpec.js +11 -10
- data/lib/jasmine-core/spec/core/matchers/toMatchSpec.js +7 -6
- data/lib/jasmine-core/spec/core/matchers/toThrowErrorSpec.js +24 -24
- data/lib/jasmine-core/spec/core/matchers/toThrowSpec.js +9 -8
- data/lib/jasmine-core/spec/helpers/defineJasmineUnderTest.js +3 -3
- data/lib/jasmine-core/spec/helpers/nodeDefineJasmineUnderTest.js +5 -5
- data/lib/jasmine-core/spec/html/HtmlReporterSpec.js +95 -59
- data/lib/jasmine-core/spec/html/HtmlSpecFilterSpec.js +3 -3
- data/lib/jasmine-core/spec/html/MatchersHtmlSpec.js +1 -1
- data/lib/jasmine-core/spec/html/PrettyPrintHtmlSpec.js +4 -4
- data/lib/jasmine-core/spec/html/QueryStringSpec.js +5 -5
- data/lib/jasmine-core/spec/html/ResultsNodeSpec.js +4 -4
- data/lib/jasmine-core/spec/npmPackage/npmPackageSpec.js +2 -2
- data/lib/jasmine-core/spec/performance/large_object_test.js +1 -1
- data/lib/jasmine-core/version.rb +1 -1
- metadata +5 -3
- data/lib/jasmine-core/spec/node_suite.js +0 -195
@@ -19,7 +19,7 @@ describe("ConsoleReporter", function() {
|
|
19
19
|
});
|
20
20
|
|
21
21
|
it("reports that the suite has started to the console", function() {
|
22
|
-
var reporter = new
|
22
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
23
23
|
print: out.print
|
24
24
|
});
|
25
25
|
|
@@ -30,7 +30,7 @@ describe("ConsoleReporter", function() {
|
|
30
30
|
|
31
31
|
it("starts the provided timer when jasmine starts", function() {
|
32
32
|
var timerSpy = jasmine.createSpyObj('timer', ['start']),
|
33
|
-
reporter = new
|
33
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
34
34
|
print: out.print,
|
35
35
|
timer: timerSpy
|
36
36
|
});
|
@@ -41,7 +41,7 @@ describe("ConsoleReporter", function() {
|
|
41
41
|
});
|
42
42
|
|
43
43
|
it("reports a passing spec as a dot", function() {
|
44
|
-
var reporter = new
|
44
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
45
45
|
print: out.print
|
46
46
|
});
|
47
47
|
|
@@ -51,7 +51,7 @@ describe("ConsoleReporter", function() {
|
|
51
51
|
});
|
52
52
|
|
53
53
|
it("does not report a disabled spec", function() {
|
54
|
-
var reporter = new
|
54
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
55
55
|
print: out.print
|
56
56
|
});
|
57
57
|
|
@@ -61,7 +61,7 @@ describe("ConsoleReporter", function() {
|
|
61
61
|
});
|
62
62
|
|
63
63
|
it("reports a failing spec as an 'F'", function() {
|
64
|
-
var reporter = new
|
64
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
65
65
|
print: out.print
|
66
66
|
});
|
67
67
|
|
@@ -71,7 +71,7 @@ describe("ConsoleReporter", function() {
|
|
71
71
|
});
|
72
72
|
|
73
73
|
it("reports a pending spec as a '*'", function() {
|
74
|
-
var reporter = new
|
74
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
75
75
|
print: out.print
|
76
76
|
});
|
77
77
|
|
@@ -81,7 +81,7 @@ describe("ConsoleReporter", function() {
|
|
81
81
|
});
|
82
82
|
|
83
83
|
it("alerts user if there are no specs", function(){
|
84
|
-
var reporter = new
|
84
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
85
85
|
print: out.print
|
86
86
|
});
|
87
87
|
|
@@ -94,7 +94,7 @@ describe("ConsoleReporter", function() {
|
|
94
94
|
|
95
95
|
it("reports a summary when done (singular spec and time)", function() {
|
96
96
|
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
97
|
-
reporter = new
|
97
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
98
98
|
print: out.print,
|
99
99
|
timer: timerSpy
|
100
100
|
});
|
@@ -114,7 +114,7 @@ describe("ConsoleReporter", function() {
|
|
114
114
|
|
115
115
|
it("reports a summary when done (pluralized specs and seconds)", function() {
|
116
116
|
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
117
|
-
reporter = new
|
117
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
118
118
|
print: out.print,
|
119
119
|
timer: timerSpy
|
120
120
|
});
|
@@ -148,7 +148,7 @@ describe("ConsoleReporter", function() {
|
|
148
148
|
});
|
149
149
|
|
150
150
|
it("reports a summary when done that includes stack traces for a failing suite", function() {
|
151
|
-
var reporter = new
|
151
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
152
152
|
print: out.print
|
153
153
|
});
|
154
154
|
|
@@ -182,7 +182,7 @@ describe("ConsoleReporter", function() {
|
|
182
182
|
|
183
183
|
beforeEach(function() {
|
184
184
|
onComplete = jasmine.createSpy('onComplete');
|
185
|
-
reporter = new
|
185
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
186
186
|
print: out.print,
|
187
187
|
onComplete: onComplete
|
188
188
|
});
|
@@ -210,7 +210,7 @@ describe("ConsoleReporter", function() {
|
|
210
210
|
|
211
211
|
describe("with color", function() {
|
212
212
|
it("reports that the suite has started to the console", function() {
|
213
|
-
var reporter = new
|
213
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
214
214
|
print: out.print,
|
215
215
|
showColors: true
|
216
216
|
});
|
@@ -221,7 +221,7 @@ describe("ConsoleReporter", function() {
|
|
221
221
|
});
|
222
222
|
|
223
223
|
it("reports a passing spec as a dot", function() {
|
224
|
-
var reporter = new
|
224
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
225
225
|
print: out.print,
|
226
226
|
showColors: true
|
227
227
|
});
|
@@ -232,7 +232,7 @@ describe("ConsoleReporter", function() {
|
|
232
232
|
});
|
233
233
|
|
234
234
|
it("does not report a disabled spec", function() {
|
235
|
-
var reporter = new
|
235
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
236
236
|
print: out.print,
|
237
237
|
showColors: true
|
238
238
|
});
|
@@ -243,7 +243,7 @@ describe("ConsoleReporter", function() {
|
|
243
243
|
});
|
244
244
|
|
245
245
|
it("reports a failing spec as an 'F'", function() {
|
246
|
-
var reporter = new
|
246
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
247
247
|
print: out.print,
|
248
248
|
showColors: true
|
249
249
|
});
|
@@ -254,7 +254,7 @@ describe("ConsoleReporter", function() {
|
|
254
254
|
});
|
255
255
|
|
256
256
|
it("displays all afterAll exceptions", function() {
|
257
|
-
var reporter = new
|
257
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
258
258
|
print: out.print,
|
259
259
|
showColors: true
|
260
260
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
describe("CallTracker", function() {
|
2
2
|
it("tracks that it was called when executed", function() {
|
3
|
-
var callTracker = new
|
3
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
4
4
|
|
5
5
|
expect(callTracker.any()).toBe(false);
|
6
6
|
|
@@ -10,7 +10,7 @@ describe("CallTracker", function() {
|
|
10
10
|
});
|
11
11
|
|
12
12
|
it("tracks that number of times that it is executed", function() {
|
13
|
-
var callTracker = new
|
13
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
14
14
|
|
15
15
|
expect(callTracker.count()).toEqual(0);
|
16
16
|
|
@@ -20,7 +20,7 @@ describe("CallTracker", function() {
|
|
20
20
|
});
|
21
21
|
|
22
22
|
it("tracks the params from each execution", function() {
|
23
|
-
var callTracker = new
|
23
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
24
24
|
|
25
25
|
callTracker.track({object: void 0, args: []});
|
26
26
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -31,13 +31,13 @@ describe("CallTracker", function() {
|
|
31
31
|
});
|
32
32
|
|
33
33
|
it("returns any empty array when there was no call", function() {
|
34
|
-
var callTracker = new
|
34
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
35
35
|
|
36
36
|
expect(callTracker.argsFor(0)).toEqual([]);
|
37
37
|
});
|
38
38
|
|
39
39
|
it("allows access for the arguments for all calls", function() {
|
40
|
-
var callTracker = new
|
40
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
41
41
|
|
42
42
|
callTracker.track({object: {}, args: []});
|
43
43
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -46,7 +46,7 @@ describe("CallTracker", function() {
|
|
46
46
|
});
|
47
47
|
|
48
48
|
it("tracks the context and arguments for each call", function() {
|
49
|
-
var callTracker = new
|
49
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
50
50
|
|
51
51
|
callTracker.track({object: {}, args: []});
|
52
52
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -57,7 +57,7 @@ describe("CallTracker", function() {
|
|
57
57
|
});
|
58
58
|
|
59
59
|
it("simplifies access to the arguments for the last (most recent) call", function() {
|
60
|
-
var callTracker = new
|
60
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
61
61
|
|
62
62
|
callTracker.track();
|
63
63
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -69,13 +69,13 @@ describe("CallTracker", function() {
|
|
69
69
|
});
|
70
70
|
|
71
71
|
it("returns a useful falsy value when there isn't a last (most recent) call", function() {
|
72
|
-
var callTracker = new
|
72
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
73
73
|
|
74
74
|
expect(callTracker.mostRecent()).toBeFalsy();
|
75
75
|
});
|
76
76
|
|
77
77
|
it("simplifies access to the arguments for the first (oldest) call", function() {
|
78
|
-
var callTracker = new
|
78
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
79
79
|
|
80
80
|
callTracker.track({object: {}, args: [0, "foo"]});
|
81
81
|
|
@@ -83,14 +83,14 @@ describe("CallTracker", function() {
|
|
83
83
|
});
|
84
84
|
|
85
85
|
it("returns a useful falsy value when there isn't a first (oldest) call", function() {
|
86
|
-
var callTracker = new
|
86
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
87
87
|
|
88
88
|
expect(callTracker.first()).toBeFalsy();
|
89
89
|
});
|
90
90
|
|
91
91
|
|
92
92
|
it("allows the tracking to be reset", function() {
|
93
|
-
var callTracker = new
|
93
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
94
94
|
|
95
95
|
callTracker.track();
|
96
96
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -102,4 +102,19 @@ describe("CallTracker", function() {
|
|
102
102
|
expect(callTracker.all()).toEqual([]);
|
103
103
|
expect(callTracker.mostRecent()).toBeFalsy();
|
104
104
|
});
|
105
|
+
|
106
|
+
it("allows object arguments to be shallow cloned", function() {
|
107
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
108
|
+
callTracker.saveArgumentsByValue();
|
109
|
+
|
110
|
+
var objectArg = {"foo": "bar"},
|
111
|
+
arrayArg = ["foo", "bar"];
|
112
|
+
|
113
|
+
callTracker.track({object: {}, args: [objectArg, arrayArg, false, undefined, null, NaN, "", 0, 1.0]});
|
114
|
+
|
115
|
+
expect(callTracker.mostRecent().args[0]).not.toBe(objectArg);
|
116
|
+
expect(callTracker.mostRecent().args[0]).toEqual(objectArg);
|
117
|
+
expect(callTracker.mostRecent().args[1]).not.toBe(arrayArg);
|
118
|
+
expect(callTracker.mostRecent().args[1]).toEqual(arrayArg);
|
119
|
+
});
|
105
120
|
});
|
@@ -6,7 +6,7 @@ describe("Clock", function() {
|
|
6
6
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction"]),
|
7
7
|
delayedFn = jasmine.createSpy("delayedFn"),
|
8
8
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
9
|
-
clock = new
|
9
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
10
10
|
|
11
11
|
fakeGlobal.setTimeout(delayedFn, 0);
|
12
12
|
|
@@ -28,7 +28,7 @@ describe("Clock", function() {
|
|
28
28
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["removeFunctionWithId"]),
|
29
29
|
delayedFn = jasmine.createSpy("delayedFn"),
|
30
30
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
31
|
-
clock = new
|
31
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
32
32
|
|
33
33
|
fakeGlobal.clearTimeout("foo");
|
34
34
|
|
@@ -50,7 +50,7 @@ describe("Clock", function() {
|
|
50
50
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction"]),
|
51
51
|
delayedFn = jasmine.createSpy("delayedFn"),
|
52
52
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
53
|
-
clock = new
|
53
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
54
54
|
|
55
55
|
fakeGlobal.setInterval(delayedFn, 0);
|
56
56
|
|
@@ -72,7 +72,7 @@ describe("Clock", function() {
|
|
72
72
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["removeFunctionWithId"]),
|
73
73
|
delayedFn = jasmine.createSpy("delayedFn"),
|
74
74
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
75
|
-
clock = new
|
75
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
76
76
|
|
77
77
|
fakeGlobal.clearInterval("foo");
|
78
78
|
|
@@ -94,7 +94,7 @@ describe("Clock", function() {
|
|
94
94
|
fakeGlobal = { setTimeout: originalFakeSetTimeout },
|
95
95
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
96
96
|
mockDate = {},
|
97
|
-
clock = new
|
97
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
98
98
|
|
99
99
|
fakeGlobal.setTimeout = replacedSetTimeout;
|
100
100
|
|
@@ -112,7 +112,7 @@ describe("Clock", function() {
|
|
112
112
|
fakeGlobal = { clearTimeout: originalFakeClearTimeout },
|
113
113
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
114
114
|
mockDate = {},
|
115
|
-
clock = new
|
115
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
116
116
|
|
117
117
|
fakeGlobal.clearTimeout = replacedClearTimeout;
|
118
118
|
|
@@ -130,7 +130,7 @@ describe("Clock", function() {
|
|
130
130
|
fakeGlobal = { setInterval: originalFakeSetInterval },
|
131
131
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
132
132
|
mockDate = {},
|
133
|
-
clock = new
|
133
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
134
134
|
|
135
135
|
fakeGlobal.setInterval = replacedSetInterval;
|
136
136
|
|
@@ -148,7 +148,7 @@ describe("Clock", function() {
|
|
148
148
|
fakeGlobal = { clearInterval: originalFakeClearInterval },
|
149
149
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
150
150
|
mockDate = {},
|
151
|
-
clock = new
|
151
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
152
152
|
|
153
153
|
fakeGlobal.clearInterval = replacedClearInterval;
|
154
154
|
|
@@ -174,7 +174,7 @@ describe("Clock", function() {
|
|
174
174
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset"]),
|
175
175
|
delayedFn = jasmine.createSpy("delayedFn"),
|
176
176
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
177
|
-
clock = new
|
177
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
178
178
|
|
179
179
|
clock.install();
|
180
180
|
clock.uninstall();
|
@@ -204,7 +204,7 @@ describe("Clock", function() {
|
|
204
204
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset", "removeFunctionWithId"]),
|
205
205
|
delayedFn = jasmine.createSpy("delayedFn"),
|
206
206
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
207
|
-
clock = new
|
207
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
208
208
|
passedFunctionCalled = false;
|
209
209
|
|
210
210
|
clock.withMock(function() {
|
@@ -251,7 +251,7 @@ describe("Clock", function() {
|
|
251
251
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset", "removeFunctionWithId"]),
|
252
252
|
delayedFn = jasmine.createSpy("delayedFn"),
|
253
253
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
254
|
-
clock = new
|
254
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
255
255
|
passedFunctionCalled = false;
|
256
256
|
|
257
257
|
expect(function() {
|
@@ -294,7 +294,7 @@ describe("Clock", function() {
|
|
294
294
|
fakeGlobal = { setTimeout: fakeSetTimeout },
|
295
295
|
delayedFn = jasmine.createSpy('delayedFn'),
|
296
296
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
297
|
-
clock = new
|
297
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
298
298
|
|
299
299
|
clock.install();
|
300
300
|
clock.setTimeout(delayedFn, 0, 'a', 'b');
|
@@ -311,7 +311,7 @@ describe("Clock", function() {
|
|
311
311
|
fakeGlobal = { setTimeout: fakeSetTimeout },
|
312
312
|
delayedFn = jasmine.createSpy('delayedFn'),
|
313
313
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
314
|
-
clock = new
|
314
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
315
315
|
timeoutId;
|
316
316
|
|
317
317
|
clock.install();
|
@@ -326,7 +326,7 @@ describe("Clock", function() {
|
|
326
326
|
fakeGlobal = { setTimeout: fakeClearTimeout },
|
327
327
|
delayedFn = jasmine.createSpy('delayedFn'),
|
328
328
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
329
|
-
clock = new
|
329
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
330
330
|
|
331
331
|
clock.install();
|
332
332
|
clock.clearTimeout(123);
|
@@ -342,7 +342,7 @@ describe("Clock", function() {
|
|
342
342
|
fakeGlobal = { setInterval: fakeSetInterval },
|
343
343
|
delayedFn = jasmine.createSpy('delayedFn'),
|
344
344
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
345
|
-
clock = new
|
345
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
346
346
|
|
347
347
|
clock.install();
|
348
348
|
clock.setInterval(delayedFn, 0, 'a', 'b');
|
@@ -359,7 +359,7 @@ describe("Clock", function() {
|
|
359
359
|
fakeGlobal = { setInterval: fakeSetInterval },
|
360
360
|
delayedFn = jasmine.createSpy('delayedFn'),
|
361
361
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
362
|
-
clock = new
|
362
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
363
363
|
intervalId;
|
364
364
|
|
365
365
|
clock.install();
|
@@ -374,7 +374,7 @@ describe("Clock", function() {
|
|
374
374
|
fakeGlobal = { setInterval: clearInterval },
|
375
375
|
delayedFn = jasmine.createSpy('delayedFn'),
|
376
376
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
377
|
-
clock = new
|
377
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
378
378
|
|
379
379
|
clock.install();
|
380
380
|
clock.clearInterval(123);
|
@@ -384,7 +384,7 @@ describe("Clock", function() {
|
|
384
384
|
});
|
385
385
|
|
386
386
|
it("gives you a friendly reminder if the Clock is not installed and you tick", function() {
|
387
|
-
var clock = new
|
387
|
+
var clock = new jasmineUnderTest.Clock({}, jasmine.createSpyObj('delayedFunctionScheduler', ['tick']));
|
388
388
|
expect(function() {
|
389
389
|
clock.tick(50);
|
390
390
|
}).toThrow();
|
@@ -401,7 +401,7 @@ describe("Clock", function() {
|
|
401
401
|
setInterval: fakeSetInterval
|
402
402
|
},
|
403
403
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
404
|
-
clock = new
|
404
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
405
405
|
|
406
406
|
fakeSetTimeout.apply = null;
|
407
407
|
fakeSetInterval.apply = null;
|
@@ -428,9 +428,9 @@ describe("Clock (acceptance)", function() {
|
|
428
428
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
429
429
|
delayedFn3 = jasmine.createSpy('delayedFn3'),
|
430
430
|
recurring1 = jasmine.createSpy('recurring1'),
|
431
|
-
delayedFunctionScheduler = new
|
431
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
432
432
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
433
|
-
clock = new
|
433
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
434
434
|
|
435
435
|
clock.install();
|
436
436
|
|
@@ -475,9 +475,9 @@ describe("Clock (acceptance)", function() {
|
|
475
475
|
|
476
476
|
it("can clear a previously set timeout", function() {
|
477
477
|
var clearedFn = jasmine.createSpy('clearedFn'),
|
478
|
-
delayedFunctionScheduler = new
|
478
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
479
479
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
480
|
-
clock = new
|
480
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate),
|
481
481
|
timeoutId;
|
482
482
|
|
483
483
|
clock.install();
|
@@ -493,9 +493,9 @@ describe("Clock (acceptance)", function() {
|
|
493
493
|
|
494
494
|
it("can clear a previously set interval using that interval's handler", function() {
|
495
495
|
var spy = jasmine.createSpy('spy'),
|
496
|
-
delayedFunctionScheduler = new
|
496
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
497
497
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
498
|
-
clock = new
|
498
|
+
clock = new jasmineUnderTest.Clock({setInterval: function() {}}, function () { return delayedFunctionScheduler; }, mockDate),
|
499
499
|
intervalId;
|
500
500
|
|
501
501
|
clock.install();
|
@@ -511,9 +511,9 @@ describe("Clock (acceptance)", function() {
|
|
511
511
|
|
512
512
|
it("correctly schedules functions after the Clock has advanced", function() {
|
513
513
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
514
|
-
delayedFunctionScheduler = new
|
514
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
515
515
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
516
|
-
clock = new
|
516
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
517
517
|
|
518
518
|
clock.install();
|
519
519
|
|
@@ -528,9 +528,9 @@ describe("Clock (acceptance)", function() {
|
|
528
528
|
it("correctly schedules functions while the Clock is advancing", function() {
|
529
529
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
530
530
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
531
|
-
delayedFunctionScheduler = new
|
531
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
532
532
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
533
|
-
clock = new
|
533
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
534
534
|
|
535
535
|
delayedFn1.and.callFake(function() { clock.setTimeout(delayedFn2, 0); });
|
536
536
|
clock.install();
|
@@ -547,9 +547,9 @@ describe("Clock (acceptance)", function() {
|
|
547
547
|
it("correctly calls functions scheduled while the Clock is advancing", function() {
|
548
548
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
549
549
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
550
|
-
delayedFunctionScheduler = new
|
550
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
551
551
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
552
|
-
clock = new
|
552
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
553
553
|
|
554
554
|
delayedFn1.and.callFake(function() { clock.setTimeout(delayedFn2, 1); });
|
555
555
|
clock.install();
|
@@ -563,9 +563,9 @@ describe("Clock (acceptance)", function() {
|
|
563
563
|
it("correctly schedules functions scheduled while the Clock is advancing but after the Clock is uninstalled", function() {
|
564
564
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
565
565
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
566
|
-
delayedFunctionScheduler = new
|
566
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
567
567
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
568
|
-
clock = new
|
568
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
569
569
|
|
570
570
|
delayedFn1.and.callFake(function() {
|
571
571
|
clock.uninstall();
|
@@ -585,10 +585,10 @@ describe("Clock (acceptance)", function() {
|
|
585
585
|
});
|
586
586
|
|
587
587
|
it("does not mock the Date object by default", function() {
|
588
|
-
var delayedFunctionScheduler = new
|
588
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
589
589
|
global = {Date: Date},
|
590
|
-
mockDate = new
|
591
|
-
clock = new
|
590
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
591
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
592
592
|
|
593
593
|
clock.install();
|
594
594
|
|
@@ -602,10 +602,10 @@ describe("Clock (acceptance)", function() {
|
|
602
602
|
});
|
603
603
|
|
604
604
|
it("mocks the Date object and sets it to current time", function() {
|
605
|
-
var delayedFunctionScheduler = new
|
605
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
606
606
|
global = {Date: Date},
|
607
|
-
mockDate = new
|
608
|
-
clock = new
|
607
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
608
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
609
609
|
|
610
610
|
clock.install().mockDate();
|
611
611
|
|
@@ -626,10 +626,10 @@ describe("Clock (acceptance)", function() {
|
|
626
626
|
});
|
627
627
|
|
628
628
|
it("mocks the Date object and sets it to a given time", function() {
|
629
|
-
var delayedFunctionScheduler = new
|
629
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
630
630
|
global = {Date: Date},
|
631
|
-
mockDate = new
|
632
|
-
clock = new
|
631
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
632
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate),
|
633
633
|
baseTime = new Date(2013, 9, 23);
|
634
634
|
|
635
635
|
|
@@ -652,4 +652,23 @@ describe("Clock (acceptance)", function() {
|
|
652
652
|
|
653
653
|
expect(timeoutDate).toEqual(baseTime.getTime() + 150);
|
654
654
|
});
|
655
|
+
|
656
|
+
it("mocks the Date object and updates the date per delayed function", function () {
|
657
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
658
|
+
global = {Date: Date},
|
659
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
660
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate),
|
661
|
+
baseTime = new Date();
|
662
|
+
|
663
|
+
clock.install().mockDate(baseTime);
|
664
|
+
|
665
|
+
var actualTimes = [];
|
666
|
+
var pushCurrentTime = function() { actualTimes.push(global.Date().getTime()); };
|
667
|
+
delayedFunctionScheduler.scheduleFunction(pushCurrentTime);
|
668
|
+
delayedFunctionScheduler.scheduleFunction(pushCurrentTime, 1);
|
669
|
+
|
670
|
+
clock.tick(1);
|
671
|
+
|
672
|
+
expect(actualTimes).toEqual([baseTime.getTime(), baseTime.getTime() + 1]);
|
673
|
+
})
|
655
674
|
});
|