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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover_unittest.cc

Issue 37843003: BrowsingDataRemover, (re)use StoragePartition deletion code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Combine functions. Created 7 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
Index: chrome/browser/browsing_data/browsing_data_remover_unittest.cc
diff --git a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc
index 559a19981c6ad0a91f70cf36ed7a2a63574371d5..4b5bf60382268d8fc277547396345ec752081670 100644
--- a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc
@@ -44,11 +44,9 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "webkit/browser/quota/mock_quota_manager.h"
-#include "webkit/browser/quota/quota_manager.h"
-#include "webkit/common/quota/quota_types.h"
using content::BrowserThread;
+using content::StoragePartition;
namespace {
@@ -80,47 +78,6 @@ const base::FilePath::CharType kDomStorageOrigin3[] =
const base::FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL(
"chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage");
-const quota::StorageType kTemporary = quota::kStorageTypeTemporary;
-const quota::StorageType kPersistent = quota::kStorageTypePersistent;
-
-const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem;
-
-void PopulateTestQuotaManagedNonBrowsingData(quota::MockQuotaManager* manager) {
- manager->AddOrigin(kOriginDevTools, kTemporary, kClientFile, base::Time());
- manager->AddOrigin(kOriginDevTools, kPersistent, kClientFile, base::Time());
- manager->AddOrigin(kOriginExt, kTemporary, kClientFile, base::Time());
- manager->AddOrigin(kOriginExt, kPersistent, kClientFile, base::Time());
-}
-
-void PopulateTestQuotaManagedPersistentData(quota::MockQuotaManager* manager) {
- manager->AddOrigin(kOrigin2, kPersistent, kClientFile, base::Time());
- manager->AddOrigin(kOrigin3, kPersistent, kClientFile,
- base::Time::Now() - base::TimeDelta::FromDays(1));
-
- EXPECT_FALSE(manager->OriginHasData(kOrigin1, kPersistent, kClientFile));
- EXPECT_TRUE(manager->OriginHasData(kOrigin2, kPersistent, kClientFile));
- EXPECT_TRUE(manager->OriginHasData(kOrigin3, kPersistent, kClientFile));
-}
-
-void PopulateTestQuotaManagedTemporaryData(quota::MockQuotaManager* manager) {
- manager->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
- manager->AddOrigin(kOrigin3, kTemporary, kClientFile,
- base::Time::Now() - base::TimeDelta::FromDays(1));
-
- EXPECT_TRUE(manager->OriginHasData(kOrigin1, kTemporary, kClientFile));
- EXPECT_FALSE(manager->OriginHasData(kOrigin2, kTemporary, kClientFile));
- EXPECT_TRUE(manager->OriginHasData(kOrigin3, kTemporary, kClientFile));
-}
-
-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.
- PopulateTestQuotaManagedPersistentData(manager);
- PopulateTestQuotaManagedTemporaryData(manager);
-}
-
class AwaitCompletionHelper : public BrowsingDataRemover::Observer {
public:
AwaitCompletionHelper() : start_(false), already_quit_(false) {}
@@ -163,6 +120,93 @@ class AwaitCompletionHelper : public BrowsingDataRemover::Observer {
DISALLOW_COPY_AND_ASSIGN(AwaitCompletionHelper);
};
+struct StoragePartitionRemovalData {
+ uint32 remove_mask;
+ uint32 quota_storage_remove_mask;
+ GURL remove_origin;
+ base::Time remove_begin;
+ base::Time remove_end;
+ StoragePartition::OriginMatcherFunction origin_matcher;
+
+ StoragePartitionRemovalData() : remove_mask(0),
+ quota_storage_remove_mask(0) {}
+};
+
+class TestStoragePartition : public StoragePartition {
+ public:
+ TestStoragePartition() {}
+ virtual ~TestStoragePartition() {}
+
+ // content::StoragePartition implementation.
+ virtual base::FilePath GetPath() OVERRIDE { return base::FilePath(); }
+ virtual net::URLRequestContextGetter* GetURLRequestContext() OVERRIDE {
+ return NULL;
+ }
+ virtual net::URLRequestContextGetter* GetMediaURLRequestContext() OVERRIDE {
+ return NULL;
+ }
+ virtual quota::QuotaManager* GetQuotaManager() OVERRIDE {
+ return NULL;
+ }
+ virtual appcache::AppCacheService* GetAppCacheService() OVERRIDE {
+ return NULL;
+ }
+ virtual fileapi::FileSystemContext* GetFileSystemContext() OVERRIDE {
+ return NULL;
+ }
+ virtual webkit_database::DatabaseTracker* GetDatabaseTracker() OVERRIDE {
+ return NULL;
+ }
+ virtual content::DOMStorageContext* GetDOMStorageContext() OVERRIDE {
+ return NULL;
+ }
+ virtual content::IndexedDBContext* GetIndexedDBContext() OVERRIDE {
+ return NULL;
+ }
+
+ virtual void ClearDataForOrigin(
+ uint32 remove_mask,
+ uint32 quota_storage_remove_mask,
+ const GURL& storage_origin,
+ net::URLRequestContextGetter* rq_context) OVERRIDE {}
+
+ virtual void ClearData(uint32 remove_mask,
+ uint32 quota_storage_remove_mask,
+ const GURL* storage_origin,
+ const OriginMatcherFunction& origin_matcher,
+ const base::Time begin,
+ const base::Time end,
+ const base::Closure& callback) OVERRIDE {
+ // Store stuff to verify parameters' correctness later.
+ storage_partition_removal_data_.remove_mask = remove_mask;
+ storage_partition_removal_data_.quota_storage_remove_mask =
+ quota_storage_remove_mask;
+ storage_partition_removal_data_.remove_origin =
+ storage_origin ? *storage_origin : GURL();
+ storage_partition_removal_data_.remove_begin = begin;
+ storage_partition_removal_data_.remove_end = end;
+ storage_partition_removal_data_.origin_matcher = origin_matcher;
+
+ BrowserThread::PostTask(
+ BrowserThread::UI,
+ FROM_HERE,
+ base::Bind(&TestStoragePartition::AsyncRunCallback,
+ base::Unretained(this), callback));
+ }
+
+ StoragePartitionRemovalData GetStoragePartitionRemovalData() {
+ return storage_partition_removal_data_;
+ }
+ private:
+ void AsyncRunCallback(const base::Closure& callback) {
+ callback.Run();
+ }
+
+ StoragePartitionRemovalData storage_partition_removal_data_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestStoragePartition);
+};
+
} // namespace
// Testers -------------------------------------------------------------------
@@ -566,7 +610,6 @@ class BrowsingDataRemoverTest : public testing::Test,
bool include_protected_origins) {
BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
profile_.get(), period);
- remover->OverrideQuotaManagerForTesting(GetMockManager());
AwaitCompletionHelper await_completion;
remover->AddObserver(&await_completion);
@@ -586,7 +629,6 @@ class BrowsingDataRemoverTest : public testing::Test,
const GURL& remove_origin) {
BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
profile_.get(), period);
- remover->OverrideQuotaManagerForTesting(GetMockManager());
AwaitCompletionHelper await_completion;
remover->AddObserver(&await_completion);
@@ -599,6 +641,56 @@ class BrowsingDataRemoverTest : public testing::Test,
await_completion.BlockUntilNotified();
}
+ void BlockUntilStoragePartitionDataRemoved(
+ BrowsingDataRemover::TimePeriod period,
+ int remove_mask,
+ bool include_protected_origins) {
+ BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
+ profile_.get(), period);
+ TestStoragePartition storage_partition;
+ remover->OverrideStoragePartitionForTesting(&storage_partition);
+
+ AwaitCompletionHelper await_completion;
+ remover->AddObserver(&await_completion);
+
+ called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
+
+ // BrowsingDataRemover deletes itself when it completes.
+ int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB;
+ if (include_protected_origins)
+ origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ remover->Remove(remove_mask, origin_set_mask);
+ await_completion.BlockUntilNotified();
+
+ // Save so we can verify later.
+ storage_partition_removal_data_ =
+ storage_partition.GetStoragePartitionRemovalData();
+ }
+
+ void BlockUntilStoragePartitionDataForOriginRemoved(
+ BrowsingDataRemover::TimePeriod period,
+ int remove_mask,
+ const GURL& remove_origin) {
+ BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod(
+ profile_.get(), period);
+ TestStoragePartition storage_partition;
+ remover->OverrideStoragePartitionForTesting(&storage_partition);
+
+ AwaitCompletionHelper await_completion;
+ remover->AddObserver(&await_completion);
+
+ called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
+
+ // BrowsingDataRemover deletes itself when it completes.
+ remover->RemoveImpl(remove_mask, remove_origin,
+ BrowsingDataHelper::UNPROTECTED_WEB);
+ await_completion.BlockUntilNotified();
+
+ // Save so we can verify later.
+ storage_partition_removal_data_ =
+ storage_partition.GetStoragePartitionRemovalData();
+ }
+
TestingProfile* GetProfile() {
return profile_.get();
}
@@ -615,16 +707,8 @@ class BrowsingDataRemoverTest : public testing::Test,
return called_with_details_->origin_set_mask;
}
- quota::MockQuotaManager* GetMockManager() {
- if (!quota_manager_.get()) {
- quota_manager_ = new quota::MockQuotaManager(
- profile_->IsOffTheRecord(),
- profile_->GetPath(),
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(),
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(),
- profile_->GetExtensionSpecialStoragePolicy());
- }
- return quota_manager_.get();
+ StoragePartitionRemovalData GetStoragePartitionRemovalData() {
+ return storage_partition_removal_data_;
}
// content::NotificationObserver implementation.
@@ -648,7 +732,8 @@ class BrowsingDataRemoverTest : public testing::Test,
content::TestBrowserThreadBundle thread_bundle_;
scoped_ptr<TestingProfile> profile_;
- scoped_refptr<quota::MockQuotaManager> quota_manager_;
+
+ StoragePartitionRemovalData storage_partition_removal_data_;
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest);
};
@@ -945,33 +1030,8 @@ TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) {
}
#endif
-TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) {
- EXPECT_EQ(quota::QuotaClient::kFileSystem,
- BrowsingDataRemover::GenerateQuotaClientMask(
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS));
- EXPECT_EQ(quota::QuotaClient::kDatabase,
- BrowsingDataRemover::GenerateQuotaClientMask(
- BrowsingDataRemover::REMOVE_WEBSQL));
- EXPECT_EQ(quota::QuotaClient::kAppcache,
- BrowsingDataRemover::GenerateQuotaClientMask(
- BrowsingDataRemover::REMOVE_APPCACHE));
- EXPECT_EQ(quota::QuotaClient::kIndexedDatabase,
- BrowsingDataRemover::GenerateQuotaClientMask(
- BrowsingDataRemover::REMOVE_INDEXEDDB));
- EXPECT_EQ(quota::QuotaClient::kFileSystem |
- quota::QuotaClient::kDatabase |
- quota::QuotaClient::kAppcache |
- quota::QuotaClient::kIndexedDatabase,
- BrowsingDataRemover::GenerateQuotaClientMask(
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
- BrowsingDataRemover::REMOVE_WEBSQL |
- BrowsingDataRemover::REMOVE_APPCACHE |
- BrowsingDataRemover::REMOVE_INDEXEDDB));
-}
-
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) {
- PopulateTestQuotaManagedData(GetMockManager());
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -982,23 +1042,27 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
- PopulateTestQuotaManagedTemporaryData(GetMockManager());
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
+
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1009,23 +1073,34 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check that all related origin data would be removed, that is, origin
+ // matcher would match these origin.
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
- PopulateTestQuotaManagedPersistentData(GetMockManager());
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
+
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1036,24 +1111,35 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check that all related origin data would be removed, that is, origin
+ // matcher would match these origin.
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) {
- GetMockManager(); // Creates the QuotaManager instance.
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1064,25 +1150,32 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check that all related origin data would be removed, that is, origin
+ // matcher would match these origin.
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) {
- PopulateTestQuotaManagedData(GetMockManager());
-
// Remove Origin 1.
- BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataForOriginRemoved(
+ BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_INDEXEDDB |
@@ -1093,24 +1186,24 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) {
BrowsingDataRemover::REMOVE_INDEXEDDB |
BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_EQ(removal_data.remove_origin, kOrigin1);
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) {
- PopulateTestQuotaManagedData(GetMockManager());
-
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_HOUR,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1121,24 +1214,29 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+
+ // Persistent data would be left out since we are not removing from
+ // beginning of time.
+ uint32 expected_quota_mask =
+ ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT;
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask);
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+ // Check removal begin time.
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime());
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) {
- PopulateTestQuotaManagedData(GetMockManager());
-
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::LAST_WEEK,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1149,18 +1247,25 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+
+ // Persistent data would be left out since we are not removing from
+ // beginning of time.
+ uint32 expected_quota_mask =
+ ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT;
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, expected_quota_mask);
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+ // Check removal begin time.
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime());
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
@@ -1170,9 +1275,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
mock_policy->AddProtected(kOrigin1.GetOrigin());
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
- PopulateTestQuotaManagedData(GetMockManager());
-
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_WEBSQL |
BrowsingDataRemover::REMOVE_APPCACHE |
@@ -1183,18 +1286,26 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check OriginMatcherFunction, |kOrigin1| would not match mask since it
+ // is protected.
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) {
@@ -1204,10 +1315,9 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) {
mock_policy->AddProtected(kOrigin1.GetOrigin());
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
- PopulateTestQuotaManagedData(GetMockManager());
-
// Try to remove kOrigin1. Expect failure.
- BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataForOriginRemoved(
+ BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_INDEXEDDB |
@@ -1218,18 +1328,26 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) {
BrowsingDataRemover::REMOVE_INDEXEDDB |
BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_EQ(removal_data.remove_origin, kOrigin1);
+
+ // Check OriginMatcherFunction, |kOrigin1| would not match mask since it
+ // is protected.
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
@@ -1239,10 +1357,8 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
mock_policy->AddProtected(kOrigin1.GetOrigin());
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
- PopulateTestQuotaManagedData(GetMockManager());
-
// Try to remove kOrigin1. Expect success.
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_INDEXEDDB |
@@ -1254,24 +1370,34 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB |
BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kTemporary,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kPersistent,
- kClientFile));
- EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin3, kPersistent,
- kClientFile));
+
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check OriginMatcherFunction, |kOrigin1| would match mask since we
+ // would have 'protected' specified in origin_set_mask.
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin1, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin2, mock_policy));
+ EXPECT_TRUE(removal_data.origin_matcher.Run(kOrigin3, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
- PopulateTestQuotaManagedNonBrowsingData(GetMockManager());
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get());
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ BlockUntilStoragePartitionDataRemoved(BrowsingDataRemover::EVERYTHING,
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_INDEXEDDB |
@@ -1283,15 +1409,24 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask());
- // Check that extension and devtools data isn't removed.
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kTemporary,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginExt, kPersistent,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kTemporary,
- kClientFile));
- EXPECT_TRUE(GetMockManager()->OriginHasData(kOriginDevTools, kPersistent,
- kClientFile));
+ // Verify storage partition related stuffs.
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData();
+
+ EXPECT_EQ(removal_data.remove_mask,
+ static_cast<uint32>(
+ StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS |
+ StoragePartition::REMOVE_DATA_MASK_WEBSQL |
+ StoragePartition::REMOVE_DATA_MASK_APPCACHE |
+ StoragePartition::REMOVE_DATA_MASK_INDEXEDDB));
+ EXPECT_EQ(removal_data.quota_storage_remove_mask,
+ static_cast<uint32>(
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL));
+ EXPECT_TRUE(removal_data.remove_origin.is_empty());
+
+ // Check that extension and devtools data wouldn't be removed, that is,
+ // origin matcher would not match these origin.
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy));
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginDevTools, mock_policy));
}
TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) {

Powered by Google App Engine
This is Rietveld 408576698