Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: ios/chrome/browser/snapshots/snapshot_cache_unittest.mm

Issue 2394253002: Fix the snapshot_cache unittests. (Closed)
Patch Set: Fixed test. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/snapshots/snapshot_cache_internal.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
diff --git a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
index 4243130e7a701767a95048ca2a4e3e5f23197054..44d3ad86440f134f2b7ce74731f7a58af1716e4e 100644
--- a/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
+++ b/ios/chrome/browser/snapshots/snapshot_cache_unittest.mm
@@ -9,15 +9,13 @@
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/format_macros.h"
-#include "base/ios/ios_util.h"
#include "base/location.h"
#include "base/mac/bind_objc_block.h"
#include "base/mac/scoped_nsautorelease_pool.h"
#include "base/run_loop.h"
#include "base/strings/sys_string_conversions.h"
#include "base/time/time.h"
-#include "ios/chrome/browser/experimental_flags.h"
-#include "ios/chrome/browser/ui/ui_util.h"
+#import "ios/chrome/browser/snapshots/snapshot_cache_internal.h"
#include "ios/web/public/test/test_web_thread_bundle.h"
#include "ios/web/public/web_thread.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -27,13 +25,6 @@
static const NSUInteger kSessionCount = 10;
static const NSUInteger kSnapshotPixelSize = 8;
-// Promote some implementation methods to public.
-@interface SnapshotCache (Testing)
-+ (base::FilePath)imagePathForSessionID:(NSString*)sessionID;
-+ (base::FilePath)greyImagePathForSessionID:(NSString*)sessionID;
-- (void)handleLowMemory;
-@end
-
namespace {
class SnapshotCacheTest : public PlatformTest {
@@ -204,6 +195,13 @@ class SnapshotCacheTest : public PlatformTest {
return reinterpret_cast<const char*>(CFDataGetBytePtr(data));
}
+ void TriggerMemoryWarning() {
+ // _performMemoryWarning is a private API and must not be compiled into
+ // official builds.
+ [[UIApplication sharedApplication]
+ performSelector:@selector(_performMemoryWarning)];
+ }
+
web::TestWebThreadBundle thread_bundle_;
base::scoped_nsobject<SnapshotCache> snapshotCache_;
base::scoped_nsobject<NSMutableArray> testSessions_;
@@ -214,16 +212,13 @@ class SnapshotCacheTest : public PlatformTest {
// As the snapshots are kept in memory, the same pointer can be retrieved.
// This test also checks that images are correctly removed from the disk.
TEST_F(SnapshotCacheTest, Cache) {
- // Don't run on tablets because color snapshots are not cached so this test
- // can't compare the UIImage pointers directly.
- if (IsIPadIdiom() && !experimental_flags::IsTabSwitcherEnabled()) {
- return;
- }
-
SnapshotCache* cache = GetSnapshotCache();
+ if (![cache inMemoryCacheIsEnabled])
+ return;
+
NSUInteger expectedCacheSize = kSessionCount;
- if (experimental_flags::IsLRUSnapshotCacheEnabled())
+ if ([cache usesLRUCache])
expectedCacheSize = MIN(kSessionCount, [cache lruCacheMaxSize]);
// Put all images in the cache.
@@ -347,17 +342,8 @@ TEST_F(SnapshotCacheTest, Purge) {
}
// Loads the color images into the cache, and pins two of them. Ensures that
-// only the two pinned IDs remain in memory after a call to -handleLowMemory.
-TEST_F(SnapshotCacheTest, HandleLowMemory) {
-// TODO(crbug.com/455209): This test failed on iPad iOS8 device, but may no
-// longer be failing on iOS 9 and up. Should test by re-enabling and monitor.
-#if !TARGET_IPHONE_SIMULATOR
- if (IsIPadIdiom()) {
- LOG(WARNING) << "Test disabled on iPad device.";
- return;
- }
-#endif
-
+// only the two pinned IDs remain in memory after a memory warning.
+TEST_F(SnapshotCacheTest, HandleMemoryWarning) {
LoadAllColorImagesIntoCache(true);
SnapshotCache* cache = GetSnapshotCache();
@@ -369,15 +355,15 @@ TEST_F(SnapshotCacheTest, HandleLowMemory) {
[set addObject:secondPinnedID];
cache.pinnedIDs = set;
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled())
- [cache handleLowMemory];
-
- BOOL expectedValue = YES;
- if (IsIPadIdiom() && !experimental_flags::IsTabSwitcherEnabled())
- expectedValue = NO;
+ TriggerMemoryWarning();
- EXPECT_EQ(expectedValue, [cache hasImageInMemory:firstPinnedID]);
- EXPECT_EQ(expectedValue, [cache hasImageInMemory:secondPinnedID]);
+ if ([cache inMemoryCacheIsEnabled]) {
+ EXPECT_EQ(YES, [cache hasImageInMemory:firstPinnedID]);
+ EXPECT_EQ(YES, [cache hasImageInMemory:secondPinnedID]);
+ } else {
+ EXPECT_EQ(NO, [cache hasImageInMemory:firstPinnedID]);
+ EXPECT_EQ(NO, [cache hasImageInMemory:secondPinnedID]);
+ }
NSString* notPinnedID = [testSessions_ objectAtIndex:2];
EXPECT_FALSE([cache hasImageInMemory:notPinnedID]);
@@ -424,8 +410,7 @@ TEST_F(SnapshotCacheTest, CreateGreyCacheFromDisk) {
// Remove color images from in-memory cache.
SnapshotCache* cache = GetSnapshotCache();
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled())
- [cache handleLowMemory];
+ TriggerMemoryWarning();
// Request the creation of a grey image cache for all images.
[cache createGreyCache:testSessions_];
@@ -466,8 +451,7 @@ TEST_F(SnapshotCacheTest, MostRecentGreyBlock) {
LoadColorImagesIntoCache(kNumImages, true);
// Make sure the color images are only on disk, to ensure the background
// thread is slow enough to queue up the requests.
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled())
- [cache handleLowMemory];
+ TriggerMemoryWarning();
// Enable the grey image cache.
[cache createGreyCache:sessionIDs];
@@ -538,8 +522,7 @@ TEST_F(SnapshotCacheTest, SizeAndScalePreservation) {
NSString* const kSession = @"foo";
[cache setImage:image withSessionID:kSession];
FlushRunLoops(); // ensure the file is written to disk.
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled())
- [cache handleLowMemory];
+ TriggerMemoryWarning();
// Retrive the image and have the callback verify the size and scale.
__block BOOL callbackComplete = NO;
@@ -575,8 +558,7 @@ TEST_F(SnapshotCacheTest, DeleteRetinaImages) {
NSString* const kSession = @"foo";
[cache setImage:image withSessionID:kSession];
FlushRunLoops(); // ensure the file is written to disk.
- if (!IsIPadIdiom() || experimental_flags::IsTabSwitcherEnabled())
- [cache handleLowMemory];
+ TriggerMemoryWarning();
// Verify the file was writted with @2x in the file name.
base::FilePath retinaFile = [SnapshotCache imagePathForSessionID:kSession];
« no previous file with comments | « ios/chrome/browser/snapshots/snapshot_cache_internal.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698