jasmine-core 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jasmine-core/boot/node_boot.js +1 -1
  3. data/lib/jasmine-core/jasmine-html.js +0 -35
  4. data/lib/jasmine-core/jasmine.css +0 -6
  5. data/lib/jasmine-core/jasmine.js +246 -36
  6. data/lib/jasmine-core/node_boot.js +1 -1
  7. data/lib/jasmine-core/version.rb +1 -1
  8. metadata +3 -88
  9. data/lib/jasmine-core/spec/core/CallTrackerSpec.js +0 -130
  10. data/lib/jasmine-core/spec/core/ClearStackSpec.js +0 -137
  11. data/lib/jasmine-core/spec/core/ClockSpec.js +0 -710
  12. data/lib/jasmine-core/spec/core/DelayedFunctionSchedulerSpec.js +0 -286
  13. data/lib/jasmine-core/spec/core/EnvSpec.js +0 -200
  14. data/lib/jasmine-core/spec/core/ExceptionFormatterSpec.js +0 -120
  15. data/lib/jasmine-core/spec/core/ExceptionsSpec.js +0 -46
  16. data/lib/jasmine-core/spec/core/ExpectationResultSpec.js +0 -61
  17. data/lib/jasmine-core/spec/core/ExpectationSpec.js +0 -434
  18. data/lib/jasmine-core/spec/core/GlobalErrorsSpec.js +0 -110
  19. data/lib/jasmine-core/spec/core/JsApiReporterSpec.js +0 -259
  20. data/lib/jasmine-core/spec/core/MockDateSpec.js +0 -200
  21. data/lib/jasmine-core/spec/core/PrettyPrintSpec.js +0 -332
  22. data/lib/jasmine-core/spec/core/QueueRunnerSpec.js +0 -670
  23. data/lib/jasmine-core/spec/core/ReportDispatcherSpec.js +0 -140
  24. data/lib/jasmine-core/spec/core/SpecSpec.js +0 -407
  25. data/lib/jasmine-core/spec/core/SpyRegistrySpec.js +0 -364
  26. data/lib/jasmine-core/spec/core/SpySpec.js +0 -177
  27. data/lib/jasmine-core/spec/core/SpyStrategySpec.js +0 -202
  28. data/lib/jasmine-core/spec/core/StackTraceSpec.js +0 -166
  29. data/lib/jasmine-core/spec/core/SuiteSpec.js +0 -123
  30. data/lib/jasmine-core/spec/core/TimerSpec.js +0 -31
  31. data/lib/jasmine-core/spec/core/TreeProcessorSpec.js +0 -794
  32. data/lib/jasmine-core/spec/core/UserContextSpec.js +0 -54
  33. data/lib/jasmine-core/spec/core/UtilSpec.js +0 -105
  34. data/lib/jasmine-core/spec/core/asymmetric_equality/AnySpec.js +0 -91
  35. data/lib/jasmine-core/spec/core/asymmetric_equality/AnythingSpec.js +0 -76
  36. data/lib/jasmine-core/spec/core/asymmetric_equality/ArrayContainingSpec.js +0 -52
  37. data/lib/jasmine-core/spec/core/asymmetric_equality/ArrayWithExactContentsSpec.js +0 -47
  38. data/lib/jasmine-core/spec/core/asymmetric_equality/ObjectContainingSpec.js +0 -99
  39. data/lib/jasmine-core/spec/core/asymmetric_equality/StringMatchingSpec.js +0 -27
  40. data/lib/jasmine-core/spec/core/formatErrorMsgSpec.js +0 -13
  41. data/lib/jasmine-core/spec/core/integration/CustomMatchersSpec.js +0 -200
  42. data/lib/jasmine-core/spec/core/integration/CustomSpyStrategiesSpec.js +0 -138
  43. data/lib/jasmine-core/spec/core/integration/EnvSpec.js +0 -2344
  44. data/lib/jasmine-core/spec/core/integration/SpecRunningSpec.js +0 -976
  45. data/lib/jasmine-core/spec/core/matchers/DiffBuilderSpec.js +0 -47
  46. data/lib/jasmine-core/spec/core/matchers/NullDiffBuilderSpec.js +0 -13
  47. data/lib/jasmine-core/spec/core/matchers/ObjectPathSpec.js +0 -43
  48. data/lib/jasmine-core/spec/core/matchers/matchersUtilSpec.js +0 -645
  49. data/lib/jasmine-core/spec/core/matchers/nothingSpec.js +0 -8
  50. data/lib/jasmine-core/spec/core/matchers/toBeCloseToSpec.js +0 -93
  51. data/lib/jasmine-core/spec/core/matchers/toBeDefinedSpec.js +0 -18
  52. data/lib/jasmine-core/spec/core/matchers/toBeFalsySpec.js +0 -38
  53. data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanOrEqualSpec.js +0 -29
  54. data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanSpec.js +0 -20
  55. data/lib/jasmine-core/spec/core/matchers/toBeLessThanOrEqualSpec.js +0 -29
  56. data/lib/jasmine-core/spec/core/matchers/toBeLessThanSpec.js +0 -20
  57. data/lib/jasmine-core/spec/core/matchers/toBeNaNSpec.js +0 -37
  58. data/lib/jasmine-core/spec/core/matchers/toBeNegativeInfinitySpec.js +0 -31
  59. data/lib/jasmine-core/spec/core/matchers/toBeNullSpec.js +0 -17
  60. data/lib/jasmine-core/spec/core/matchers/toBePositiveInfinitySpec.js +0 -31
  61. data/lib/jasmine-core/spec/core/matchers/toBeSpec.js +0 -17
  62. data/lib/jasmine-core/spec/core/matchers/toBeTruthySpec.js +0 -38
  63. data/lib/jasmine-core/spec/core/matchers/toBeUndefinedSpec.js +0 -18
  64. data/lib/jasmine-core/spec/core/matchers/toContainSpec.js +0 -26
  65. data/lib/jasmine-core/spec/core/matchers/toEqualSpec.js +0 -785
  66. data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledBeforeSpec.js +0 -99
  67. data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledSpec.js +0 -47
  68. data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledTimesSpec.js +0 -86
  69. data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledWithSpec.js +0 -67
  70. data/lib/jasmine-core/spec/core/matchers/toMatchSpec.js +0 -43
  71. data/lib/jasmine-core/spec/core/matchers/toThrowErrorSpec.js +0 -315
  72. data/lib/jasmine-core/spec/core/matchers/toThrowMatchingSpec.js +0 -73
  73. data/lib/jasmine-core/spec/core/matchers/toThrowSpec.js +0 -100
  74. data/lib/jasmine-core/spec/helpers/BrowserFlags.js +0 -15
  75. data/lib/jasmine-core/spec/helpers/asyncAwait.js +0 -27
  76. data/lib/jasmine-core/spec/helpers/checkForMap.js +0 -37
  77. data/lib/jasmine-core/spec/helpers/checkForSet.js +0 -41
  78. data/lib/jasmine-core/spec/helpers/checkForSymbol.js +0 -28
  79. data/lib/jasmine-core/spec/helpers/checkForTypedArrays.js +0 -20
  80. data/lib/jasmine-core/spec/helpers/defineJasmineUnderTest.js +0 -6
  81. data/lib/jasmine-core/spec/helpers/integrationMatchers.js +0 -43
  82. data/lib/jasmine-core/spec/helpers/nodeDefineJasmineUnderTest.js +0 -30
  83. data/lib/jasmine-core/spec/html/HtmlReporterSpec.js +0 -1261
  84. data/lib/jasmine-core/spec/html/HtmlSpecFilterSpec.js +0 -18
  85. data/lib/jasmine-core/spec/html/MatchersHtmlSpec.js +0 -37
  86. data/lib/jasmine-core/spec/html/PrettyPrintHtmlSpec.js +0 -27
  87. data/lib/jasmine-core/spec/html/QueryStringSpec.js +0 -72
  88. data/lib/jasmine-core/spec/html/ResultsNodeSpec.js +0 -62
  89. data/lib/jasmine-core/spec/html/SpyRegistryHtmlSpec.js +0 -39
  90. data/lib/jasmine-core/spec/html/matchers/toHaveClassSpec.js +0 -48
  91. data/lib/jasmine-core/spec/npmPackage/npmPackageSpec.js +0 -101
  92. data/lib/jasmine-core/spec/performance/large_object_test.js +0 -36
  93. data/lib/jasmine-core/spec/performance/performance_test.js +0 -10
