diff --git a/js/controllers/sideMenuController.js b/js/controllers/sideMenuController.js index 8d018241c6..6caf120273 100644 --- a/js/controllers/sideMenuController.js +++ b/js/controllers/sideMenuController.js @@ -50,26 +50,26 @@ }, isOpenLeft: function() { - return this._leftShowing; + return this.getOpenAmount() > 0; }, isOpenRight: function() { - return this._rightShowing; + return this.getOpenAmount() < 0; }, /** * Toggle the left menu to open 100% */ toggleLeft: function(shouldOpen) { + var openAmount = this.getOpenAmount(); if (arguments.length === 0) { - shouldOpen = !this._leftShowing; + shouldOpen = openAmount <= 0; } this.content.enableAnimation(); - var openAmount = this.getOpenAmount(); - if(shouldOpen) { - this.openPercentage(100); - } else { + if(!shouldOpen) { this.openPercentage(0); + } else { + this.openPercentage(100); } }, @@ -77,15 +77,15 @@ * Toggle the right menu to open 100% */ toggleRight: function(shouldOpen) { + var openAmount = this.getOpenAmount(); if (arguments.length === 0) { - shouldOpen = !this._rightShowing; + shouldOpen = openAmount >= 0; } this.content.enableAnimation(); - var openAmount = this.getOpenAmount(); - if(shouldOpen) { - this.openPercentage(-100); - } else { + if(!shouldOpen) { this.openPercentage(0); + } else { + this.openPercentage(-100); } }, diff --git a/test/unit/controllers/sideMenuController.unit.js b/test/unit/controllers/sideMenuController.unit.js index ed4ca65b91..4e1d2be926 100644 --- a/test/unit/controllers/sideMenuController.unit.js +++ b/test/unit/controllers/sideMenuController.unit.js @@ -82,24 +82,45 @@ describe('SideMenuController', function() { }); // Open - it('Should toggle left and right', function() { + it('Should toggle left', function() { ctrl.toggleLeft(); expect(ctrl.getOpenPercentage()).toEqual(100); + ctrl.toggleLeft(); + expect(ctrl.getOpenPercentage()).toEqual(0); + ctrl.toggleLeft(); + expect(ctrl.getOpenPercentage()).toEqual(100); + ctrl.toggleLeft(); + expect(ctrl.getOpenPercentage()).toEqual(0); + }); + + it('should toggle right', function() { ctrl.toggleRight(); expect(ctrl.getOpenPercentage()).toEqual(-100); + ctrl.toggleRight(); + expect(ctrl.getOpenPercentage()).toEqual(0); + ctrl.toggleRight(); + expect(ctrl.getOpenPercentage()).toEqual(-100); + ctrl.toggleRight(); + expect(ctrl.getOpenPercentage()).toEqual(0); }); it('should isOpenLeft', function() { expect(ctrl.isOpenLeft()).toEqual(false); ctrl.toggleLeft(); - expect(ctrl.getOpenPercentage()).toEqual(100); + expect(ctrl.isOpenLeft()).toEqual(true); + ctrl.toggleLeft(); + expect(ctrl.isOpenLeft()).toEqual(false); + ctrl.toggleLeft(); expect(ctrl.isOpenLeft()).toEqual(true); }); it('should isOpenRight', function() { expect(ctrl.isOpenRight()).toEqual(false); ctrl.toggleRight(); - expect(ctrl.getOpenPercentage()).toEqual(-100); + expect(ctrl.isOpenRight()).toEqual(true); + ctrl.toggleRight(); + expect(ctrl.isOpenRight()).toEqual(false); + ctrl.toggleRight(); expect(ctrl.isOpenRight()).toEqual(true); });