Skip to content

Commit 16bfd11

Browse files
committed
Remove the cache key mapping for old fullpath style cache keys
1 parent 3d2b0ef commit 16bfd11

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

Storage/FirebaseStorageUI/UIImageView+FirebaseStorage.m

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#import "UIImageView+FirebaseStorage.h"
1818
#import "SDWebImageFirebaseLoader.h"
1919

20-
static SDWebImageManager *SharedFirebaseWebImageManager(void) {
20+
static SDWebImageManager *DefaultFirebaseWebImageManager(void) {
2121
static dispatch_once_t onceToken;
2222
static SDWebImageManager *manager;
2323
dispatch_once(&onceToken, ^{
@@ -121,14 +121,12 @@ - (void)sd_setImageWithStorageReference:(FIRStorageReference *)storageRef
121121
} else {
122122
mutableContext = [NSMutableDictionary dictionary];
123123
}
124-
mutableContext[SDWebImageContextCustomManager] = SharedFirebaseWebImageManager();
125-
mutableContext[SDWebImageContextFirebaseMaxImageSize] = @(size);
126-
127-
// TODO: Current version use `fullpath` as cache key, but not the URL. Do we need to keep compabitle ?
128-
SDWebImageCacheKeyFilter *cacheKeyFilter = [SDWebImageCacheKeyFilter cacheKeyFilterWithBlock:^NSString * _Nullable(NSURL * _Nonnull url) {
129-
return url.sd_storageReference.fullPath;
130-
}];
131-
mutableContext[SDWebImageContextCacheKeyFilter] = cacheKeyFilter;
124+
if (!mutableContext[SDWebImageContextCustomManager]) {
125+
mutableContext[SDWebImageContextCustomManager] = DefaultFirebaseWebImageManager();
126+
}
127+
if (!mutableContext[SDWebImageContextFirebaseMaxImageSize]) {
128+
mutableContext[SDWebImageContextFirebaseMaxImageSize] = @(size);
129+
}
132130

133131
[self sd_setImageWithURL:url placeholderImage:placeholder options:options context:[mutableContext copy] progress:^(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL) {
134132
if (progressBlock) {

Storage/FirebaseStorageUITests/FUIImageViewCategoryTests.m

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ - (void)testItDoesNotCreateADownloadIfImageIsCached {
6262
.andReturn(OCMClassMock([FIRStorageDownloadTask class]));
6363
UIImage *image = [[UIImage alloc] init];
6464
self.cache = [SDImageCache sharedImageCache];
65-
[self.cache storeImage:image forKey:self.ref.fullPath completion:nil];
65+
NSURL *url = [NSURL sd_URLWithStorageReference:self.ref];
66+
[self.cache storeImage:image forKey:url.absoluteString completion:nil];
6667
[self.imageView sd_setImageWithStorageReference:self.ref
6768
maxImageSize:4096
6869
placeholderImage:nil
@@ -97,13 +98,13 @@ - (void)testItSetsAPlaceholder {
9798

9899
- (void)testItCancelsTheCurrentDownloadWhenSettingAnImage {
99100
OCMStub([self.ref dataWithMaxSize:512 completion:[OCMArg any]])
100-
.andReturn(OCMClassMock([FIRStorageDownloadTask class]));
101+
.andReturn(OCMClassMock(NSClassFromString(@"FIRStorageDownloadTask"))); // Must using `NSClassFromString` instead of `FIRStorageDownloadTask.class` for OCMock, or the isKindOfClass: failed.
101102
[self.imageView sd_setImageWithStorageReference:self.ref
102103
maxImageSize:512
103104
placeholderImage:nil
104105
options:SDWebImageFromLoaderOnly // Disable cache
105106
completion:nil];
106-
FIRStorageDownloadTask *download = self.imageView.sd_currentDownloadTask; // TODO: using OCMock, the `isKindOfClass:` return NO and break the real logic. What about using the actual request ?
107+
FIRStorageDownloadTask *download = self.imageView.sd_currentDownloadTask;
107108
self.ref = OCMClassMock([FIRStorageReference class]);
108109
[self.imageView sd_setImageWithStorageReference:self.ref
109110
maxImageSize:512

0 commit comments

Comments
 (0)