diff --git a/src/js/services/secureStorageService.spec.js b/src/js/services/secureStorageService.spec.js index 0b2684895..abfa5d947 100644 --- a/src/js/services/secureStorageService.spec.js +++ b/src/js/services/secureStorageService.spec.js @@ -1,3 +1,105 @@ +describe('secureStorageService in browser', function(){ + var localStorage, + sss; + + beforeEach(function(){ + module('ngLodash'); + module('copayApp.services'); + + localStorage = { + get: jasmine.createSpy(), + set: jasmine.createSpy() + }; + + platformInfoStub = { + }; + + module(function($provide) { + $provide.value('localStorageService', localStorage); + $provide.value('platformInfo', platformInfoStub); + }); + + inject(function($injector){ + sss = $injector.get('secureStorageService'); + }); + + }); + + it('get fails', function() { + var error, key, result; + + localStorage.get.and.callFake(function(k, cb){ + key = k; + cb(new Error('Get error.'), null); + }); + + sss.get('a1234', function(e, res) { + error = e; + result = res; + }); + + expect(error.message).toBe('Get error.'); + expect(result).toBeFalsy(); + expect(key).toBe('a1234:desiredSecure'); + }); + + it('get succeeds', function() { + var error, key, result; + + localStorage.get.and.callFake(function(k, cb){ + key = k; + cb(null, 'The result 1.'); + }); + + sss.get('a123', function(e, res) { + error = e; + result = res; + }); + + expect(error).toBeFalsy(); + expect(result).toBe('The result 1.'); + expect(key).toBe('a123:desiredSecure'); + }); + + it('set fails', function() { + var error, key, value; + + localStorage.set.and.callFake(function(k, v, cb){ + key = k; + value = v; + cb(new Error('Set error.')); + }); + + sss.set('a12345', 'The value 1.', function(e) { + error = e; + }); + + expect(error.message).toBe('Set error.'); + expect(key).toBe('a12345:desiredSecure'); + expect(value).toBe('The value 1.'); + }); + + it('set succeeds', function() { + var error, key, value; + + localStorage.set.and.callFake(function(k, v, cb){ + key = k; + value = v; + cb(null); + }); + + sss.set('ab123', 'The value 2.', function(e) { + error = e; + }); + + expect(error).toBeFalsy(); + expect(key).toBe('ab123:desiredSecure'); + expect(value).toBe('The value 2.') + }); + +}); + + describe('secureStorageService on desktop', function(){ var desktopSss, sss; @@ -99,4 +201,108 @@ describe('secureStorageService on desktop', function(){ }); }); + +describe('secureStorageService on mobile', function(){ + var mobileSss, + sss; + + beforeEach(function(){ + module('ngLodash'); + module('copayApp.services'); + + mobileSss = { + get: jasmine.createSpy(), + set: jasmine.createSpy() + }; + + platformInfoStub = { + isMobile: true + }; + + module(function($provide) { + $provide.value('mobileSecureStorageService', mobileSss); + $provide.value('platformInfo', platformInfoStub); + }); + + inject(function($injector){ + sss = $injector.get('secureStorageService'); + }); + + }); + + it('get fails', function() { + var error, key, result; + + mobileSss.get.and.callFake(function(k, cb){ + key = k; + cb(new Error('Get error.'), null); + }); + + sss.get('a1234', function(e, res) { + error = e; + result = res; + }); + + expect(error.message).toBe('Get error.'); + expect(result).toBeFalsy(); + expect(key).toBe('a1234'); + }); + + it('get succeeds', function() { + var error, key, result; + + mobileSss.get.and.callFake(function(k, cb){ + key = k; + cb(null, 'The result 1.'); + }); + + sss.get('a123', function(e, res) { + error = e; + result = res; + }); + + expect(error).toBeFalsy(); + expect(result).toBe('The result 1.'); + expect(key).toBe('a123'); + }); + + it('set fails', function() { + var error, key, value; + + mobileSss.set.and.callFake(function(k, v, cb){ + key = k; + value = v; + cb(new Error('Set error.')); + }); + + sss.set('a12345', 'The value 1.', function(e) { + error = e; + }); + + expect(error.message).toBe('Set error.'); + expect(key).toBe('a12345'); + expect(value).toBe('The value 1.'); + }); + + it('set succeeds', function() { + var error, key, value; + + mobileSss.set.and.callFake(function(k, v, cb){ + key = k; + value = v; + cb(null); + }); + + sss.set('ab123', 'The value 2.', function(e) { + error = e; + }); + + expect(error).toBeFalsy(); + expect(key).toBe('ab123'); + expect(value).toBe('The value 2.') + }); + +}); + + \ No newline at end of file