From 7cab626980934b2e5b26e90c11d3c1d874ed3629 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Gerardy Date: Wed, 7 Dec 2016 13:32:18 +0100 Subject: [PATCH] Add a short browserMock test suite --- test-utils/tests/index.html | 2 ++ test-utils/tests/test-browserMock.js | 40 ++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 test-utils/tests/test-browserMock.js diff --git a/test-utils/tests/index.html b/test-utils/tests/index.html index 4e5a6234..e24fa2f8 100644 --- a/test-utils/tests/index.html +++ b/test-utils/tests/index.html @@ -13,11 +13,13 @@ + + diff --git a/test-utils/tests/test-browserMock.js b/test-utils/tests/test-browserMock.js new file mode 100644 index 00000000..d47c58ce --- /dev/null +++ b/test-utils/tests/test-browserMock.js @@ -0,0 +1,40 @@ +"use strict" + +var o = require("../../ospec/ospec") +var browserMock = require("../../test-utils/browserMock") +var callAsync = require("../../test-utils/callAsync") +o.spec("browserMock", function() { + + var $window + o.beforeEach(function() { + $window = browserMock() + }) + + o("Mocks DOM, pushState and XHR", function() { + o($window.location).notEquals(undefined) + o($window.document).notEquals(undefined) + o($window.XMLHttpRequest).notEquals(undefined) + }) + o("$window.onhashchange can be reached from the pushStateMock functions", function(done) { + $window.onhashchange = o.spy() + $window.location.hash = '#a' + + callAsync(function(){ + o($window.onhashchange.callCount).equals(1) + done() + }) + }) + o("$window.onpopstate can be reached from the pushStateMock functions", function() { + $window.onpopstate = o.spy() + $window.history.pushState(null, null, "#a") + $window.history.back() + + o($window.onpopstate.callCount).equals(1) + }) + o("$window.onunload can be reached from the pushStateMock functions", function() { + $window.onunload = o.spy() + $window.location.href = '/a' + + o($window.onunload.callCount).equals(1) + }) +})