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 |
deleted file mode 100644 |
index 522a4245a426b2a5febd12864d501dc38ec23839..0000000000000000000000000000000000000000 |
--- a/chrome/browser/browsing_data_remover_unittest.cc |
+++ /dev/null |
@@ -1,1156 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/browsing_data_remover.h" |
- |
-#include <set> |
-#include <vector> |
- |
-#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/history/history_service_factory.h" |
-#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/pref_names.h" |
-#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" |
-#include "net/base/server_bound_cert_store.h" |
-#include "net/base/ssl_client_cert_type.h" |
-#include "net/cookies/cookie_monster.h" |
-#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" |
- |
-using content::BrowserThread; |
- |
-namespace { |
- |
-const char kTestOrigin1[] = "http://host1:1/"; |
-const char kTestOrigin2[] = "http://host2:1/"; |
-const char kTestOrigin3[] = "http://host3:1/"; |
-const char kTestOriginExt[] = "chrome-extension://abcdefghijklmnopqrstuvwxyz/"; |
-const char kTestOriginDevTools[] = "chrome-devtools://abcdefghijklmnopqrstuvw/"; |
- |
-const GURL kOrigin1(kTestOrigin1); |
-const GURL kOrigin2(kTestOrigin2); |
-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; |
- |
-const quota::QuotaClient::ID kClientFile = quota::QuotaClient::kFileSystem; |
-const quota::QuotaClient::ID kClientDB = quota::QuotaClient::kIndexedDatabase; |
- |
-} // namespace |
- |
-class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer { |
- public: |
- BrowsingDataRemoverTester() |
- : start_(false), |
- already_quit_(false) {} |
- virtual ~BrowsingDataRemoverTester() {} |
- |
- void BlockUntilNotified() { |
- if (!already_quit_) { |
- DCHECK(!start_); |
- start_ = true; |
- MessageLoop::current()->Run(); |
- } else { |
- DCHECK(!start_); |
- already_quit_ = false; |
- } |
- } |
- |
- protected: |
- // BrowsingDataRemover::Observer implementation. |
- virtual void OnBrowsingDataRemoverDone() { |
- Notify(); |
- } |
- |
- void Notify() { |
- if (start_) { |
- DCHECK(!already_quit_); |
- MessageLoop::current()->Quit(); |
- start_ = false; |
- } else { |
- DCHECK(!already_quit_); |
- already_quit_ = true; |
- } |
- } |
- |
- private: |
- // Helps prevent from running message_loop, if the callback invoked |
- // immediately. |
- bool start_; |
- bool already_quit_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTester); |
-}; |
- |
-// Testers ------------------------------------------------------------------- |
- |
-class RemoveCookieTester : public BrowsingDataRemoverTester { |
- public: |
- RemoveCookieTester() : get_cookie_success_(false) { |
- } |
- |
- // Returns true, if the given cookie exists in the cookie store. |
- bool ContainsCookie() { |
- get_cookie_success_ = false; |
- monster_->GetCookiesWithOptionsAsync( |
- kOrigin1, net::CookieOptions(), |
- base::Bind(&RemoveCookieTester::GetCookieCallback, |
- base::Unretained(this))); |
- BlockUntilNotified(); |
- return get_cookie_success_; |
- } |
- |
- void AddCookie() { |
- monster_->SetCookieWithOptionsAsync( |
- kOrigin1, "A=1", net::CookieOptions(), |
- base::Bind(&RemoveCookieTester::SetCookieCallback, |
- base::Unretained(this))); |
- BlockUntilNotified(); |
- } |
- |
- protected: |
- void SetMonster(net::CookieStore* monster) { |
- monster_ = monster; |
- } |
- |
- private: |
- void GetCookieCallback(const std::string& cookies) { |
- if (cookies == "A=1") { |
- get_cookie_success_ = true; |
- } else { |
- EXPECT_EQ("", cookies); |
- get_cookie_success_ = false; |
- } |
- Notify(); |
- } |
- |
- void SetCookieCallback(bool result) { |
- ASSERT_TRUE(result); |
- Notify(); |
- } |
- |
- bool get_cookie_success_; |
- |
- net::CookieStore* monster_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveCookieTester); |
-}; |
- |
-class RemoveProfileCookieTester : public RemoveCookieTester { |
- public: |
- explicit RemoveProfileCookieTester(TestingProfile* profile) { |
- profile->CreateRequestContext(); |
- SetMonster(profile->GetRequestContext()->GetURLRequestContext()-> |
- cookie_store()->GetCookieMonster()); |
- } |
-}; |
- |
-#if defined(ENABLE_SAFE_BROWSING) |
-class RemoveSafeBrowsingCookieTester : public RemoveCookieTester { |
- public: |
- RemoveSafeBrowsingCookieTester() |
- : browser_process_( |
- static_cast<TestingBrowserProcess*>(g_browser_process)) { |
- scoped_refptr<SafeBrowsingService> sb_service = |
- SafeBrowsingService::CreateSafeBrowsingService(); |
- browser_process_->SetSafeBrowsingService(sb_service); |
- sb_service->Initialize(); |
- MessageLoop::current()->RunAllPending(); |
- |
- // Create a cookiemonster that does not have persistant storage, and replace |
- // the SafeBrowsingService created one with it. |
- net::CookieStore* monster = new net::CookieMonster(NULL, NULL); |
- sb_service->url_request_context()->GetURLRequestContext()-> |
- set_cookie_store(monster); |
- SetMonster(monster); |
- } |
- |
- virtual ~RemoveSafeBrowsingCookieTester() { |
- browser_process_->safe_browsing_service()->ShutDown(); |
- MessageLoop::current()->RunAllPending(); |
- browser_process_->SetSafeBrowsingService(NULL); |
- } |
- |
- private: |
- TestingBrowserProcess* browser_process_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveSafeBrowsingCookieTester); |
-}; |
-#endif |
- |
-class RemoveServerBoundCertTester : public BrowsingDataRemoverTester { |
- public: |
- explicit RemoveServerBoundCertTester(TestingProfile* profile) { |
- profile->CreateRequestContext(); |
- server_bound_cert_service_ = profile->GetRequestContext()-> |
- GetURLRequestContext()->server_bound_cert_service(); |
- } |
- |
- int ServerBoundCertCount() { |
- return server_bound_cert_service_->cert_count(); |
- } |
- |
- // Add a server bound cert for |server| with specific creation and expiry |
- // times. The cert and key data will be filled with dummy values. |
- void AddServerBoundCertWithTimes(const std::string& server_identifier, |
- base::Time creation_time, |
- base::Time expiration_time) { |
- GetCertStore()->SetServerBoundCert(server_identifier, |
- net::CLIENT_CERT_RSA_SIGN, creation_time, |
- expiration_time, "a", "b"); |
- } |
- |
- // Add a server bound cert for |server|, with the current time as the |
- // creation time. The cert and key data will be filled with dummy values. |
- void AddServerBoundCert(const std::string& server_identifier) { |
- base::Time now = base::Time::Now(); |
- AddServerBoundCertWithTimes(server_identifier, |
- now, |
- now + base::TimeDelta::FromDays(1)); |
- } |
- |
- net::ServerBoundCertStore* GetCertStore() { |
- return server_bound_cert_service_->GetCertStore(); |
- } |
- |
- private: |
- net::ServerBoundCertService* server_bound_cert_service_; |
- |
- net::SSLClientCertType type_; |
- std::string key_; |
- std::string cert_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveServerBoundCertTester); |
-}; |
- |
-class RemoveHistoryTester : public BrowsingDataRemoverTester { |
- public: |
- explicit RemoveHistoryTester(TestingProfile* profile) |
- : query_url_success_(false) { |
- profile->CreateHistoryService(true, false); |
- history_service_ = HistoryServiceFactory::GetForProfile( |
- profile, Profile::EXPLICIT_ACCESS); |
- } |
- |
- // Returns true, if the given URL exists in the history service. |
- bool HistoryContainsURL(const GURL& url) { |
- history_service_->QueryURL( |
- url, |
- true, |
- &consumer_, |
- base::Bind(&RemoveHistoryTester::SaveResultAndQuit, |
- base::Unretained(this))); |
- BlockUntilNotified(); |
- return query_url_success_; |
- } |
- |
- void AddHistory(const GURL& url, base::Time time) { |
- history_service_->AddPage(url, time, NULL, 0, GURL(), |
- content::PAGE_TRANSITION_LINK, history::RedirectList(), |
- history::SOURCE_BROWSED, false); |
- } |
- |
- private: |
- // Callback for HistoryService::QueryURL. |
- void SaveResultAndQuit(HistoryService::Handle, |
- bool success, |
- const history::URLRow*, |
- history::VisitVector*) { |
- query_url_success_ = success; |
- Notify(); |
- } |
- |
- |
- // For History requests. |
- CancelableRequestConsumer consumer_; |
- bool query_url_success_; |
- |
- // TestingProfile owns the history service; we shouldn't delete it. |
- HistoryService* history_service_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveHistoryTester); |
-}; |
- |
-class RemoveLocalStorageTester : public BrowsingDataRemoverTester { |
- public: |
- explicit RemoveLocalStorageTester(TestingProfile* profile) |
- : profile_(profile), dom_storage_context_(NULL) { |
- dom_storage_context_ = |
- content::BrowserContext::GetDefaultDOMStorageContext(profile); |
- } |
- |
- // Returns true, if the given origin URL exists. |
- bool DOMStorageExistsForOrigin(const GURL& origin) { |
- GetUsageInfo(); |
- BlockUntilNotified(); |
- for (size_t i = 0; i < infos_.size(); ++i) { |
- if (origin == infos_[i].origin) |
- return true; |
- } |
- return false; |
- } |
- |
- void AddDOMStorageTestData() { |
- // Note: This test depends on details of how the dom_storage library |
- // stores data in the host file system. |
- FilePath storage_path = profile_->GetPath().AppendASCII("Local Storage"); |
- 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 GetUsageInfo() { |
- dom_storage_context_->GetUsageInfo( |
- base::Bind(&RemoveLocalStorageTester::OnGotUsageInfo, |
- base::Unretained(this))); |
- } |
- void OnGotUsageInfo( |
- const std::vector<dom_storage::DomStorageContext::UsageInfo>& infos) { |
- infos_ = infos; |
- Notify(); |
- } |
- |
- // We don't own these pointers. |
- TestingProfile* profile_; |
- content::DOMStorageContext* dom_storage_context_; |
- |
- std::vector<dom_storage::DomStorageContext::UsageInfo> infos_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RemoveLocalStorageTester); |
-}; |
-class RemoveQuotaManagedDataTester : public BrowsingDataRemoverTester { |
- public: |
- RemoveQuotaManagedDataTester() {} |
- virtual ~RemoveQuotaManagedDataTester() {} |
- |
- 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); |
- } |
- |
- 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)); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(RemoveQuotaManagedDataTester); |
-}; |
- |
-// Test Class ---------------------------------------------------------------- |
- |
-class BrowsingDataRemoverTest : public testing::Test, |
- public content::NotificationObserver { |
- public: |
- BrowsingDataRemoverTest() |
- : ui_thread_(BrowserThread::UI, &message_loop_), |
- db_thread_(BrowserThread::DB, &message_loop_), |
- webkit_thread_(BrowserThread::WEBKIT_DEPRECATED, &message_loop_), |
- file_thread_(BrowserThread::FILE, &message_loop_), |
- file_user_blocking_thread_( |
- BrowserThread::FILE_USER_BLOCKING, &message_loop_), |
- io_thread_(BrowserThread::IO, &message_loop_), |
- profile_(new TestingProfile()) { |
- registrar_.Add(this, chrome::NOTIFICATION_BROWSING_DATA_REMOVED, |
- content::Source<Profile>(profile_.get())); |
- } |
- |
- virtual ~BrowsingDataRemoverTest() { |
- } |
- |
- void TearDown() { |
- // TestingProfile contains a DOMStorageContext. BrowserContext's destructor |
- // posts a message to the WEBKIT thread to delete some of its member |
- // variables. We need to ensure that the profile is destroyed, and that |
- // the message loop is cleared out, before destroying the threads and loop. |
- // Otherwise we leak memory. |
- profile_.reset(); |
- message_loop_.RunAllPending(); |
- } |
- |
- void BlockUntilBrowsingDataRemoved(BrowsingDataRemover::TimePeriod period, |
- int remove_mask, |
- bool include_protected_origins, |
- BrowsingDataRemoverTester* tester) { |
- BrowsingDataRemover* remover = new BrowsingDataRemover( |
- profile_.get(), period, |
- base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
- remover->OverrideQuotaManagerForTesting(GetMockManager()); |
- remover->AddObserver(tester); |
- |
- 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); |
- tester->BlockUntilNotified(); |
- } |
- |
- void BlockUntilOriginDataRemoved(BrowsingDataRemover::TimePeriod period, |
- int remove_mask, |
- const GURL& remove_origin, |
- BrowsingDataRemoverTester* tester) { |
- BrowsingDataRemover* remover = new BrowsingDataRemover( |
- profile_.get(), period, |
- base::Time::Now() + base::TimeDelta::FromMilliseconds(10)); |
- remover->OverrideQuotaManagerForTesting(GetMockManager()); |
- remover->AddObserver(tester); |
- |
- called_with_details_.reset(new BrowsingDataRemover::NotificationDetails()); |
- |
- // BrowsingDataRemover deletes itself when it completes. |
- remover->RemoveImpl(remove_mask, remove_origin, |
- BrowsingDataHelper::UNPROTECTED_WEB); |
- tester->BlockUntilNotified(); |
- } |
- |
- TestingProfile* GetProfile() { |
- return profile_.get(); |
- } |
- |
- base::Time GetBeginTime() { |
- return called_with_details_->removal_begin; |
- } |
- |
- int GetRemovalMask() { |
- return called_with_details_->removal_mask; |
- } |
- |
- int GetOriginSetMask() { |
- return called_with_details_->origin_set_mask; |
- } |
- |
- quota::MockQuotaManager* GetMockManager() { |
- if (!quota_manager_) { |
- quota_manager_ = new quota::MockQuotaManager( |
- profile_->IsOffTheRecord(), |
- profile_->GetPath(), |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
- profile_->GetExtensionSpecialStoragePolicy()); |
- } |
- return quota_manager_; |
- } |
- |
- // content::NotificationObserver implementation. |
- virtual void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) OVERRIDE { |
- DCHECK_EQ(type, chrome::NOTIFICATION_BROWSING_DATA_REMOVED); |
- |
- // We're not taking ownership of the details object, but storing a copy of |
- // it locally. |
- called_with_details_.reset(new BrowsingDataRemover::NotificationDetails( |
- *content::Details<BrowsingDataRemover::NotificationDetails>( |
- details).ptr())); |
- |
- registrar_.RemoveAll(); |
- } |
- |
- protected: |
- RemoveQuotaManagedDataTester tester_; |
- |
- private: |
- scoped_ptr<BrowsingDataRemover::NotificationDetails> called_with_details_; |
- content::NotificationRegistrar registrar_; |
- |
- // message_loop_, as well as all the threads associated with it must be |
- // defined before profile_ to prevent explosions. Oh how I love C++. |
- MessageLoopForUI message_loop_; |
- content::TestBrowserThread ui_thread_; |
- content::TestBrowserThread db_thread_; |
- content::TestBrowserThread webkit_thread_; |
- content::TestBrowserThread file_thread_; |
- content::TestBrowserThread file_user_blocking_thread_; |
- content::TestBrowserThread io_thread_; |
- scoped_ptr<TestingProfile> profile_; |
- scoped_refptr<quota::MockQuotaManager> quota_manager_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTest); |
-}; |
- |
-// Tests --------------------------------------------------------------------- |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) { |
- scoped_ptr<RemoveProfileCookieTester> tester( |
- new RemoveProfileCookieTester(GetProfile())); |
- |
- tester->AddCookie(); |
- ASSERT_TRUE(tester->ContainsCookie()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_COOKIES, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester->ContainsCookie()); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveCookieLastHour) { |
- scoped_ptr<RemoveProfileCookieTester> tester( |
- new RemoveProfileCookieTester(GetProfile())); |
- |
- tester->AddCookie(); |
- ASSERT_TRUE(tester->ContainsCookie()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_COOKIES, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester->ContainsCookie()); |
-} |
- |
-#if defined(ENABLE_SAFE_BROWSING) |
-TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieForever) { |
- scoped_ptr<RemoveSafeBrowsingCookieTester> tester( |
- new RemoveSafeBrowsingCookieTester()); |
- |
- tester->AddCookie(); |
- ASSERT_TRUE(tester->ContainsCookie()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_COOKIES, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester->ContainsCookie()); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveSafeBrowsingCookieLastHour) { |
- scoped_ptr<RemoveSafeBrowsingCookieTester> tester( |
- new RemoveSafeBrowsingCookieTester()); |
- |
- tester->AddCookie(); |
- ASSERT_TRUE(tester->ContainsCookie()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_COOKIES, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_COOKIES, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- // Removing with time period other than EVERYTHING should not clear safe |
- // browsing cookies. |
- EXPECT_TRUE(tester->ContainsCookie()); |
-} |
-#endif |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertForever) { |
- scoped_ptr<RemoveServerBoundCertTester> tester( |
- new RemoveServerBoundCertTester(GetProfile())); |
- |
- tester->AddServerBoundCert(kTestOrigin1); |
- EXPECT_EQ(1, tester->ServerBoundCertCount()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_EQ(0, tester->ServerBoundCertCount()); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveServerBoundCertLastHour) { |
- scoped_ptr<RemoveServerBoundCertTester> tester( |
- new RemoveServerBoundCertTester(GetProfile())); |
- |
- base::Time now = base::Time::Now(); |
- tester->AddServerBoundCert(kTestOrigin1); |
- tester->AddServerBoundCertWithTimes(kTestOrigin2, |
- now - base::TimeDelta::FromHours(2), |
- now); |
- EXPECT_EQ(2, tester->ServerBoundCertCount()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_SERVER_BOUND_CERTS, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_EQ(1, tester->ServerBoundCertCount()); |
- net::ServerBoundCertStore::ServerBoundCertList certs; |
- tester->GetCertStore()->GetAllServerBoundCerts(&certs); |
- 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_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)); |
-} |
- |
-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_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)); |
-} |
- |
-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_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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) { |
- scoped_ptr<RemoveHistoryTester> tester( |
- new RemoveHistoryTester(GetProfile())); |
- |
- tester->AddHistory(kOrigin1, base::Time::Now()); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_HISTORY, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveHistoryForLastHour) { |
- scoped_ptr<RemoveHistoryTester> tester( |
- new RemoveHistoryTester(GetProfile())); |
- |
- base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
- |
- tester->AddHistory(kOrigin1, base::Time::Now()); |
- tester->AddHistory(kOrigin2, two_hours_ago); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_HISTORY, false, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_FALSE(tester->HistoryContainsURL(kOrigin1)); |
- EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
-} |
- |
-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) { |
- tester_.PopulateTestQuotaManagedData(GetMockManager()); |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyTemporary) { |
- tester_.PopulateTestQuotaManagedTemporaryData(GetMockManager()); |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverOnlyPersistent) { |
- tester_.PopulateTestQuotaManagedPersistentData(GetMockManager()); |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverNeither) { |
- GetMockManager(); // Creates the QuotaManager instance. |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForeverSpecificOrigin) { |
- tester_.PopulateTestQuotaManagedData(GetMockManager()); |
- |
- // Remove Origin 1. |
- BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastHour) { |
- tester_.PopulateTestQuotaManagedData(GetMockManager()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedDataForLastWeek) { |
- tester_.PopulateTestQuotaManagedData(GetMockManager()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_WEEK, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedUnprotectedOrigins) { |
- // Protect kOrigin1. |
- scoped_refptr<MockExtensionSpecialStoragePolicy> mock_policy = |
- new MockExtensionSpecialStoragePolicy; |
- mock_policy->AddProtected(kOrigin1.GetOrigin()); |
- GetProfile()->SetExtensionSpecialStoragePolicy(mock_policy); |
- |
- tester_.PopulateTestQuotaManagedData(GetMockManager()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_WEBSQL | |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_INDEXEDDB, false, &tester_); |
- |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedProtectedSpecificOrigin) { |
- // 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 failure. |
- BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, kOrigin1, &tester_); |
- |
- 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)); |
-} |
- |
-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_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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, RemoveQuotaManagedIgnoreExtensionsAndDevTools) { |
- tester_.PopulateTestQuotaManagedNonBrowsingData(GetMockManager()); |
- |
- BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- BrowsingDataRemover::REMOVE_WEBSQL, false, &tester_); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_APPCACHE | |
- BrowsingDataRemover::REMOVE_FILE_SYSTEMS | |
- BrowsingDataRemover::REMOVE_INDEXEDDB | |
- 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)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, OriginBasedHistoryRemoval) { |
- scoped_ptr<RemoveHistoryTester> tester( |
- new RemoveHistoryTester(GetProfile())); |
- |
- base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
- |
- tester->AddHistory(kOrigin1, base::Time::Now()); |
- tester->AddHistory(kOrigin2, two_hours_ago); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
- |
- BlockUntilOriginDataRemoved(BrowsingDataRemover::EVERYTHING, |
- BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- EXPECT_FALSE(tester->HistoryContainsURL(kOrigin2)); |
-} |
- |
-TEST_F(BrowsingDataRemoverTest, OriginAndTimeBasedHistoryRemoval) { |
- scoped_ptr<RemoveHistoryTester> tester( |
- new RemoveHistoryTester(GetProfile())); |
- |
- base::Time two_hours_ago = base::Time::Now() - base::TimeDelta::FromHours(2); |
- |
- tester->AddHistory(kOrigin1, base::Time::Now()); |
- tester->AddHistory(kOrigin2, two_hours_ago); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- ASSERT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
- |
- BlockUntilOriginDataRemoved(BrowsingDataRemover::LAST_HOUR, |
- BrowsingDataRemover::REMOVE_HISTORY, kOrigin2, tester.get()); |
- |
- EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY, GetRemovalMask()); |
- EXPECT_EQ(BrowsingDataHelper::UNPROTECTED_WEB, GetOriginSetMask()); |
- EXPECT_TRUE(tester->HistoryContainsURL(kOrigin1)); |
- EXPECT_TRUE(tester->HistoryContainsURL(kOrigin2)); |
-} |