OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/threading/sequenced_worker_pool.h" | 10 #include "base/threading/sequenced_worker_pool.h" |
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
802 std::string escaped_resource_id = util::EscapeCacheFileName(resource_id); | 802 std::string escaped_resource_id = util::EscapeCacheFileName(resource_id); |
803 std::string escaped_md5 = util::EscapeCacheFileName(md5); | 803 std::string escaped_md5 = util::EscapeCacheFileName(md5); |
804 num_callback_invocations_ = 0; | 804 num_callback_invocations_ = 0; |
805 TestGetCacheFilePath(resource_id, md5, | 805 TestGetCacheFilePath(resource_id, md5, |
806 escaped_resource_id + FilePath::kExtensionSeparator + | 806 escaped_resource_id + FilePath::kExtensionSeparator + |
807 escaped_md5); | 807 escaped_md5); |
808 EXPECT_EQ(0, num_callback_invocations_); | 808 EXPECT_EQ(0, num_callback_invocations_); |
809 } | 809 } |
810 | 810 |
811 TEST_F(GDataCacheTest, StoreToCacheSimple) { | 811 TEST_F(GDataCacheTest, StoreToCacheSimple) { |
| 812 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 813 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 814 |
812 std::string resource_id("pdf:1a2b"); | 815 std::string resource_id("pdf:1a2b"); |
813 std::string md5("abcdef0123456789"); | 816 std::string md5("abcdef0123456789"); |
814 | 817 |
815 // Store an existing file. | 818 // Store an existing file. |
816 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 819 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
817 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 820 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
818 GDataCache::CACHE_TYPE_TMP); | 821 GDataCache::CACHE_TYPE_TMP); |
819 EXPECT_EQ(1, num_callback_invocations_); | 822 EXPECT_EQ(1, num_callback_invocations_); |
820 | 823 |
821 // Store a non-existent file to the same |resource_id| and |md5|. | 824 // Store a non-existent file to the same |resource_id| and |md5|. |
(...skipping 12 matching lines...) Expand all Loading... |
834 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 837 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
835 GDataCache::CACHE_TYPE_TMP); | 838 GDataCache::CACHE_TYPE_TMP); |
836 EXPECT_EQ(1, num_callback_invocations_); | 839 EXPECT_EQ(1, num_callback_invocations_); |
837 | 840 |
838 // Verify that there's only one file with name <resource_id>, i.e. previously | 841 // Verify that there's only one file with name <resource_id>, i.e. previously |
839 // cached file with the different md5 should be deleted. | 842 // cached file with the different md5 should be deleted. |
840 EXPECT_EQ(1U, CountCacheFiles(resource_id, md5)); | 843 EXPECT_EQ(1U, CountCacheFiles(resource_id, md5)); |
841 } | 844 } |
842 | 845 |
843 TEST_F(GDataCacheTest, GetFromCacheSimple) { | 846 TEST_F(GDataCacheTest, GetFromCacheSimple) { |
| 847 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 848 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 849 |
844 std::string resource_id("pdf:1a2b"); | 850 std::string resource_id("pdf:1a2b"); |
845 std::string md5("abcdef0123456789"); | 851 std::string md5("abcdef0123456789"); |
846 // First store a file to cache. | 852 // First store a file to cache. |
847 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 853 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
848 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 854 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
849 GDataCache::CACHE_TYPE_TMP); | 855 GDataCache::CACHE_TYPE_TMP); |
850 | 856 |
851 // Then try to get the existing file from cache. | 857 // Then try to get the existing file from cache. |
852 num_callback_invocations_ = 0; | 858 num_callback_invocations_ = 0; |
853 TestGetFileFromCacheByResourceIdAndMd5( | 859 TestGetFileFromCacheByResourceIdAndMd5( |
(...skipping 10 matching lines...) Expand all Loading... |
864 // Get file from cache with different resource id from existing file but same | 870 // Get file from cache with different resource id from existing file but same |
865 // md5. | 871 // md5. |
866 num_callback_invocations_ = 0; | 872 num_callback_invocations_ = 0; |
867 resource_id = "document:1a2b"; | 873 resource_id = "document:1a2b"; |
868 TestGetFileFromCacheByResourceIdAndMd5( | 874 TestGetFileFromCacheByResourceIdAndMd5( |
869 resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, md5); | 875 resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, md5); |
870 EXPECT_EQ(1, num_callback_invocations_); | 876 EXPECT_EQ(1, num_callback_invocations_); |
871 } | 877 } |
872 | 878 |
873 TEST_F(GDataCacheTest, RemoveFromCacheSimple) { | 879 TEST_F(GDataCacheTest, RemoveFromCacheSimple) { |
| 880 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 881 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 882 |
874 // Use alphanumeric characters for resource id. | 883 // Use alphanumeric characters for resource id. |
875 std::string resource_id("pdf:1a2b"); | 884 std::string resource_id("pdf:1a2b"); |
876 std::string md5("abcdef0123456789"); | 885 std::string md5("abcdef0123456789"); |
877 // First store a file to cache. | 886 // First store a file to cache. |
878 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 887 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
879 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 888 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
880 GDataCache::CACHE_TYPE_TMP); | 889 GDataCache::CACHE_TYPE_TMP); |
881 | 890 |
882 // Then try to remove existing file from cache. | 891 // Then try to remove existing file from cache. |
883 num_callback_invocations_ = 0; | 892 num_callback_invocations_ = 0; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
963 .Times(0); | 972 .Times(0); |
964 | 973 |
965 num_callback_invocations_ = 0; | 974 num_callback_invocations_ = 0; |
966 TestUnpin(resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, | 975 TestUnpin(resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, |
967 test_util::TEST_CACHE_STATE_NONE, | 976 test_util::TEST_CACHE_STATE_NONE, |
968 GDataCache::CACHE_TYPE_TMP /* non-applicable */); | 977 GDataCache::CACHE_TYPE_TMP /* non-applicable */); |
969 EXPECT_EQ(1, num_callback_invocations_); | 978 EXPECT_EQ(1, num_callback_invocations_); |
970 } | 979 } |
971 | 980 |
972 TEST_F(GDataCacheTest, StoreToCachePinned) { | 981 TEST_F(GDataCacheTest, StoreToCachePinned) { |
| 982 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 983 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 984 |
973 std::string resource_id("pdf:1a2b"); | 985 std::string resource_id("pdf:1a2b"); |
974 std::string md5("abcdef0123456789"); | 986 std::string md5("abcdef0123456789"); |
975 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); | 987 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); |
976 | 988 |
977 // Pin a non-existent file. | 989 // Pin a non-existent file. |
978 TestPin(resource_id, md5, GDATA_FILE_OK, | 990 TestPin(resource_id, md5, GDATA_FILE_OK, |
979 test_util::TEST_CACHE_STATE_PINNED, | 991 test_util::TEST_CACHE_STATE_PINNED, |
980 GDataCache::CACHE_TYPE_TMP); | 992 GDataCache::CACHE_TYPE_TMP); |
981 | 993 |
982 // Store an existing file to a previously pinned file. | 994 // Store an existing file to a previously pinned file. |
(...skipping 11 matching lines...) Expand all Loading... |
994 TestStoreToCache(resource_id, md5, FilePath("./non_existent.json"), | 1006 TestStoreToCache(resource_id, md5, FilePath("./non_existent.json"), |
995 GDATA_FILE_ERROR_FAILED, | 1007 GDATA_FILE_ERROR_FAILED, |
996 test_util::TEST_CACHE_STATE_PRESENT | | 1008 test_util::TEST_CACHE_STATE_PRESENT | |
997 test_util::TEST_CACHE_STATE_PINNED | | 1009 test_util::TEST_CACHE_STATE_PINNED | |
998 test_util::TEST_CACHE_STATE_PERSISTENT, | 1010 test_util::TEST_CACHE_STATE_PERSISTENT, |
999 GDataCache::CACHE_TYPE_PERSISTENT); | 1011 GDataCache::CACHE_TYPE_PERSISTENT); |
1000 EXPECT_EQ(1, num_callback_invocations_); | 1012 EXPECT_EQ(1, num_callback_invocations_); |
1001 } | 1013 } |
1002 | 1014 |
1003 TEST_F(GDataCacheTest, GetFromCachePinned) { | 1015 TEST_F(GDataCacheTest, GetFromCachePinned) { |
| 1016 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1017 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1018 |
1004 std::string resource_id("pdf:1a2b"); | 1019 std::string resource_id("pdf:1a2b"); |
1005 std::string md5("abcdef0123456789"); | 1020 std::string md5("abcdef0123456789"); |
1006 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); | 1021 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); |
1007 | 1022 |
1008 // Pin a non-existent file. | 1023 // Pin a non-existent file. |
1009 TestPin(resource_id, md5, GDATA_FILE_OK, | 1024 TestPin(resource_id, md5, GDATA_FILE_OK, |
1010 test_util::TEST_CACHE_STATE_PINNED, | 1025 test_util::TEST_CACHE_STATE_PINNED, |
1011 GDataCache::CACHE_TYPE_TMP); | 1026 GDataCache::CACHE_TYPE_TMP); |
1012 | 1027 |
1013 // Get the non-existent pinned file from cache. | 1028 // Get the non-existent pinned file from cache. |
(...skipping 11 matching lines...) Expand all Loading... |
1025 GDataCache::CACHE_TYPE_PERSISTENT); | 1040 GDataCache::CACHE_TYPE_PERSISTENT); |
1026 | 1041 |
1027 // Get the previously pinned and stored file from cache. | 1042 // Get the previously pinned and stored file from cache. |
1028 num_callback_invocations_ = 0; | 1043 num_callback_invocations_ = 0; |
1029 TestGetFileFromCacheByResourceIdAndMd5( | 1044 TestGetFileFromCacheByResourceIdAndMd5( |
1030 resource_id, md5, GDATA_FILE_OK, md5); | 1045 resource_id, md5, GDATA_FILE_OK, md5); |
1031 EXPECT_EQ(1, num_callback_invocations_); | 1046 EXPECT_EQ(1, num_callback_invocations_); |
1032 } | 1047 } |
1033 | 1048 |
1034 TEST_F(GDataCacheTest, RemoveFromCachePinned) { | 1049 TEST_F(GDataCacheTest, RemoveFromCachePinned) { |
| 1050 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1051 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1052 |
1035 // Use alphanumeric characters for resource_id. | 1053 // Use alphanumeric characters for resource_id. |
1036 std::string resource_id("pdf:1a2b"); | 1054 std::string resource_id("pdf:1a2b"); |
1037 std::string md5("abcdef0123456789"); | 1055 std::string md5("abcdef0123456789"); |
1038 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); | 1056 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); |
1039 | 1057 |
1040 // Store a file to cache, and pin it. | 1058 // Store a file to cache, and pin it. |
1041 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1059 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1042 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1060 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1043 GDataCache::CACHE_TYPE_TMP); | 1061 GDataCache::CACHE_TYPE_TMP); |
1044 TestPin(resource_id, md5, GDATA_FILE_OK, | 1062 TestPin(resource_id, md5, GDATA_FILE_OK, |
(...skipping 20 matching lines...) Expand all Loading... |
1065 test_util::TEST_CACHE_STATE_PINNED | | 1083 test_util::TEST_CACHE_STATE_PINNED | |
1066 test_util::TEST_CACHE_STATE_PERSISTENT, | 1084 test_util::TEST_CACHE_STATE_PERSISTENT, |
1067 GDataCache::CACHE_TYPE_PERSISTENT); | 1085 GDataCache::CACHE_TYPE_PERSISTENT); |
1068 | 1086 |
1069 num_callback_invocations_ = 0; | 1087 num_callback_invocations_ = 0; |
1070 TestRemoveFromCache(resource_id, GDATA_FILE_OK); | 1088 TestRemoveFromCache(resource_id, GDATA_FILE_OK); |
1071 EXPECT_EQ(1, num_callback_invocations_); | 1089 EXPECT_EQ(1, num_callback_invocations_); |
1072 } | 1090 } |
1073 | 1091 |
1074 TEST_F(GDataCacheTest, DirtyCacheSimple) { | 1092 TEST_F(GDataCacheTest, DirtyCacheSimple) { |
| 1093 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1094 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1095 |
1075 std::string resource_id("pdf:1a2b"); | 1096 std::string resource_id("pdf:1a2b"); |
1076 std::string md5("abcdef0123456789"); | 1097 std::string md5("abcdef0123456789"); |
1077 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); | 1098 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); |
1078 | 1099 |
1079 // First store a file to cache. | 1100 // First store a file to cache. |
1080 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1101 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1081 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1102 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1082 GDataCache::CACHE_TYPE_TMP); | 1103 GDataCache::CACHE_TYPE_TMP); |
1083 | 1104 |
1084 // Mark the file dirty. | 1105 // Mark the file dirty. |
(...skipping 16 matching lines...) Expand all Loading... |
1101 | 1122 |
1102 // Clear dirty state of the file. | 1123 // Clear dirty state of the file. |
1103 num_callback_invocations_ = 0; | 1124 num_callback_invocations_ = 0; |
1104 TestClearDirty(resource_id, md5, GDATA_FILE_OK, | 1125 TestClearDirty(resource_id, md5, GDATA_FILE_OK, |
1105 test_util::TEST_CACHE_STATE_PRESENT, | 1126 test_util::TEST_CACHE_STATE_PRESENT, |
1106 GDataCache::CACHE_TYPE_TMP); | 1127 GDataCache::CACHE_TYPE_TMP); |
1107 EXPECT_EQ(1, num_callback_invocations_); | 1128 EXPECT_EQ(1, num_callback_invocations_); |
1108 } | 1129 } |
1109 | 1130 |
1110 TEST_F(GDataCacheTest, DirtyCachePinned) { | 1131 TEST_F(GDataCacheTest, DirtyCachePinned) { |
| 1132 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1133 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1134 |
1111 std::string resource_id("pdf:1a2b"); | 1135 std::string resource_id("pdf:1a2b"); |
1112 std::string md5("abcdef0123456789"); | 1136 std::string md5("abcdef0123456789"); |
1113 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); | 1137 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); |
1114 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); | 1138 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); |
1115 | 1139 |
1116 // First store a file to cache and pin it. | 1140 // First store a file to cache and pin it. |
1117 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1141 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1118 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1142 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1119 GDataCache::CACHE_TYPE_TMP); | 1143 GDataCache::CACHE_TYPE_TMP); |
1120 TestPin(resource_id, md5, GDATA_FILE_OK, | 1144 TestPin(resource_id, md5, GDATA_FILE_OK, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1198 test_util::TEST_CACHE_STATE_PRESENT | | 1222 test_util::TEST_CACHE_STATE_PRESENT | |
1199 test_util::TEST_CACHE_STATE_DIRTY | | 1223 test_util::TEST_CACHE_STATE_DIRTY | |
1200 test_util::TEST_CACHE_STATE_PERSISTENT, | 1224 test_util::TEST_CACHE_STATE_PERSISTENT, |
1201 GDataCache::CACHE_TYPE_PERSISTENT); | 1225 GDataCache::CACHE_TYPE_PERSISTENT); |
1202 | 1226 |
1203 // Verify dirty file still exist at the same pathname. | 1227 // Verify dirty file still exist at the same pathname. |
1204 EXPECT_TRUE(file_util::PathExists(dirty_path)); | 1228 EXPECT_TRUE(file_util::PathExists(dirty_path)); |
1205 } | 1229 } |
1206 | 1230 |
1207 TEST_F(GDataCacheTest, DirtyCacheRepetitive) { | 1231 TEST_F(GDataCacheTest, DirtyCacheRepetitive) { |
| 1232 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1233 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1234 |
1208 std::string resource_id("pdf:1a2b"); | 1235 std::string resource_id("pdf:1a2b"); |
1209 std::string md5("abcdef0123456789"); | 1236 std::string md5("abcdef0123456789"); |
1210 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(3); | 1237 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(3); |
1211 | 1238 |
1212 // First store a file to cache. | 1239 // First store a file to cache. |
1213 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1240 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1214 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1241 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1215 GDataCache::CACHE_TYPE_TMP); | 1242 GDataCache::CACHE_TYPE_TMP); |
1216 | 1243 |
1217 // Mark the file dirty. | 1244 // Mark the file dirty. |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1278 | 1305 |
1279 // Again, clear dirty state of the file, which is no longer dirty. | 1306 // Again, clear dirty state of the file, which is no longer dirty. |
1280 num_callback_invocations_ = 0; | 1307 num_callback_invocations_ = 0; |
1281 TestClearDirty(resource_id, md5, GDATA_FILE_ERROR_INVALID_OPERATION, | 1308 TestClearDirty(resource_id, md5, GDATA_FILE_ERROR_INVALID_OPERATION, |
1282 test_util::TEST_CACHE_STATE_PRESENT, | 1309 test_util::TEST_CACHE_STATE_PRESENT, |
1283 GDataCache::CACHE_TYPE_TMP); | 1310 GDataCache::CACHE_TYPE_TMP); |
1284 EXPECT_EQ(1, num_callback_invocations_); | 1311 EXPECT_EQ(1, num_callback_invocations_); |
1285 } | 1312 } |
1286 | 1313 |
1287 TEST_F(GDataCacheTest, DirtyCacheInvalid) { | 1314 TEST_F(GDataCacheTest, DirtyCacheInvalid) { |
| 1315 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1316 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1317 |
1288 std::string resource_id("pdf:1a2b"); | 1318 std::string resource_id("pdf:1a2b"); |
1289 std::string md5("abcdef0123456789"); | 1319 std::string md5("abcdef0123456789"); |
1290 | 1320 |
1291 // Mark a non-existent file dirty. | 1321 // Mark a non-existent file dirty. |
1292 num_callback_invocations_ = 0; | 1322 num_callback_invocations_ = 0; |
1293 TestMarkDirty(resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, | 1323 TestMarkDirty(resource_id, md5, GDATA_FILE_ERROR_NOT_FOUND, |
1294 test_util::TEST_CACHE_STATE_NONE, | 1324 test_util::TEST_CACHE_STATE_NONE, |
1295 GDataCache::CACHE_TYPE_TMP); | 1325 GDataCache::CACHE_TYPE_TMP); |
1296 EXPECT_EQ(1, num_callback_invocations_); | 1326 EXPECT_EQ(1, num_callback_invocations_); |
1297 | 1327 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1340 TestStoreToCache(resource_id, md5, GetTestFilePath("subdir_feed.json"), | 1370 TestStoreToCache(resource_id, md5, GetTestFilePath("subdir_feed.json"), |
1341 GDATA_FILE_ERROR_IN_USE, | 1371 GDATA_FILE_ERROR_IN_USE, |
1342 test_util::TEST_CACHE_STATE_PRESENT | | 1372 test_util::TEST_CACHE_STATE_PRESENT | |
1343 test_util::TEST_CACHE_STATE_DIRTY | | 1373 test_util::TEST_CACHE_STATE_DIRTY | |
1344 test_util::TEST_CACHE_STATE_PERSISTENT, | 1374 test_util::TEST_CACHE_STATE_PERSISTENT, |
1345 GDataCache::CACHE_TYPE_PERSISTENT); | 1375 GDataCache::CACHE_TYPE_PERSISTENT); |
1346 EXPECT_EQ(1, num_callback_invocations_); | 1376 EXPECT_EQ(1, num_callback_invocations_); |
1347 } | 1377 } |
1348 | 1378 |
1349 TEST_F(GDataCacheTest, RemoveFromDirtyCache) { | 1379 TEST_F(GDataCacheTest, RemoveFromDirtyCache) { |
| 1380 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1381 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1382 |
1350 std::string resource_id("pdf:1a2b"); | 1383 std::string resource_id("pdf:1a2b"); |
1351 std::string md5("abcdef0123456789"); | 1384 std::string md5("abcdef0123456789"); |
1352 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); | 1385 EXPECT_CALL(*mock_cache_observer_, OnCachePinned(resource_id, md5)).Times(1); |
1353 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); | 1386 EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(resource_id)).Times(1); |
1354 | 1387 |
1355 // Store a file to cache, pin it, mark it dirty and commit it. | 1388 // Store a file to cache, pin it, mark it dirty and commit it. |
1356 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1389 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1357 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1390 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1358 GDataCache::CACHE_TYPE_TMP); | 1391 GDataCache::CACHE_TYPE_TMP); |
1359 TestPin(resource_id, md5, GDATA_FILE_OK, | 1392 TestPin(resource_id, md5, GDATA_FILE_OK, |
(...skipping 15 matching lines...) Expand all Loading... |
1375 GDataCache::CACHE_TYPE_PERSISTENT); | 1408 GDataCache::CACHE_TYPE_PERSISTENT); |
1376 | 1409 |
1377 // Try to remove the file. Since file is dirty, it and the corresponding | 1410 // Try to remove the file. Since file is dirty, it and the corresponding |
1378 // pinned and outgoing symlinks should not be removed. | 1411 // pinned and outgoing symlinks should not be removed. |
1379 num_callback_invocations_ = 0; | 1412 num_callback_invocations_ = 0; |
1380 TestRemoveFromCache(resource_id, GDATA_FILE_OK); | 1413 TestRemoveFromCache(resource_id, GDATA_FILE_OK); |
1381 EXPECT_EQ(1, num_callback_invocations_); | 1414 EXPECT_EQ(1, num_callback_invocations_); |
1382 } | 1415 } |
1383 | 1416 |
1384 TEST_F(GDataCacheTest, MountUnmount) { | 1417 TEST_F(GDataCacheTest, MountUnmount) { |
| 1418 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1419 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1420 |
1385 FilePath file_path; | 1421 FilePath file_path; |
1386 std::string resource_id("pdf:1a2b"); | 1422 std::string resource_id("pdf:1a2b"); |
1387 std::string md5("abcdef0123456789"); | 1423 std::string md5("abcdef0123456789"); |
1388 | 1424 |
1389 // First store a file to cache in the tmp subdir. | 1425 // First store a file to cache in the tmp subdir. |
1390 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1426 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1391 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1427 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1392 GDataCache::CACHE_TYPE_TMP); | 1428 GDataCache::CACHE_TYPE_TMP); |
1393 | 1429 |
1394 // Mark the file mounted. | 1430 // Mark the file mounted. |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1472 EXPECT_EQ("pinned:existing", resource_ids[2]); | 1508 EXPECT_EQ("pinned:existing", resource_ids[2]); |
1473 EXPECT_EQ("pinned:non-existent", resource_ids[3]); | 1509 EXPECT_EQ("pinned:non-existent", resource_ids[3]); |
1474 EXPECT_EQ("tmp:`~!@#$%^&*()-_=+[{|]}\\;',<.>/?", resource_ids[4]); | 1510 EXPECT_EQ("tmp:`~!@#$%^&*()-_=+[{|]}\\;',<.>/?", resource_ids[4]); |
1475 EXPECT_EQ("tmp:resource_id", resource_ids[5]); | 1511 EXPECT_EQ("tmp:resource_id", resource_ids[5]); |
1476 } | 1512 } |
1477 | 1513 |
1478 | 1514 |
1479 TEST_F(GDataCacheTest, ClearAllOnUIThread) { | 1515 TEST_F(GDataCacheTest, ClearAllOnUIThread) { |
1480 PrepareForInitCacheTest(); | 1516 PrepareForInitCacheTest(); |
1481 | 1517 |
| 1518 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1519 .Times(AtLeast(1)).WillRepeatedly(Return(kLotsOfSpace)); |
| 1520 |
1482 std::string resource_id("pdf:1a2b"); | 1521 std::string resource_id("pdf:1a2b"); |
1483 std::string md5("abcdef0123456789"); | 1522 std::string md5("abcdef0123456789"); |
1484 | 1523 |
1485 // Store an existing file. | 1524 // Store an existing file. |
1486 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), | 1525 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
1487 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, | 1526 GDATA_FILE_OK, test_util::TEST_CACHE_STATE_PRESENT, |
1488 GDataCache::CACHE_TYPE_TMP); | 1527 GDataCache::CACHE_TYPE_TMP); |
1489 EXPECT_EQ(1, num_callback_invocations_); | 1528 EXPECT_EQ(1, num_callback_invocations_); |
1490 | 1529 |
1491 // Verify that there's only one cached file. | 1530 // Verify that there's only one cached file. |
1492 EXPECT_EQ(1U, CountCacheFiles(resource_id, md5)); | 1531 EXPECT_EQ(1U, CountCacheFiles(resource_id, md5)); |
1493 | 1532 |
1494 // Clear cache. | 1533 // Clear cache. |
1495 GDataFileError error = GDATA_FILE_OK; | 1534 GDataFileError error = GDATA_FILE_OK; |
1496 FilePath file_path; | 1535 FilePath file_path; |
1497 cache_->ClearAllOnUIThread(base::Bind(&OnClearAll, | 1536 cache_->ClearAllOnUIThread(base::Bind(&OnClearAll, |
1498 &error, | 1537 &error, |
1499 &file_path)); | 1538 &file_path)); |
1500 test_util::RunBlockingPoolTask(); | 1539 test_util::RunBlockingPoolTask(); |
1501 EXPECT_EQ(GDATA_FILE_OK, error); | 1540 EXPECT_EQ(GDATA_FILE_OK, error); |
1502 | 1541 |
1503 // Verify that all the cache is removed. | 1542 // Verify that all the cache is removed. |
1504 VerifyRemoveFromCache(error, resource_id, md5); | 1543 VerifyRemoveFromCache(error, resource_id, md5); |
1505 EXPECT_EQ(0U, CountCacheFiles(resource_id, md5)); | 1544 EXPECT_EQ(0U, CountCacheFiles(resource_id, md5)); |
1506 } | 1545 } |
1507 | 1546 |
| 1547 TEST_F(GDataCacheTest, StoreToCacheNoSpace) { |
| 1548 EXPECT_CALL(*mock_free_disk_space_checker_, AmountOfFreeDiskSpace()) |
| 1549 .Times(AtLeast(1)).WillRepeatedly(Return(0)); |
| 1550 |
| 1551 std::string resource_id("pdf:1a2b"); |
| 1552 std::string md5("abcdef0123456789"); |
| 1553 |
| 1554 // Try to store an existing file. |
| 1555 TestStoreToCache(resource_id, md5, GetTestFilePath("root_feed.json"), |
| 1556 GDATA_FILE_ERROR_NO_SPACE, |
| 1557 test_util::TEST_CACHE_STATE_NONE, |
| 1558 GDataCache::CACHE_TYPE_TMP); |
| 1559 EXPECT_EQ(1, num_callback_invocations_); |
| 1560 |
| 1561 // Verify that there's no files added. |
| 1562 EXPECT_EQ(0U, CountCacheFiles(resource_id, md5)); |
| 1563 } |
| 1564 |
| 1565 |
1508 } // namespace gdata | 1566 } // namespace gdata |
OLD | NEW |