From bf33743093a3b24cf282bf520d4c9f1b4a98cfff Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Fri, 3 Oct 2014 13:40:07 +0300 Subject: [PATCH 1/2] refa(localStorageService): revert and refactor PR: #132 --- src/angular-local-storage.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/angular-local-storage.js b/src/angular-local-storage.js index c3cf466..76c01fe 100644 --- a/src/angular-local-storage.js +++ b/src/angular-local-storage.js @@ -83,7 +83,7 @@ angularLocalStorage.provider('localStorageService', function() { } var deriveQualifiedKey = function(key) { return prefix + key; - } + }; // Checks the browser to see if local storage is supported var browserSupportsLocalStorage = (function () { try { @@ -386,14 +386,17 @@ angularLocalStorage.provider('localStorageService', function() { }); }; - var lengthToLocalStorage = function() { - var cant = 0; - for(var iIndex=0; iIndex Date: Fri, 3 Oct 2014 13:40:50 +0300 Subject: [PATCH 2/2] test(localStorageService): test localStorage.length + imprve mock --- test/spec/localStorageSpec.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/spec/localStorageSpec.js b/test/spec/localStorageSpec.js index 1aa066a..8116fd6 100644 --- a/test/spec/localStorageSpec.js +++ b/test/spec/localStorageSpec.js @@ -16,6 +16,13 @@ describe('localStorageService', function() { }, removeItem: function(key) { delete keys[key]; + }, + get length() { + return Object.keys(keys).length; + }, + key: function(i) { + var aKeys = Object.keys(keys); + return aKeys[i] || null; } }; } @@ -264,6 +271,17 @@ describe('localStorageService', function() { expect($rootScope.property).toEqual(localStorageService.get('lsProperty')); })); + it('should be able to return it\'s owned keys amount', inject( + function(localStorageService, $window) { + + for(var i = 0; i < 10; i++) { + localStorageService.set('key' + i, 'val' + i); + $window.localStorage.setItem('key' + i, 'val' + i); + } + expect(localStorageService.length()).toEqual(10); + expect($window.localStorage.length).toEqual(20); + })); + //sessionStorage describe('SessionStorage', function() {