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

Unified Diff: chrome/browser/browsing_data_remover_unittest.cc

Issue 10413072: Teaching BrowsingDataRemover how to delete application data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Bernhard. Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/browsing_data_remover.cc ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5d180933e71f0f62e038ec3a9d828b511d459c14..3361a751c415d472d3ad67b323c083c5aeec2265 100644
--- a/chrome/browser/browsing_data_remover_unittest.cc
+++ b/chrome/browser/browsing_data_remover_unittest.cc
@@ -9,8 +9,12 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/file_path.h"
+#include "base/file_util.h"
#include "base/message_loop.h"
#include "base/platform_file.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/browsing_data_helper.h"
#include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
#include "chrome/browser/history/history.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
@@ -19,6 +23,7 @@
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_pref_service.h"
#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/dom_storage_context.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_browser_thread.h"
#include "net/base/server_bound_cert_service.h"
@@ -28,6 +33,10 @@
#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 "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
+#include "webkit/glue/webkit_glue.h"
#include "webkit/quota/mock_quota_manager.h"
#include "webkit/quota/quota_manager.h"
#include "webkit/quota/quota_types.h"
@@ -48,6 +57,18 @@ const GURL kOrigin3(kTestOrigin3);
const GURL kOriginExt(kTestOriginExt);
const GURL kOriginDevTools(kTestOriginDevTools);
+const FilePath::CharType kDomStorageOrigin1[] =
+ FILE_PATH_LITERAL("http_host1_1.localstorage");
+
+const FilePath::CharType kDomStorageOrigin2[] =
+ FILE_PATH_LITERAL("http_host2_1.localstorage");
+
+const FilePath::CharType kDomStorageOrigin3[] =
+ FILE_PATH_LITERAL("http_host3_1.localstorage");
+
+const FilePath::CharType kDomStorageExt[] = FILE_PATH_LITERAL(
+ "chrome-extension_abcdefghijklmnopqrstuvwxyz_0.localstorage");
+
const quota::StorageType kTemporary = quota::kStorageTypeTemporary;
const quota::StorageType kPersistent = quota::kStorageTypePersistent;
@@ -288,6 +309,69 @@ class RemoveHistoryTester : public BrowsingDataRemoverTester {
DISALLOW_COPY_AND_ASSIGN(RemoveHistoryTester);
};
+class RemoveLocalStorageTester : public BrowsingDataRemoverTester {
+ public:
+ explicit RemoveLocalStorageTester(TestingProfile* profile)
+ : dom_storage_context_(NULL) {
+ dom_storage_context_ =
+ content::BrowserContext::GetDOMStorageContext(profile);
+ }
+
+ // Returns true, if the given URL exists.
+ bool DOMStorageExistsForOrigin(const GURL& url) {
+ GetLocalStorageFiles();
+ BlockUntilNotified();
+ for (size_t i = 0; i < files_->size(); ++i) {
+ FilePath file_path = (*files_)[i];
+ GURL origin(WebKit::WebSecurityOrigin::createFromDatabaseIdentifier(
+ webkit_glue::FilePathToWebString(file_path.BaseName())).toString());
+ if (origin == url)
+ return true;
+ }
+ return false;
+ }
+
+ void AddDOMStorageTestData() {
+ FilePath storage_path =
+ dom_storage_context_->GetFilePath(
+ ASCIIToUTF16("http_host1_1")).DirName();
+ file_util::CreateDirectory(storage_path);
+
+ // Write some files.
+ file_util::WriteFile(storage_path.Append(kDomStorageOrigin1), NULL, 0);
+ file_util::WriteFile(storage_path.Append(kDomStorageOrigin2), NULL, 0);
+ file_util::WriteFile(storage_path.Append(kDomStorageOrigin3), NULL, 0);
+ file_util::WriteFile(storage_path.Append(kDomStorageExt), NULL, 0);
+
+ // Tweak their dates.
+ file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin1),
+ base::Time::Now());
+ file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin2),
+ base::Time::Now() - base::TimeDelta::FromDays(1));
+ file_util::SetLastModifiedTime(storage_path.Append(kDomStorageOrigin3),
+ base::Time::Now() - base::TimeDelta::FromDays(60));
+ file_util::SetLastModifiedTime(storage_path.Append(kDomStorageExt),
+ base::Time::Now());
+ }
+
+ private:
+ void GetLocalStorageFiles() {
+ dom_storage_context_->GetAllStorageFiles(
+ base::Bind(&RemoveLocalStorageTester::OnGotLocalStorageFiles,
+ base::Unretained(this)));
+ }
+ void OnGotLocalStorageFiles(const std::vector<FilePath>& files) {
+ files_.reset(new std::vector<FilePath>(files));
+ Notify();
+ }
+
+ // TestingProfile owns the context; we shouldn't delete it.
+ content::DOMStorageContext* dom_storage_context_;
+
+ scoped_ptr<std::vector<FilePath> > files_;
+
+ DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester);
+};
class RemoveQuotaManagedDataTester : public BrowsingDataRemoverTester {
public:
RemoveQuotaManagedDataTester() {}
@@ -368,6 +452,7 @@ class BrowsingDataRemoverTest : public testing::Test,
void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period,
int remove_mask,
+ bool include_protected_origins,
BrowsingDataRemoverTester* tester) {
BrowsingDataRemover* remover = new BrowsingDataRemover(
profile_.get(), period,
@@ -378,7 +463,10 @@ class BrowsingDataRemoverTest : public testing::Test,
called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
// BrowsingDataRemover deletes itself when it completes.
- remover->Remove(remove_mask);
+ int origin_set_mask = BrowsingDataHelper::UNPROTECTED_WEB;
+ if (include_protected_origins)
+ origin_set_mask |= BrowsingDataHelper::PROTECTED_WEB;
+ remover->Remove(remove_mask, origin_set_mask);
tester->BlockUntilNotified();
}
@@ -395,7 +483,8 @@ class BrowsingDataRemoverTest : public testing::Test,
called_with_details_.reset(new BrowsingDataRemover::NotificationDetails());
// BrowsingDataRemover deletes itself when it completes.
- remover->RemoveImpl(remove_mask, remove_origin, false);
+ remover->RemoveImpl(remove_mask, remove_origin,
+ BrowsingDataHelper::UNPROTECTED_WEB);
tester->BlockUntilNotified();
}
@@ -470,7 +559,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) {
ASSERT_TRUE(tester->ContainsCookie());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_COOKIES, tester.get());
+ BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
EXPECT_FALSE(tester->ContainsCookie());
@@ -484,7 +573,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) {
ASSERT_TRUE(tester->ContainsCookie());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
- BrowsingDataRemover::REMOVE_COOKIES, tester.get());
+ BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
EXPECT_FALSE(tester->ContainsCookie());
@@ -499,7 +588,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) {
ASSERT_TRUE(tester->ContainsCookie());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_COOKIES, tester.get());
+ BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
EXPECT_FALSE(tester->ContainsCookie());
@@ -513,7 +602,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieLastHour) {
ASSERT_TRUE(tester->ContainsCookie());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
- BrowsingDataRemover::REMOVE_COOKIES, tester.get());
+ BrowsingDataRemover::REMOVE_COOKIES, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask());
// Removing with time period other than EVERYTHING should not clear safe
@@ -530,7 +619,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertForever) {
EXPECT_EQ(1, tester->ServerBoundCertCount());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, tester.get());
+ BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask());
EXPECT_EQ(0, tester->ServerBoundCertCount());
@@ -548,7 +637,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertLastHour) {
EXPECT_EQ(2, tester->ServerBoundCertCount());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
- BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, tester.get());
+ BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask());
EXPECT_EQ(1, tester->ServerBoundCertCount());
@@ -557,6 +646,77 @@ TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertLastHour) {
EXPECT_EQ(kTestOrigin2, certs.front().server_identifier());
}
+TEST_F(BrowsingDataRemoverTest, RemoveUnprotectedLocalStorageForever) {
+ // Protect kOrigin1.
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ mock_policy->AddProtected(kOrigin1.GetOrigin());
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
+
+ scoped_ptr<RemoveLocalStorageTester> tester(
+ new RemoveLocalStorageTester(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, &tester_);
+
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin3));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
+}
+
+TEST_F(BrowsingDataRemoverTest, RemoveProtectedLocalStorageForever) {
+ // Protect kOrigin1.
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ mock_policy->AddProtected(kOrigin1.GetOrigin());
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
+
+ scoped_ptr<RemoveLocalStorageTester> tester(
+ new RemoveLocalStorageTester(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, &tester_);
+
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin1));
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin3));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
+}
+
+TEST_F(BrowsingDataRemoverTest, RemoveLocalStorageForLastWeek) {
+ scoped_ptr<RemoveLocalStorageTester> tester(
+ new RemoveLocalStorageTester(GetProfile()));
+
+ tester->AddDOMStorageTestData();
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin1));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin2));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
+
+ BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
+ BrowsingDataRemover::REMOVE_LOCAL_STORAGE, false, &tester_);
+
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_LOCAL_STORAGE, GetRemovalMask());
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin1));
+ EXPECT_FALSE(tester->DOMStorageExistsForOrigin(kOrigin2));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOrigin3));
+ EXPECT_TRUE(tester->DOMStorageExistsForOrigin(kOriginExt));
+}
+
TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) {
scoped_ptr<RemoveHistoryTester> tester(
new RemoveHistoryTester(GetProfile()));
@@ -565,7 +725,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) {
ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1));
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_HISTORY, tester.get());
+ BrowsingDataRemover::REMOVE_HISTORY, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1));
@@ -583,7 +743,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) {
ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2));
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
- BrowsingDataRemover::REMOVE_HISTORY, tester.get());
+ BrowsingDataRemover::REMOVE_HISTORY, false, tester.get());
EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask());
EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1));
@@ -617,11 +777,15 @@ TEST_F(BrowsingDataRemoverTest, QuotaClientMaskGeneration) {
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) {
tester_.PopulateTestQuotaManagedData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -639,11 +803,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverBoth) {
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
tester_.PopulateTestQuotaManagedTemporaryData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -661,11 +829,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) {
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
tester_.PopulateTestQuotaManagedPersistentData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -683,11 +855,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) {
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) {
GetMockManager(); // Creates the QuotaManager instance.
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -734,11 +910,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) {
tester_.PopulateTestQuotaManagedData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -757,11 +937,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) {
tester_.PopulateTestQuotaManagedData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -786,11 +970,15 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) {
tester_.PopulateTestQuotaManagedData(GetMockManager());
BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
- BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, &tester_);
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_);
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA, GetRemovalMask());
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_WEBSQL |
+ BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_INDEXEDDB, GetRemovalMask());
EXPECT_TRUE(GetMockManager()->OriginHasData(kOrigin1, kTemporary,
kClientFile));
EXPECT_FALSE(GetMockManager()->OriginHasData(kOrigin2, kTemporary,
@@ -839,6 +1027,40 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) {
kClientFile));
}
+TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedOrigins) {
+ // Protect kOrigin1.
+ scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy =
+ new MockExtensionSpecialStoragePolicy;
+ mock_policy->AddProtected(kOrigin1.GetOrigin());
+ GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy);
+
+ tester_.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, &tester_);
+
+ EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
+ BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
+ BrowsingDataRemover::REMOVE_INDEXEDDB |
+ BrowsingDataRemover::REMOVE_WEBSQL, GetRemovalMask());
+ 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));
+}
+
TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
tester_.PopulateTestQuotaManagedNonBrowsingData(GetMockManager());
@@ -846,7 +1068,7 @@ TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) {
BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
BrowsingDataRemover::REMOVE_INDEXEDDB |
- BrowsingDataRemover::REMOVE_WEBSQL, &tester_);
+ BrowsingDataRemover::REMOVE_WEBSQL, false, &tester_);
EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE |
BrowsingDataRemover::REMOVE_FILE_SYSTEMS |
« no previous file with comments | « chrome/browser/browsing_data_remover.cc ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698