diff options
Diffstat (limited to 'test/service/cookiesSpec.js')
| -rw-r--r-- | test/service/cookiesSpec.js | 97 |
1 files changed, 47 insertions, 50 deletions
diff --git a/test/service/cookiesSpec.js b/test/service/cookiesSpec.js index f078c20c..2569645b 100644 --- a/test/service/cookiesSpec.js +++ b/test/service/cookiesSpec.js @@ -1,82 +1,79 @@ 'use strict'; describe('$cookies', function() { - var scope, $browser; - - beforeEach(function() { - $browser = new MockBrowser(); - $browser.cookieHash['preexisting'] = 'oldCookie'; - scope = angular.scope(angular.service, {$browser: $browser}); - scope.$cookies = scope.$service('$cookies'); - }); - - afterEach(function() { - dealoc(scope); - }); - + beforeEach(inject(function(service) { + service('$browser', function(){ + return angular.extend(new MockBrowser(), {cookieHash: {preexisting:'oldCookie'}}); + }); + })); + it('should provide access to existing cookies via object properties and keep them in sync', - function() { - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie'}); + inject(function($cookies, $browser, $rootScope) { + expect($cookies).toEqual({'preexisting': 'oldCookie'}); // access internal cookie storage of the browser mock directly to simulate behavior of // document.cookie $browser.cookieHash['brandNew'] = 'cookie'; $browser.poll(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie', 'brandNew':'cookie'}); + expect($cookies).toEqual({'preexisting': 'oldCookie', 'brandNew':'cookie'}); $browser.cookieHash['brandNew'] = 'cookie2'; $browser.poll(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie', 'brandNew':'cookie2'}); + expect($cookies).toEqual({'preexisting': 'oldCookie', 'brandNew':'cookie2'}); delete $browser.cookieHash['brandNew']; $browser.poll(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie'}); - }); + expect($cookies).toEqual({'preexisting': 'oldCookie'}); + })); - it('should create or update a cookie when a value is assigned to a property', function() { - scope.$cookies.oatmealCookie = 'nom nom'; - scope.$digest(); + it('should create or update a cookie when a value is assigned to a property', + inject(function($cookies, $browser, $rootScope) { + $cookies.oatmealCookie = 'nom nom'; + $rootScope.$digest(); expect($browser.cookies()). toEqual({'preexisting': 'oldCookie', 'oatmealCookie':'nom nom'}); - scope.$cookies.oatmealCookie = 'gone'; - scope.$digest(); + $cookies.oatmealCookie = 'gone'; + $rootScope.$digest(); expect($browser.cookies()). toEqual({'preexisting': 'oldCookie', 'oatmealCookie': 'gone'}); - }); + })); - it('should drop or reset any cookie that was set to a non-string value', function() { - scope.$cookies.nonString = [1, 2, 3]; - scope.$cookies.nullVal = null; - scope.$cookies.undefVal = undefined; - scope.$cookies.preexisting = function() {}; - scope.$digest(); + it('should drop or reset any cookie that was set to a non-string value', + inject(function($cookies, $browser, $rootScope) { + $cookies.nonString = [1, 2, 3]; + $cookies.nullVal = null; + $cookies.undefVal = undefined; + $cookies.preexisting = function() {}; + $rootScope.$digest(); expect($browser.cookies()).toEqual({'preexisting': 'oldCookie'}); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie'}); - }); + expect($cookies).toEqual({'preexisting': 'oldCookie'}); + })); - it('should remove a cookie when a $cookies property is deleted', function() { - scope.$cookies.oatmealCookie = 'nom nom'; - scope.$digest(); + it('should remove a cookie when a $cookies property is deleted', + inject(function($cookies, $browser, $rootScope) { + $cookies.oatmealCookie = 'nom nom'; + $rootScope.$digest(); $browser.poll(); expect($browser.cookies()). toEqual({'preexisting': 'oldCookie', 'oatmealCookie':'nom nom'}); - delete scope.$cookies.oatmealCookie; - scope.$digest(); + delete $cookies.oatmealCookie; + $rootScope.$digest(); expect($browser.cookies()).toEqual({'preexisting': 'oldCookie'}); - }); + })); - it('should drop or reset cookies that browser refused to store', function() { + it('should drop or reset cookies that browser refused to store', + inject(function($cookies, $browser, $rootScope) { var i, longVal; for (i=0; i<5000; i++) { @@ -84,17 +81,17 @@ describe('$cookies', function() { } //drop if no previous value - scope.$cookies.longCookie = longVal; - scope.$digest(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie'}); + $cookies.longCookie = longVal; + $rootScope.$digest(); + expect($cookies).toEqual({'preexisting': 'oldCookie'}); //reset if previous value existed - scope.$cookies.longCookie = 'shortVal'; - scope.$digest(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie', 'longCookie': 'shortVal'}); - scope.$cookies.longCookie = longVal; - scope.$digest(); - expect(scope.$cookies).toEqual({'preexisting': 'oldCookie', 'longCookie': 'shortVal'}); - }); + $cookies.longCookie = 'shortVal'; + $rootScope.$digest(); + expect($cookies).toEqual({'preexisting': 'oldCookie', 'longCookie': 'shortVal'}); + $cookies.longCookie = longVal; + $rootScope.$digest(); + expect($cookies).toEqual({'preexisting': 'oldCookie', 'longCookie': 'shortVal'}); + })); }); |
