Index: chrome/browser/browsing_data_remover_unittest.cc |
diff --git a/chrome/browser/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data_remover_unittest.cc |
index 2e4249de03528866076029ea0fece8b4e1fc58c3..bc9d532d29d1ac619e41ec99c5864473851b1919 100644 |
--- a/chrome/browser/browsing_data_remover_unittest.cc |
+++ b/chrome/browser/browsing_data_remover_unittest.cc |
@@ -11,14 +11,15 @@ |
#include "chrome/browser/extensions/mock_extension_special_storage_policy.h" |
#include "chrome/browser/history/history.h" |
#include "chrome/test/testing_profile.h" |
-#include "content/browser/appcache/chrome_appcache_service.h" |
#include "testing/gtest/include/gtest/gtest.h" |
-#include "webkit/appcache/appcache_test_helper.h" |
#include "webkit/fileapi/file_system_context.h" |
#include "webkit/fileapi/file_system_operation_context.h" |
#include "webkit/fileapi/file_system_file_util.h" |
#include "webkit/fileapi/file_system_path_manager.h" |
#include "webkit/fileapi/sandbox_mount_point_provider.h" |
+#include "webkit/quota/quota_manager.h" |
+#include "webkit/quota/quota_types.h" |
+#include "webkit/quota/mock_quota_manager.h" |
jochen (gone - plz use gerrit)
2011/07/26 08:55:33
alphabetical ordering
Mike West
2011/07/26 12:08:32
Done.
|
namespace { |
@@ -56,6 +57,8 @@ class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { |
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTester); |
}; |
+// Testers ------------------------------------------------------------------- |
+ |
class RemoveHistoryTester : public BrowsingDataRemoverTester { |
public: |
explicit RemoveHistoryTester(TestingProfile* profile) |
@@ -101,69 +104,45 @@ class RemoveHistoryTester : public BrowsingDataRemoverTester { |
DISALLOW_COPY_AND_ASSIGN(RemoveHistoryTester); |
}; |
-class RemoveFileSystemTester : public BrowsingDataRemoverTester { |
+class RemoveQuotaManagedDataTester : public BrowsingDataRemoverTester { |
public: |
- explicit RemoveFileSystemTester() {} |
- |
- void FindFileSystemPathCallback(bool success, |
- const FilePath& path, |
- const std::string& name) { |
- found_file_system_ = success; |
- Notify(); |
- } |
- |
- bool FileSystemContainsOriginAndType(const GURL& origin, |
- fileapi::FileSystemType type) { |
- sandbox_->ValidateFileSystemRootAndGetURL( |
- origin, type, false, NewCallback(this, |
- &RemoveFileSystemTester::FindFileSystemPathCallback)); |
- BlockUntilNotified(); |
- return found_file_system_; |
- } |
- |
- virtual void PopulateTestFileSystemData(TestingProfile* profile) { |
- // Set up kOrigin1 with a temporary file system, kOrigin2 with a persistent |
- // file system, and kOrigin3 with both. |
- sandbox_ = profile->GetFileSystemContext()->path_manager()-> |
- sandbox_provider(); |
- |
- CreateDirectoryForOriginAndType(kOrigin1, |
- fileapi::kFileSystemTypeTemporary); |
- CreateDirectoryForOriginAndType(kOrigin2, |
- fileapi::kFileSystemTypePersistent); |
- CreateDirectoryForOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypeTemporary); |
- CreateDirectoryForOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypePersistent); |
- |
- EXPECT_FALSE(FileSystemContainsOriginAndType(kOrigin1, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin1, |
- fileapi::kFileSystemTypeTemporary)); |
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin2, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_FALSE(FileSystemContainsOriginAndType(kOrigin2, |
- fileapi::kFileSystemTypeTemporary)); |
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypeTemporary)); |
- } |
- |
- void CreateDirectoryForOriginAndType(const GURL& origin, |
- fileapi::FileSystemType type) { |
- FilePath target = sandbox_->ValidateFileSystemRootAndGetPathOnFileThread( |
- origin, type, FilePath(), true); |
- EXPECT_TRUE(file_util::DirectoryExists(target)); |
+ explicit RemoveQuotaManagedDataTester() {} |
jochen (gone - plz use gerrit)
2011/07/26 08:55:33
remove explicit
Mike West
2011/07/26 12:08:32
Done.
|
+ ~RemoveQuotaManagedDataTester() {} |
jochen (gone - plz use gerrit)
2011/07/26 08:55:33
virtual
Mike West
2011/07/26 12:08:32
Done.
|
+ |
+ void PopulateTestQuotaManagedData(quota::MockQuotaManager* manager) { |
+ // Set up kOrigin1 with a temporary quota, kOrigin2 with a persistent |
+ // quota, and kOrigin3 with both. kOrigin1 is modified now, kOrigin2 |
+ // is modified at the beginning of time, and kOrigin3 is modified one day |
+ // ago. |
+ manager->AddOrigin(kOrigin1, quota::kStorageTypeTemporary, |
+ base::Time::Now()); |
+ manager->AddOrigin(kOrigin2, quota::kStorageTypePersistent, |
+ base::Time()); |
+ manager->AddOrigin(kOrigin3, quota::kStorageTypeTemporary, |
+ base::Time::Now() - base::TimeDelta::FromDays(1)); |
+ manager->AddOrigin(kOrigin3, quota::kStorageTypePersistent, |
+ base::Time::Now() - base::TimeDelta::FromDays(1)); |
+ |
+ EXPECT_TRUE(manager->OriginHasData(kOrigin1, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(manager->OriginHasData(kOrigin2, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_TRUE(manager->OriginHasData(kOrigin3, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(manager->OriginHasData(kOrigin1, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(manager->OriginHasData(kOrigin2, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(manager->OriginHasData(kOrigin3, |
+ quota::kStorageTypePersistent)); |
} |
private: |
- fileapi::SandboxMountPointProvider* sandbox_; |
- bool found_file_system_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveFileSystemTester); |
+ DISALLOW_COPY_AND_ASSIGN(RemoveQuotaManagedDataTester); |
}; |
+// Test Class ---------------------------------------------------------------- |
+ |
class BrowsingDataRemoverTest : public testing::Test { |
public: |
BrowsingDataRemoverTest() |
@@ -205,6 +184,10 @@ class BrowsingDataRemoverTest : public testing::Test { |
return profile_.get(); |
} |
+ quota::MockQuotaManager* GetMockManager() { |
+ return (quota::MockQuotaManager*) profile_->GetQuotaManager(); |
+ } |
+ |
private: |
// message_loop_, as well as all the threads associated with it must be |
// defined before profile_ to prevent explosions. Oh how I love C++. |
@@ -219,6 +202,8 @@ class BrowsingDataRemoverTest : public testing::Test { |
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); |
}; |
+// Tests --------------------------------------------------------------------- |
+ |
TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { |
scoped_ptr<RemoveHistoryTester> tester( |
new RemoveHistoryTester(GetProfile())); |
@@ -250,76 +235,70 @@ TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) { |
EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
} |
-TEST_F(BrowsingDataRemoverTest, RemoveFileSystemsForever) { |
- scoped_ptr<RemoveFileSystemTester> tester(new RemoveFileSystemTester()); |
- |
- tester->PopulateTestFileSystemData(GetProfile()); |
+TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForever) { |
+ scoped_ptr<RemoveQuotaManagedDataTester> tester( |
+ new RemoveQuotaManagedDataTester()); |
+ tester->PopulateTestQuotaManagedData(GetMockManager()); |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
base::Time::Now(), BrowsingDataRemover::REMOVE_COOKIES, tester.get()); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin1, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin1, |
- fileapi::kFileSystemTypeTemporary)); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin2, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin2, |
- fileapi::kFileSystemTypeTemporary)); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypePersistent)); |
- EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin3, |
- fileapi::kFileSystemTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypePersistent)); |
+} |
+ |
+TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
+ scoped_ptr<RemoveQuotaManagedDataTester> tester( |
+ new RemoveQuotaManagedDataTester()); |
+ tester->PopulateTestQuotaManagedData(GetMockManager()); |
+ |
+ BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
+ base::Time::Now(), BrowsingDataRemover::REMOVE_COOKIES, tester.get()); |
+ |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypePersistent)); |
} |
-TEST_F(BrowsingDataRemoverTest, RemoveAppCacheForever) { |
- // Set up ChromeAppCacheService. |
- scoped_refptr<ChromeAppCacheService> appcache_service = |
- new ChromeAppCacheService(NULL); |
- const content::ResourceContext* resource_context = NULL; |
- scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
- new MockExtensionSpecialStoragePolicy; |
- mock_policy->AddProtected(kProtectedManifest.GetOrigin()); |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- NewRunnableMethod(appcache_service.get(), |
- &ChromeAppCacheService::InitializeOnIOThread, |
- FilePath(), |
- resource_context, |
- mock_policy)); |
- MessageLoop::current()->RunAllPending(); |
- TestingProfile* profile = GetProfile(); |
- profile->SetAppCacheService(appcache_service); |
- profile->SetExtensionSpecialStoragePolicy(mock_policy); |
- |
- // Add data into the AppCacheStorage. |
- appcache::AppCacheTestHelper appcache_helper; |
- appcache_helper.AddGroupAndCache(appcache_service, kNormalManifest); |
- appcache_helper.AddGroupAndCache(appcache_service, kProtectedManifest); |
- |
- // Verify that adding the data succeeded. |
- std::set<GURL> origins; |
- appcache_helper.GetOriginsWithCaches(appcache_service, &origins); |
- EXPECT_EQ(2UL, origins.size()); |
- EXPECT_TRUE(origins.find(kProtectedManifest.GetOrigin()) != origins.end()); |
- EXPECT_TRUE(origins.find(kNormalManifest.GetOrigin()) != origins.end()); |
- |
- // Set up the object to be tested. |
- scoped_ptr<BrowsingDataRemoverTester> tester(new BrowsingDataRemoverTester()); |
- BrowsingDataRemover* remover = new BrowsingDataRemover( |
- profile, BrowsingDataRemover::EVERYTHING, base::Time::Now()); |
- remover->AddObserver(tester.get()); |
- |
- // Remove the appcaches and wait for it to complete. BrowsingDataRemover |
- // deletes itself when it completes. |
- remover->Remove(BrowsingDataRemover::REMOVE_COOKIES); |
- tester->BlockUntilNotified(); |
- |
- // Results: appcaches for the normal origin got deleted, appcaches for the |
- // protected origin didn't. |
- appcache_helper.GetOriginsWithCaches(appcache_service, &origins); |
- EXPECT_EQ(1UL, origins.size()); |
- EXPECT_TRUE(origins.find(kProtectedManifest.GetOrigin()) != origins.end()); |
+TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { |
+ scoped_ptr<RemoveQuotaManagedDataTester> tester( |
+ new RemoveQuotaManagedDataTester()); |
+ tester->PopulateTestQuotaManagedData(GetMockManager()); |
+ |
+ BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, |
+ base::Time::Now(), BrowsingDataRemover::REMOVE_COOKIES, tester.get()); |
+ |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypeTemporary)); |
+ EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, |
+ quota::kStorageTypePersistent)); |
+ EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, |
+ quota::kStorageTypePersistent)); |
} |
} // namespace |