aboutsummaryrefslogtreecommitdiffstats
path: root/test/service/cookieStoreSpec.js
blob: fa4f3ceb5d5d32fed7b264a39f8fbc1a643b76b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
'use strict';

describe('$cookieStore', function() {
  var scope, $browser, $cookieStore;

  beforeEach(function() {
    scope = angular.scope();
    $cookieStore = scope.$service('$cookieStore');
    $browser = scope.$service('$browser');
  });

  afterEach(function(){
    dealoc(scope);
  });


  it('should serialize objects to json', function() {
    $cookieStore.put('objectCookie', {id: 123, name: 'blah'});
    scope.$digest();
    expect($browser.cookies()).toEqual({'objectCookie': '{"id":123,"name":"blah"}'});
  });


  it('should deserialize json to object', function() {
    $browser.cookies('objectCookie', '{"id":123,"name":"blah"}');
    $browser.poll();
    expect($cookieStore.get('objectCookie')).toEqual({id: 123, name: 'blah'});
  });


  it('should delete objects from the store when remove is called', function() {
    $cookieStore.put('gonner', { "I'll":"Be Back"});
    scope.$digest(); //force eval in test
    $browser.poll();
    expect($browser.cookies()).toEqual({'gonner': '{"I\'ll":"Be Back"}'});

    $cookieStore.remove('gonner');
    scope.$digest();
    expect($browser.cookies()).toEqual({});
  });
});