Skip to content

Commit 472c8e1

Browse files
mateussiqueiramartijn00
authored andcommitted
ensure Store return null if file is not cached
1 parent fcea8d3 commit 472c8e1

File tree

4 files changed

+65
-2
lines changed

4 files changed

+65
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"path_provider_ios","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/path_provider_ios-2.0.10/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.3/","native_build":true,"dependencies":[]}],"android":[{"name":"path_provider_android","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/path_provider_android-2.0.16/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.3/","native_build":true,"dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-2.0.6/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/sqflite-2.0.3/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-2.1.7/","native_build":false,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/mateussiqueira/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-2.1.0/","native_build":false,"dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"path_provider","dependencies":["path_provider_android","path_provider_ios","path_provider_linux","path_provider_macos","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_ios","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"sqflite","dependencies":[]}],"date_created":"2022-07-26 10:05:46.413539","version":"3.0.4"}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// Generated file. Do not edit.
3+
//
4+
5+
// ignore_for_file: directives_ordering
6+
// ignore_for_file: lines_longer_than_80_chars
7+
// ignore_for_file: depend_on_referenced_packages
8+
9+
import 'package:url_launcher_web/url_launcher_web.dart';
10+
11+
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
12+
13+
// ignore: public_member_api_docs
14+
void registerPlugins(Registrar registrar) {
15+
UrlLauncherPlugin.registerWith(registrar);
16+
registrar.registerMessageHandler();
17+
}

flutter_cache_manager/lib/src/cache_store.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:async';
22

33
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
4+
import 'dart:io' as io;
45
import 'package:flutter_cache_manager/src/storage/file_system/file_system.dart';
56

67
///Flutter Cache Manager
@@ -181,8 +182,9 @@ class CacheStore {
181182
if (_futureCache.containsKey(cacheObject.key)) {
182183
_futureCache.remove(cacheObject.key);
183184
}
184-
final file = await fileSystem.createFile(cacheObject.relativePath);
185-
if (await file.exists()) {
185+
final file = io.File(cacheObject.relativePath);
186+
187+
if (file.existsSync()) {
186188
await file.delete();
187189
}
188190
}

flutter_cache_manager/test/cache_store_test.dart

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,27 @@ import 'helpers/mock_cache_info_repository.dart';
1111
import 'helpers/test_configuration.dart';
1212

1313
void main() {
14+
late int fileId;
15+
late String fileName;
16+
late String fileUrl;
17+
late DateTime validTill;
18+
19+
late CacheObject cacheObject;
20+
21+
setUp(() {
22+
fileId = 666;
23+
fileName = 'testimage.png';
24+
fileUrl = 'baseflow.com/test.png';
25+
validTill = DateTime(2017, 9, 7, 17, 30);
26+
27+
cacheObject = CacheObject(
28+
fileUrl,
29+
relativePath: fileName,
30+
id: fileId,
31+
validTill: validTill,
32+
);
33+
});
34+
1435
group('Retrieving files from store', () {
1536
test('Store should return null when file not cached', () async {
1637
var repo = MockCacheInfoRepository();
@@ -36,6 +57,28 @@ void main() {
3657
expect(await store.getFile('baseflow.com/test.png'), isNotNull);
3758
});
3859

60+
test('Store should return null if file is not cached', () async {
61+
var config = createTestConfig();
62+
await config.returnsFile(fileName);
63+
config.returnsCacheObject(fileUrl, fileName, validTill,
64+
id: fileId, key: fileUrl);
65+
66+
var tempDir = createDir();
67+
await (await tempDir).childFile('testimage.png').create();
68+
69+
final store = CacheStore(config);
70+
71+
final _results = Future.wait([
72+
store.removeCachedFile(cacheObject),
73+
store.removeCachedFile(cacheObject),
74+
]);
75+
76+
expect(
77+
() => _results,
78+
returnsNormally,
79+
);
80+
});
81+
3982
test('Store should return null when file is no longer cached', () async {
4083
var repo = MockCacheInfoRepository();
4184

0 commit comments

Comments
 (0)