2014-11-26 02:30:30 +00:00
|
|
|
/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* MCTRepresentationSpec. Created by vwoeltje on 11/6/14.
|
|
|
|
*/
|
|
|
|
define(
|
|
|
|
["../../src/navigation/NavigationService"],
|
2014-11-26 06:48:12 +00:00
|
|
|
function (NavigationService) {
|
2014-11-26 02:30:30 +00:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
describe("The navigation service", function () {
|
2014-11-26 06:48:12 +00:00
|
|
|
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();
|
|
|
|
});
|
2014-11-26 02:30:30 +00:00
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
);
|