From 5aaafed4d8204330170a3bf38dff47789ec82cb5 Mon Sep 17 00:00:00 2001 From: "Davis W. Frank" Date: Thu, 10 Oct 2013 16:24:58 -0700 Subject: [PATCH] Move clock from global to jasmine; provide a function to access the clock. --- lib/jasmine-core/boot.js | 9 +++++++-- lib/jasmine-core/boot/boot.js | 9 +++++++-- spec/core/QueueRunnerSpec.js | 8 ++++---- spec/node_suite.js | 22 ++++++++++++---------- spec/support/dev_boot.js | 13 ++++++++++++- 5 files changed, 42 insertions(+), 19 deletions(-) diff --git a/lib/jasmine-core/boot.js b/lib/jasmine-core/boot.js index a833080a..ec918a83 100644 --- a/lib/jasmine-core/boot.js +++ b/lib/jasmine-core/boot.js @@ -91,8 +91,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. return env.spyOn(obj, methodName); }, - clock: env.clock, - addCustomEqualityTester: function(tester) { env.addCustomEqualityTester(tester); }, @@ -125,6 +123,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. return env.addMatchers(matchers); }; + /** + * Expose the mock interface for the JavaScript timeout functions + */ + jasmine.clock = function() { + return env.clock; + }; + /** * ## Runner Parameters * diff --git a/lib/jasmine-core/boot/boot.js b/lib/jasmine-core/boot/boot.js index 9fe80d9a..fc3fa734 100644 --- a/lib/jasmine-core/boot/boot.js +++ b/lib/jasmine-core/boot/boot.js @@ -69,8 +69,6 @@ return env.spyOn(obj, methodName); }, - clock: env.clock, - addCustomEqualityTester: function(tester) { env.addCustomEqualityTester(tester); }, @@ -103,6 +101,13 @@ return env.addMatchers(matchers); }; + /** + * Expose the mock interface for the JavaScript timeout functions + */ + jasmine.clock = function() { + return env.clock; + }; + /** * ## Runner Parameters * diff --git a/spec/core/QueueRunnerSpec.js b/spec/core/QueueRunnerSpec.js index d3c220f7..641269ae 100644 --- a/spec/core/QueueRunnerSpec.js +++ b/spec/core/QueueRunnerSpec.js @@ -67,7 +67,7 @@ describe("QueueRunner", function() { onComplete: onComplete }); - clock.install(); + jasmine.clock().install(); queueRunner.execute(); @@ -76,18 +76,18 @@ describe("QueueRunner", function() { expect(afterCallback).not.toHaveBeenCalled(); expect(onComplete).not.toHaveBeenCalled(); - clock.tick(100); + jasmine.clock().tick(100); expect(fnCallback).toHaveBeenCalled(); expect(afterCallback).not.toHaveBeenCalled(); expect(onComplete).not.toHaveBeenCalled(); - clock.tick(100); + jasmine.clock().tick(100); expect(afterCallback).toHaveBeenCalled(); expect(onComplete).not.toHaveBeenCalled(); - clock.tick(100); + jasmine.clock().tick(100); expect(onComplete).toHaveBeenCalled(); }); diff --git a/spec/node_suite.js b/spec/node_suite.js index b5285dcd..cf13f14f 100644 --- a/spec/node_suite.js +++ b/spec/node_suite.js @@ -41,20 +41,10 @@ var jasmineInterface = { return env.expect(actual); }, - addMatchers: function(matchers) { - return env.addMatchers(matchers); - }, - spyOn: function(obj, methodName) { return env.spyOn(obj, methodName); }, - clock: env.clock, - setTimeout: env.clock.setTimeout, - clearTimeout: env.clock.clearTimeout, - setInterval: env.clock.setInterval, - clearInterval: env.clock.clearInterval, - jsApiReporter: new jasmine.JsApiReporter({ timer: new jasmine.Timer() }) @@ -67,6 +57,18 @@ function extend(destination, source) { return destination; } +jasmine.addCustomEqualityTester = function(tester) { + env.addCustomEqualityTester(tester); +}; + +jasmine.addMatchers = function(matchers) { + return env.addMatchers(matchers); +}; + +jasmine.clock = function() { + return env.clock; +}; + // Jasmine "runner" function executeSpecs(specs, done, isVerbose, showColors) { global.jasmine = jasmine; diff --git a/spec/support/dev_boot.js b/spec/support/dev_boot.js index 83e5eed0..3ae93374 100644 --- a/spec/support/dev_boot.js +++ b/spec/support/dev_boot.js @@ -47,7 +47,6 @@ return env.spyOn(obj, methodName); }, - clock: env.clock, jsApiReporter: new jasmine.JsApiReporter({ timer: new jasmine.Timer() }) @@ -59,6 +58,18 @@ extend(window, jasmineInterface); } + jasmine.addCustomEqualityTester = function(tester) { + env.addCustomEqualityTester(tester); + }; + + jasmine.addMatchers = function(matchers) { + return env.addMatchers(matchers); + }; + + jasmine.clock = function() { + return env.clock; + }; + var queryString = new jasmine.QueryString({ getWindowLocation: function() { return window.location; } });