@@ -1,110 +0,0 @@
1
- describe("GlobalErrors", function() {
2
- it("calls the added handler on error", function() {
3
- var fakeGlobal = { onerror: null },
4
- handler = jasmine.createSpy('errorHandler'),
5
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal);
6
-
7
- errors.install();
8
- errors.pushListener(handler);
9
-
10
- fakeGlobal.onerror('foo');
11
-
12
- expect(handler).toHaveBeenCalledWith('foo');
13
- });
14
-
15
- it("only calls the most recent handler", function() {
16
- var fakeGlobal = { onerror: null },
17
- handler1 = jasmine.createSpy('errorHandler1'),
18
- handler2 = jasmine.createSpy('errorHandler2'),
19
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal);
20
-
21
- errors.install();
22
- errors.pushListener(handler1);
23
- errors.pushListener(handler2);
24
-
25
- fakeGlobal.onerror('foo');
26
-
27
- expect(handler1).not.toHaveBeenCalled();
28
- expect(handler2).toHaveBeenCalledWith('foo');
29
- });
30
-
31
- it("calls previous handlers when one is removed", function() {
32
- var fakeGlobal = { onerror: null },
33
- handler1 = jasmine.createSpy('errorHandler1'),
34
- handler2 = jasmine.createSpy('errorHandler2'),
35
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal);
36
-
37
- errors.install();
38
- errors.pushListener(handler1);
39
- errors.pushListener(handler2);
40
-
41
- errors.popListener();
42
-
43
- fakeGlobal.onerror('foo');
44
-
45
- expect(handler1).toHaveBeenCalledWith('foo');
46
- expect(handler2).not.toHaveBeenCalled();
47
- });
48
-
49
- it("uninstalls itself, putting back a previous callback", function() {
50
- var originalCallback = jasmine.createSpy('error'),
51
- fakeGlobal = { onerror: originalCallback },
52
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal);
53
-
54
- expect(fakeGlobal.onerror).toBe(originalCallback);
55
-
56
- errors.install();
57
-
58
- expect(fakeGlobal.onerror).not.toBe(originalCallback);
59
-
60
- errors.uninstall();
61
-
62
- expect(fakeGlobal.onerror).toBe(originalCallback);
63
- });
64
-
65
- it("rethrows the original error when there is no handler", function() {
66
- var fakeGlobal = { },
67
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal),
68
- originalError = new Error('nope');
69
-
70
- errors.install();
71
-
72
- try {
73
- fakeGlobal.onerror(originalError);
74
- } catch (e) {
75
- expect(e).toBe(originalError);
76
- }
77
-
78
- errors.uninstall();
79
- });
80
-
81
- it("works in node.js", function() {
82
- var fakeGlobal = {
83
- process: {
84
- on: jasmine.createSpy('process.on'),
85
- removeListener: jasmine.createSpy('process.removeListener'),
86
- listeners: jasmine.createSpy('process.listeners').and.returnValue(['foo']),
87
- removeAllListeners: jasmine.createSpy('process.removeAllListeners')
88
- }
89
- },
90
- handler = jasmine.createSpy('errorHandler'),
91
- errors = new jasmineUnderTest.GlobalErrors(fakeGlobal);
92
-
93
- errors.install();
94
- expect(fakeGlobal.process.on).toHaveBeenCalledWith('uncaughtException', jasmine.any(Function));
95
- expect(fakeGlobal.process.listeners).toHaveBeenCalledWith('uncaughtException');
96
- expect(fakeGlobal.process.removeAllListeners).toHaveBeenCalledWith('uncaughtException');
97
-
98
- errors.pushListener(handler);
99
-
100
- var addedListener = fakeGlobal.process.on.calls.argsFor(0)[1];
101
- addedListener(new Error('bar'));
102
-
103
- expect(handler).toHaveBeenCalledWith(new Error('bar'));
104
-
105
- errors.uninstall();
106
-
107
- expect(fakeGlobal.process.removeListener).toHaveBeenCalledWith('uncaughtException', addedListener);
108
- expect(fakeGlobal.process.on).toHaveBeenCalledWith('uncaughtException', 'foo');
109
- });
110
- });
@@ -1,259 +0,0 @@
1
- xdescribe('JsApiReporter (integration specs)', function() {
2
- describe('results', function() {
3
- var reporter, spec1, spec2;
4
- var env;
5
- var suite, nestedSuite, nestedSpec;
6
-
7
- beforeEach(function() {
8
- env = new jasmineUnderTest.Env();
9
-
10
- suite = env.describe("top-level suite", function() {
11
- spec1 = env.it("spec 1", function() {
12
- this.expect(true).toEqual(true);
13
-
14
- });
15
-
16
- spec2 = env.it("spec 2", function() {
17
- this.expect(true).toEqual(false);
18
- });
19
-
20
- nestedSuite = env.describe("nested suite", function() {
21
- nestedSpec = env.it("nested spec", function() {
22
- expect(true).toEqual(true);
23
- });
24
- });
25
-
26
- });
27
-
28
- reporter = new jasmineUnderTest.JsApiReporter({});
29
- env.addReporter(reporter);
30
-
31
- env.execute();
32
-
33
- });
34
-
35
- it('results() should return a hash of all results, indexed by spec id', function() {
36
- var expectedSpec1Results = {
37
- result: "passed"
38
- },
39
- expectedSpec2Results = {
40
- result: "failed"
41
- };
42
- expect(reporter.results()[spec1.id].result).toEqual('passed');
43
- expect(reporter.results()[spec2.id].result).toEqual('failed');
44
- });
45
-
46
- it("should return nested suites as children of their parents", function() {
47
- expect(reporter.suites()).toEqual([
48
- { id: 0, name: 'top-level suite', type: 'suite',
49
- children: [
50
- { id: 0, name: 'spec 1', type: 'spec', children: [ ] },
51
- { id: 1, name: 'spec 2', type: 'spec', children: [ ] },
52
- { id: 1, name: 'nested suite', type: 'suite',
53
- children: [
54
- { id: 2, name: 'nested spec', type: 'spec', children: [ ] }
55
- ]
56
- },
57
- ]
58
- }
59
- ]);
60
- });
61
-
62
- describe("#summarizeResult_", function() {
63
- it("should summarize a passing result", function() {
64
- var result = reporter.results()[spec1.id];
65
- var summarizedResult = reporter.summarizeResult_(result);
66
- expect(summarizedResult.result).toEqual('passed');
67
- expect(summarizedResult.messages.length).toEqual(0);
68
- });
69
-
70
- it("should have a stack trace for failing specs", function() {
71
- var result = reporter.results()[spec2.id];
72
- var summarizedResult = reporter.summarizeResult_(result);
73
- expect(summarizedResult.result).toEqual('failed');
74
- expect(summarizedResult.messages[0].trace.stack).toEqual(result.messages[0].trace.stack);
75
- });
76
-
77
- });
78
- });
79
- });
80
-
81
-
82
- describe("JsApiReporter", function() {
83
-
84
- it("knows when a full environment is started", function() {
85
- var reporter = new jasmineUnderTest.JsApiReporter({});
86
-
87
- expect(reporter.started).toBe(false);
88
- expect(reporter.finished).toBe(false);
89
-
90
- reporter.jasmineStarted();
91
-
92
- expect(reporter.started).toBe(true);
93
- expect(reporter.finished).toBe(false);
94
- });
95
-
96
- it("knows when a full environment is done", function() {
97
- var reporter = new jasmineUnderTest.JsApiReporter({});
98
-
99
- expect(reporter.started).toBe(false);
100
- expect(reporter.finished).toBe(false);
101
-
102
- reporter.jasmineStarted();
103
- reporter.jasmineDone({});
104
-
105
- expect(reporter.finished).toBe(true);
106
- });
107
-
108
- it("defaults to 'loaded' status", function() {
109
- var reporter = new jasmineUnderTest.JsApiReporter({});
110
-
111
- expect(reporter.status()).toEqual('loaded');
112
- });
113
-
114
- it("reports 'started' when Jasmine has started", function() {
115
- var reporter = new jasmineUnderTest.JsApiReporter({});
116
-
117
- reporter.jasmineStarted();
118
-
119
- expect(reporter.status()).toEqual('started');
120
- });
121
-
122
- it("reports 'done' when Jasmine is done", function() {
123
- var reporter = new jasmineUnderTest.JsApiReporter({});
124
-
125
- reporter.jasmineDone({});
126
-
127
- expect(reporter.status()).toEqual('done');
128
- });
129
-
130
- it("tracks a suite", function() {
131
- var reporter = new jasmineUnderTest.JsApiReporter({});
132
-
133
- reporter.suiteStarted({
134
- id: 123,
135
- description: "A suite"
136
- });
137
-
138
- var suites = reporter.suites();
139
-
140
- expect(suites).toEqual({123: {id: 123, description: "A suite"}});
141
-
142
- reporter.suiteDone({
143
- id: 123,
144
- description: "A suite",
145
- status: 'passed'
146
- });
147
-
148
- expect(suites).toEqual({123: {id: 123, description: "A suite", status: 'passed'}});
149
- });
150
-
151
- describe("#specResults", function() {
152
- var reporter, specResult1, specResult2;
153
- beforeEach(function() {
154
- reporter = new jasmineUnderTest.JsApiReporter({});
155
- specResult1 = {
156
- id: 1,
157
- description: "A spec"
158
- };
159
- specResult2 = {
160
- id: 2,
161
- description: "Another spec"
162
- };
163
-
164
- reporter.specDone(specResult1);
165
- reporter.specDone(specResult2);
166
- });
167
-
168
- it("should return a slice of results", function() {
169
- expect(reporter.specResults(0, 1)).toEqual([specResult1]);
170
- expect(reporter.specResults(1, 1)).toEqual([specResult2]);
171
- });
172
-
173
- describe("when the results do not exist", function() {
174
- it("should return a slice of shorter length", function() {
175
- expect(reporter.specResults(0, 3)).toEqual([specResult1, specResult2]);
176
- expect(reporter.specResults(2, 3)).toEqual([]);
177
- });
178
- });
179
- });
180
-
181
- describe("#suiteResults", function(){
182
- var reporter, suiteResult1, suiteResult2;
183
- beforeEach(function() {
184
- reporter = new jasmineUnderTest.JsApiReporter({});
185
- suiteStarted1 = {
186
- id: 1
187
- };
188
- suiteResult1 = {
189
- id: 1,
190
- status: 'failed',
191
- failedExpectations: [{ message: 'My After All Exception' }]
192
- };
193
- suiteResult2 = {
194
- id: 2,
195
- status: 'passed'
196
- };
197
-
198
- reporter.suiteStarted(suiteStarted1);
199
- reporter.suiteDone(suiteResult1);
200
- reporter.suiteDone(suiteResult2);
201
- });
202
-
203
- it('should not include suite starts', function(){
204
- expect(reporter.suiteResults(0,3).length).toEqual(2);
205
- });
206
-
207
- it("should return a slice of results", function() {
208
- expect(reporter.suiteResults(0, 1)).toEqual([suiteResult1]);
209
- expect(reporter.suiteResults(1, 1)).toEqual([suiteResult2]);
210
- });
211
-
212
- it("returns nothing for out of bounds indicies", function() {
213
- expect(reporter.suiteResults(0, 3)).toEqual([suiteResult1, suiteResult2]);
214
- expect(reporter.suiteResults(2, 3)).toEqual([]);
215
- });
216
- });
217
-
218
- describe("#executionTime", function() {
219
- it("should start the timer when jasmine starts", function() {
220
- var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
221
- reporter = new jasmineUnderTest.JsApiReporter({
222
- timer: timerSpy
223
- });
224
-
225
- reporter.jasmineStarted();
226
- expect(timerSpy.start).toHaveBeenCalled();
227
- });
228
-
229
- it("should return the time it took the specs to run, in ms", function() {
230
- var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
231
- reporter = new jasmineUnderTest.JsApiReporter({
232
- timer: timerSpy
233
- });
234
-
235
- timerSpy.elapsed.and.returnValue(1000);
236
- reporter.jasmineDone();
237
- expect(reporter.executionTime()).toEqual(1000);
238
- });
239
-
240
- describe("when the specs haven't finished being run", function() {
241
- it("should return undefined", function() {
242
- var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
243
- reporter = new jasmineUnderTest.JsApiReporter({
244
- timer: timerSpy
245
- });
246
-
247
- expect(reporter.executionTime()).toBeUndefined();
248
- });
249
- });
250
- });
251
-
252
- describe('#runDetails', function() {
253
- it('should have details about the run', function() {
254
- var reporter = new jasmineUnderTest.JsApiReporter({});
255
- reporter.jasmineDone({some: {run: 'details'}});
256
- expect(reporter.runDetails).toEqual({some: {run: 'details'}});
257
- });
258
- });
259
- });
@@ -1,200 +0,0 @@
1
- describe("FakeDate", function() {
2
- it("does not fail if no global date is found", function() {
3
- var fakeGlobal = {},
4
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
5
-
6
- expect(function() {
7
- mockDate.install();
8
- mockDate.tick(0);
9
- mockDate.uninstall();
10
- }).not.toThrow();
11
- });
12
-
13
- it("replaces the global Date when it is installed", function() {
14
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
15
- return {
16
- getTime: function() {}
17
- }
18
- }),
19
- fakeGlobal = { Date: globalDate },
20
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
21
-
22
- expect(fakeGlobal.Date).toEqual(globalDate);
23
- mockDate.install();
24
-
25
- expect(fakeGlobal.Date).not.toEqual(globalDate);
26
- });
27
-
28
- it("replaces the global Date on uninstall", function() {
29
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
30
- return {
31
- getTime: function() {}
32
- }
33
- }),
34
- fakeGlobal = { Date: globalDate },
35
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
36
-
37
- mockDate.install();
38
- mockDate.uninstall();
39
-
40
- expect(fakeGlobal.Date).toEqual(globalDate);
41
- });
42
-
43
- it("takes the current time as the base when installing without parameters", function() {
44
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
45
- return {
46
- getTime: function() {
47
- return 1000;
48
- }
49
- }
50
- }),
51
- fakeGlobal = { Date: globalDate },
52
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
53
-
54
- mockDate.install();
55
-
56
- globalDate.calls.reset();
57
- new fakeGlobal.Date();
58
- expect(globalDate).toHaveBeenCalledWith(1000);
59
- });
60
-
61
- it("can accept a date as time base when installing", function() {
62
- var fakeGlobal = { Date: Date },
63
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal),
64
- baseDate = new Date();
65
-
66
- spyOn(baseDate, 'getTime').and.returnValue(123);
67
- mockDate.install(baseDate);
68
-
69
- expect(new fakeGlobal.Date().getTime()).toEqual(123);
70
- });
71
-
72
- it("makes real dates", function() {
73
- var fakeGlobal = { Date: Date },
74
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
75
-
76
- mockDate.install();
77
- expect(new fakeGlobal.Date()).toEqual(jasmine.any(Date));
78
- expect(new fakeGlobal.Date() instanceof fakeGlobal.Date).toBe(true);
79
- });
80
-
81
- it("fakes current time when using Date.now()", function() {
82
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
83
- return {
84
- getTime: function() {
85
- return 1000;
86
- }
87
- }
88
- }),
89
- fakeGlobal = { Date: globalDate };
90
-
91
- globalDate.now = function() {};
92
- var mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
93
-
94
- mockDate.install();
95
-
96
- expect(fakeGlobal.Date.now()).toEqual(1000);
97
- });
98
-
99
- it("does not stub Date.now() if it doesn't already exist", function() {
100
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
101
- return {
102
- getTime: function() {
103
- return 1000;
104
- }
105
- }
106
- }),
107
- fakeGlobal = { Date: globalDate },
108
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
109
-
110
- mockDate.install();
111
-
112
- expect(fakeGlobal.Date.now).toThrowError("Browser does not support Date.now()");
113
- });
114
-
115
- it("makes time passes using tick", function() {
116
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
117
- return {
118
- getTime: function() {
119
- return 1000;
120
- }
121
- }
122
- }),
123
- fakeGlobal = { Date: globalDate };
124
-
125
- globalDate.now = function() {};
126
- var mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
127
-
128
- mockDate.install();
129
-
130
- mockDate.tick(100);
131
-
132
- expect(fakeGlobal.Date.now()).toEqual(1100);
133
-
134
- mockDate.tick(1000);
135
-
136
- expect(fakeGlobal.Date.now()).toEqual(2100);
137
- });
138
-
139
- it("allows to increase 0 milliseconds using tick", function() {
140
- var globalDate = jasmine.createSpy("global Date").and.callFake(function() {
141
- return {
142
- getTime: function() {
143
- return 1000;
144
- }
145
- }
146
- }),
147
- fakeGlobal = { Date: globalDate };
148
-
149
- globalDate.now = function() {};
150
- var mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
151
-
152
- mockDate.install();
153
-
154
- mockDate.tick(0);
155
- expect(fakeGlobal.Date.now()).toEqual(1000);
156
-
157
- mockDate.tick();
158
- expect(fakeGlobal.Date.now()).toEqual(1000);
159
- });
160
-
161
- it("allows creation of a Date in a different time than the mocked time", function() {
162
- var fakeGlobal = { Date: Date },
163
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
164
-
165
- mockDate.install();
166
-
167
- var otherDate = new fakeGlobal.Date(2013, 9, 23, 0, 0, 1, 0);
168
- expect(otherDate.getTime()).toEqual(new Date(2013, 9, 23, 0, 0, 1, 0).getTime());
169
- });
170
-
171
- it("allows creation of a Date that isn't fully specified", function() {
172
- var fakeGlobal = { Date: Date },
173
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
174
-
175
- mockDate.install();
176
-
177
- var otherDate = new fakeGlobal.Date(2013, 9, 23);
178
- expect(otherDate.getTime()).toEqual(new Date(2013, 9, 23).getTime());
179
- });
180
-
181
- it('allows creation of a Date with millis', function() {
182
- var fakeGlobal = { Date: Date },
183
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal),
184
- now = new Date(2014, 3, 15).getTime();
185
-
186
- mockDate.install();
187
-
188
- var otherDate = new fakeGlobal.Date(now);
189
- expect(otherDate.getTime()).toEqual(now);
190
- });
191
-
192
- it("copies all Date properties to the mocked date", function() {
193
- var fakeGlobal = { Date: Date },
194
- mockDate = new jasmineUnderTest.MockDate(fakeGlobal);
195
-
196
- mockDate.install();
197
-
198
- expect(fakeGlobal.Date.UTC(2013, 9, 23)).toEqual(Date.UTC(2013, 9, 23));
199
- });
200
- });