Daniel@0: "use strict"; Daniel@0: Daniel@0: describe("ContextModule.AppContextManager", function() { Daniel@0: Daniel@0: var serializedAppContexts = { Daniel@0: "empty": { Daniel@0: "stateHistory": { Daniel@0: "currentSerializedState": { Daniel@0: "musicCollectionGrid": { Daniel@0: "entityConfigs": [], Daniel@0: "viewConfigs": [], Daniel@0: }, Daniel@0: "musicRecordingGrid": { Daniel@0: "entityConfigs": [], Daniel@0: "viewConfigs": [], Daniel@0: } Daniel@0: }, Daniel@0: "undoStack": [], Daniel@0: "redoStack": [] Daniel@0: }, Daniel@0: "stateBookmarks": [] Daniel@0: }, Daniel@0: Daniel@0: "empty_faulty1": { Daniel@0: }, Daniel@0: "empty_faulty2": 42, Daniel@0: "empty_faulty3": null, Daniel@0: Daniel@0: "empty_incomplete1": { Daniel@0: "stateHistory": { Daniel@0: "currentSerializedState": { Daniel@0: "musicCollectionGrid": { Daniel@0: "entityConfigs": [], Daniel@0: "viewConfigs": [], Daniel@0: }, Daniel@0: }, Daniel@0: "redoStack": [] Daniel@0: }, Daniel@0: "stateBookmarks": [] Daniel@0: }, Daniel@0: "empty_incomplete2": { Daniel@0: "stateHistory": { Daniel@0: "currentSerializedState": null, Daniel@0: "undoStack": [], Daniel@0: "redoStack": [] Daniel@0: }, Daniel@0: "stateBookmarks": [] Daniel@0: }, Daniel@0: }; Daniel@0: Daniel@0: beforeAll(function() { Daniel@0: jasmine.helpers.dumpStorage(); Daniel@0: jasmine.helpers.clearStorage(); Daniel@0: }); Daniel@0: Daniel@0: beforeEach(function() { Daniel@0: jasmine.helpers.clearStorage(); Daniel@0: }); Daniel@0: Daniel@0: afterAll(function() { Daniel@0: jasmine.helpers.restoreStorageFromDump(); Daniel@0: }); Daniel@0: Daniel@0: it("is promptly created", function() { Daniel@0: var testedAppContextManager = new App.ContextModule.AppContextManager(); Daniel@0: Daniel@0: expect(testedAppContextManager instanceof Backbone.Marionette.Object).toBe(true); Daniel@0: }); Daniel@0: Daniel@0: it("restores context from default, saves it and reads it", function() { Daniel@0: var testedAppContextManager = new App.ContextModule.AppContextManager(); Daniel@0: var testedAppContext = new App.ContextModule.AppContext(); Daniel@0: Daniel@0: testedAppContextManager.restoreDefault(testedAppContext); Daniel@0: Daniel@0: var serializedAppContext = testedAppContext.serialize(); Daniel@0: expect(typeof serializedAppContext).toBe("object"); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.entityConfigs.length).toBe(2); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.viewConfigs.length).toBe(2); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.entityConfigs.length).toBe(0); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.viewConfigs.length).toBe(0); Daniel@0: Daniel@0: testedAppContextManager.saveToStorage(testedAppContext); Daniel@0: var serializedAppContext = App.DataModule.Storage.getObjCache(App.ContextModule, "context"); Daniel@0: expect(typeof serializedAppContext).toBe("object"); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.entityConfigs.length).toBe(2); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.viewConfigs.length).toBe(2); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.entityConfigs.length).toBe(0); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.viewConfigs.length).toBe(0); Daniel@0: Daniel@0: serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.entityConfigs.pop(); Daniel@0: serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.viewConfigs.push({parameters: {x: 1}}); Daniel@0: Daniel@0: App.DataModule.Storage.setObjCache(App.ContextModule, "context", serializedAppContext); Daniel@0: testedAppContextManager.restoreFromStorage(testedAppContext); Daniel@0: var serializedAppContext = testedAppContext.serialize(); Daniel@0: expect(typeof serializedAppContext).toBe("object"); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.entityConfigs.length).toBe(1); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicCollectionGrid.viewConfigs.length).toBe(2); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.entityConfigs.length).toBe(0); Daniel@0: expect(serializedAppContext.stateHistory.currentSerializedState.musicRecordingGrid.viewConfigs.length).toBe(1); Daniel@0: }); Daniel@0: });