From 5b9b340b5095db9fe29d77d56a5a8d9d1e36e3b7 Mon Sep 17 00:00:00 2001 From: Jeremy Tymes Date: Tue, 13 Nov 2012 07:33:26 -0500 Subject: [PATCH] fix($cacheFactory) return undefined when removing non-existent cache entry Making remove behave like get() when an entry does not exist by returning undefined. --- src/ng/cacheFactory.js | 2 ++ test/ng/cacheFactorySpec.js | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/ng/cacheFactory.js b/src/ng/cacheFactory.js index 850d48f297e2..2ff02a374c60 100644 --- a/src/ng/cacheFactory.js +++ b/src/ng/cacheFactory.js @@ -70,6 +70,8 @@ function $CacheFactoryProvider() { remove: function(key) { var lruEntry = lruHash[key]; + if (!lruEntry) return; + if (lruEntry == freshEnd) freshEnd = lruEntry.p; if (lruEntry == staleEnd) staleEnd = lruEntry.n; link(lruEntry.n,lruEntry.p); diff --git a/test/ng/cacheFactorySpec.js b/test/ng/cacheFactorySpec.js index dc68b63d45fa..9d77b304716d 100644 --- a/test/ng/cacheFactorySpec.js +++ b/test/ng/cacheFactorySpec.js @@ -88,6 +88,10 @@ describe('$cacheFactory', function() { expect(cache.get('k2')).toBeUndefined(); })); + it('should return undefined when entry does not exist', inject(function($cacheFactory) { + expect(cache.remove('non-existent')).toBeUndefined(); + })); + it('should stringify keys', inject(function($cacheFactory) { cache.put('123', 'foo');