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 228392c639f4b48e51c64285f40e3dbcc0826c49..d6313d2de20423c7910f453f73af24fcb07c82e2 100644 |
--- a/chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
+++ b/chrome/browser/browsing_data/browsing_data_remover_unittest.cc |
@@ -56,11 +56,9 @@ |
#include "net/url_request/url_request_context_getter.h" |
#include "testing/gmock/include/gmock/gmock.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; |
using testing::_; |
using testing::Invoke; |
using testing::WithArgs; |
@@ -95,47 +93,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) {} |
@@ -186,6 +143,93 @@ void FakeDBusCall(const chromeos::BoolDBusMethodCallback& callback) { |
} |
#endif |
+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 ------------------------------------------------------------------- |
@@ -242,14 +286,6 @@ class RemoveCookieTester { |
DISALLOW_COPY_AND_ASSIGN(RemoveCookieTester); |
}; |
-class RemoveProfileCookieTester : public RemoveCookieTester { |
- public: |
- explicit RemoveProfileCookieTester(TestingProfile* profile) { |
- SetMonster(profile->GetRequestContext()->GetURLRequestContext()-> |
- cookie_store()->GetCookieMonster()); |
- } |
-}; |
- |
#if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { |
public: |
@@ -589,7 +625,9 @@ class BrowsingDataRemoverTest : public testing::Test, |
bool include_protected_origins) { |
BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
profile_.get(), period); |
- remover->OverrideQuotaManagerForTesting(GetMockManager()); |
+ |
+ TestStoragePartition storage_partition; |
+ remover->OverrideStoragePartitionForTesting(&storage_partition); |
AwaitCompletionHelper await_completion; |
remover->AddObserver(&await_completion); |
@@ -602,6 +640,10 @@ class BrowsingDataRemoverTest : public testing::Test, |
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 BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
@@ -609,7 +651,8 @@ class BrowsingDataRemoverTest : public testing::Test, |
const GURL& remove_origin) { |
BrowsingDataRemover* remover = BrowsingDataRemover::CreateForPeriod( |
profile_.get(), period); |
- remover->OverrideQuotaManagerForTesting(GetMockManager()); |
+ TestStoragePartition storage_partition; |
+ remover->OverrideStoragePartitionForTesting(&storage_partition); |
AwaitCompletionHelper await_completion; |
remover->AddObserver(&await_completion); |
@@ -620,6 +663,10 @@ class BrowsingDataRemoverTest : public testing::Test, |
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() { |
@@ -638,16 +685,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. |
@@ -671,7 +710,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); |
}; |
@@ -679,31 +719,46 @@ class BrowsingDataRemoverTest : public testing::Test, |
// Tests --------------------------------------------------------------------- |
TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { |
- RemoveProfileCookieTester tester(GetProfile()); |
- |
- tester.AddCookie(); |
- ASSERT_TRUE(tester.ContainsCookie()); |
- |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_COOKIES, false); |
+ BrowsingDataRemover::REMOVE_COOKIES, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester.ContainsCookie()); |
+ |
+ // Verify that storage partition was instructed to remove the cookies. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
+ 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()); |
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
} |
TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) { |
- RemoveProfileCookieTester tester(GetProfile()); |
- |
- tester.AddCookie(); |
- ASSERT_TRUE(tester.ContainsCookie()); |
- |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_COOKIES, false); |
+ BrowsingDataRemover::REMOVE_COOKIES, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester.ContainsCookie()); |
+ |
+ // Verify that storage partition was instructed to remove the cookies. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
+ // Removing with time period other than EVERYTHING should not clear |
+ // persistent storage data. |
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
+ ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
+ EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
} |
#if defined(FULL_SAFE_BROWSING) || defined(MOBILE_SAFE_BROWSING) |
@@ -785,23 +840,29 @@ TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) { |
mock_policy->AddProtected(kOrigin1.GetOrigin()); |
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
- RemoveLocalStorageTester tester(GetProfile()); |
- |
- tester.AddDOMStorageTestData(); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
- |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); |
+ BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
+ |
+ // Verify that storage partition was instructed to remove the data correctly. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
+ 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()); |
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
+ |
+ // Check origin matcher. |
+ 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)); |
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
} |
TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { |
@@ -811,43 +872,63 @@ TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) { |
mock_policy->AddProtected(kOrigin1.GetOrigin()); |
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
- RemoveLocalStorageTester tester(GetProfile()); |
- |
- tester.AddDOMStorageTestData(); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
- |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE, true); |
+ BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
+ true); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::PROTECTED_WEB | |
- BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
+ EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB | |
+ BrowsingDataHelper::PROTECTED_WEB, GetOriginSetMask()); |
+ |
+ // Verify that storage partition was instructed to remove the data correctly. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
+ 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()); |
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
+ |
+ // Check origin matcher all http origin will match since we specified |
+ // both protected and unprotected. |
+ 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)); |
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
} |
TEST_F(BrowsingDataRemoverTest, RemoveLocalStorageForLastWeek) { |
- RemoveLocalStorageTester tester(GetProfile()); |
- |
- tester.AddDOMStorageTestData(); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
+ new MockExtensionSpecialStoragePolicy; |
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, |
- BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false); |
+ BrowsingDataRemover::REMOVE_LOCAL_STORAGE, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin1)); |
- EXPECT_FALSE(tester.DOMStorageExistsForOrigin(kOrigin2)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOrigin3)); |
- EXPECT_TRUE(tester.DOMStorageExistsForOrigin(kOriginExt)); |
+ |
+ // Verify that storage partition was instructed to remove the data correctly. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE)); |
+ // Persistent storage won't be deleted. |
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
+ ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
+ EXPECT_TRUE(removal_data.remove_origin.is_empty()); |
+ EXPECT_EQ(removal_data.remove_begin, GetBeginTime()); |
+ |
+ // Check origin matcher. |
+ 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)); |
+ EXPECT_FALSE(removal_data.origin_matcher.Run(kOriginExt, mock_policy)); |
} |
TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { |
@@ -919,11 +1000,6 @@ TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { |
history_tester.AddHistory(kOrigin1, base::Time::Now()); |
ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
- // Add some cookies. |
- RemoveProfileCookieTester cookie_tester(GetProfile()); |
- cookie_tester.AddCookie(); |
- ASSERT_TRUE(cookie_tester.ContainsCookie()); |
- |
int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
BrowsingDataRemover::REMOVE_COOKIES; |
@@ -933,7 +1009,16 @@ TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypes) { |
EXPECT_EQ(removal_mask, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
EXPECT_FALSE(history_tester.HistoryContainsURL(kOrigin1)); |
- EXPECT_FALSE(cookie_tester.ContainsCookie()); |
+ |
+ // The cookie would be deleted throught the StorageParition, check if the |
+ // partition was requested to remove cookie. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL)); |
} |
// This should crash (DCHECK) in Debug, but death tests don't work properly |
@@ -949,11 +1034,6 @@ TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { |
history_tester.AddHistory(kOrigin1, base::Time::Now()); |
ASSERT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
- // Add some cookies. |
- RemoveProfileCookieTester cookie_tester(GetProfile()); |
- cookie_tester.AddCookie(); |
- ASSERT_TRUE(cookie_tester.ContainsCookie()); |
- |
int removal_mask = BrowsingDataRemover::REMOVE_HISTORY | |
BrowsingDataRemover::REMOVE_COOKIES; |
@@ -962,228 +1042,265 @@ TEST_F(BrowsingDataRemoverTest, RemoveMultipleTypesHistoryProhibited) { |
EXPECT_EQ(removal_mask, GetRemovalMask()); |
EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- // Cookie should be gone; history should remain. |
- EXPECT_FALSE(cookie_tester.ContainsCookie()); |
+ // 1/2. History should remain. |
EXPECT_TRUE(history_tester.HistoryContainsURL(kOrigin1)); |
-} |
-#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)); |
+ // 2/2. The cookie(s) would be deleted throught the StorageParition, check if |
+ // the partition was requested to remove cookie. |
+ StoragePartitionRemovalData removal_data = GetStoragePartitionRemovalData(); |
+ EXPECT_EQ(removal_data.remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::REMOVE_DATA_MASK_COOKIES)); |
+ // Persistent storage won't be deleted, since EVERYTHING was not specified. |
+ EXPECT_EQ(removal_data.quota_storage_remove_mask, |
+ static_cast<uint32>( |
+ StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL & |
+ ~StoragePartition::QUOTA_MANAGED_STORAGE_MASK_PERSISTENT)); |
} |
+#endif |
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) { |
- PopulateTestQuotaManagedData(GetMockManager()); |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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()); |
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
+ new MockExtensionSpecialStoragePolicy; |
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
+ |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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()); |
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
+ new MockExtensionSpecialStoragePolicy; |
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
+ |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB | |
+ BrowsingDataRemover::REMOVE_WEBSQL, |
+ kOrigin1); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
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, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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) { |
@@ -1193,31 +1310,38 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
mock_policy->AddProtected(kOrigin1.GetOrigin()); |
GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy.get()); |
- PopulateTestQuotaManagedData(GetMockManager()); |
- |
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false); |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_WEBSQL | |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
BrowsingDataRemover::REMOVE_WEBSQL | |
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) { |
@@ -1227,32 +1351,39 @@ 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, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1); |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB | |
+ BrowsingDataRemover::REMOVE_WEBSQL, |
+ kOrigin1); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
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) { |
@@ -1262,14 +1393,13 @@ 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, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, true); |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB | |
+ BrowsingDataRemover::REMOVE_WEBSQL, |
+ true); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
@@ -1277,28 +1407,39 @@ 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, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, false); |
+ BrowsingDataRemover::REMOVE_APPCACHE | |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
+ BrowsingDataRemover::REMOVE_INDEXEDDB | |
+ BrowsingDataRemover::REMOVE_WEBSQL, |
+ false); |
EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
@@ -1306,15 +1447,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) { |