diff --git a/platform/commonUI/browse/test/navigation/NavigationServiceSpec.js b/platform/commonUI/browse/test/navigation/NavigationServiceSpec.js index e0da3f5d1b..ae757158b0 100644 --- a/platform/commonUI/browse/test/navigation/NavigationServiceSpec.js +++ b/platform/commonUI/browse/test/navigation/NavigationServiceSpec.js @@ -5,10 +5,53 @@ */ define( ["../../src/navigation/NavigationService"], - function (NavigateAction) { + function (NavigationService) { "use strict"; describe("The navigation service", function () { + var navigationService; + + beforeEach(function () { + navigationService = new NavigationService(); + }); + + it("stores navigation state", function () { + var testObject = { someKey: 42 }, + otherObject = { someKey: "some value" }; + expect(navigationService.getNavigation()) + .toBeUndefined(); + navigationService.setNavigation(testObject); + expect(navigationService.getNavigation()) + .toBe(testObject); + expect(navigationService.getNavigation()) + .toBe(testObject); + navigationService.setNavigation(otherObject); + expect(navigationService.getNavigation()) + .toBe(otherObject); + }); + + it("notifies listeners on change", function () { + var testObject = { someKey: 42 }, + callback = jasmine.createSpy("callback"); + + navigationService.addListener(callback); + expect(callback).not.toHaveBeenCalled(); + + navigationService.setNavigation(testObject); + expect(callback).toHaveBeenCalledWith(testObject); + }); + + it("stops notifying listeners after removal", function () { + var testObject = { someKey: 42 }, + callback = jasmine.createSpy("callback"); + + navigationService.addListener(callback); + navigationService.removeListener(callback); + + + navigationService.setNavigation(testObject); + expect(callback).not.toHaveBeenCalled(); + }); }); } diff --git a/platform/commonUI/browse/test/windowing/FullscreenActionSpec.js b/platform/commonUI/browse/test/windowing/FullscreenActionSpec.js index 8e7421e541..c70ecd39b5 100644 --- a/platform/commonUI/browse/test/windowing/FullscreenActionSpec.js +++ b/platform/commonUI/browse/test/windowing/FullscreenActionSpec.js @@ -1,4 +1,4 @@ -/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/ +/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine,afterEach,screenfull*/ /** * MCTRepresentationSpec. Created by vwoeltje on 11/6/14. @@ -9,6 +9,31 @@ define( "use strict"; describe("The fullscreen action", function () { + var action, + oldToggle; + + beforeEach(function () { + // Screenfull is not shimmed or injected, so + // we need to spy on it in the global scope. + oldToggle = screenfull.toggle; + + screenfull.toggle = jasmine.createSpy("toggle"); + + action = new FullscreenAction({}); + }); + + afterEach(function () { + screenfull.toggle = oldToggle; + }); + + it("toggles fullscreen mode when performed", function () { + action.perform(); + expect(screenfull.toggle).toHaveBeenCalled(); + }); + + it("provides displayable metadata", function () { + expect(action.getMetadata().glyph).toBeDefined(); + }); }); }