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

Unified Diff: chrome/browser/chrome_content_browser_client_unittest.cc

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: Android compilation Created 3 years, 10 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/chrome_content_browser_client.cc ('k') | chrome/browser/chromeos/profiles/profile_helper.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chrome_content_browser_client_unittest.cc
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc
index d70e22d4f7846e3039cc73a4522310c392e733c7..612a31ecb52a6bad842ff68937a5ef6007d7de70 100644
--- a/chrome/browser/chrome_content_browser_client_unittest.cc
+++ b/chrome/browser/chrome_content_browser_client_unittest.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/chrome_content_browser_client.h"
+#include <algorithm>
#include <list>
#include <map>
#include <memory>
@@ -20,6 +21,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
#include "chrome/browser/browsing_data/browsing_data_remover_impl.h"
+#include "chrome/browser/browsing_data/chrome_browsing_data_types.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/test/base/testing_profile.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -358,12 +360,13 @@ class MockBrowsingDataRemover : public BrowsingDataRemoverImpl {
<< "Expectations were set but not verified.";
}
- void RemoveInternal(const base::Time& delete_begin,
- const base::Time& delete_end,
- int remove_mask,
- int origin_type_mask,
- std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
- BrowsingDataRemover::Observer* observer) override {
+ void RemoveInternal(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const std::set<const content::BrowsingDataType*>& remove_mask,
+ int origin_type_mask,
+ std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
+ BrowsingDataRemover::Observer* observer) override {
actual_calls_.emplace_back(delete_begin, delete_end, remove_mask,
origin_type_mask, std::move(filter_builder),
true /* should_compare_filter */);
@@ -377,21 +380,21 @@ class MockBrowsingDataRemover : public BrowsingDataRemoverImpl {
observer->OnBrowsingDataRemoverDone();
}
- void ExpectCall(
- const base::Time& delete_begin,
- const base::Time& delete_end,
- int remove_mask,
- int origin_type_mask,
- std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
+ void ExpectCall(const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const std::set<const content::BrowsingDataType*>& remove_mask,
+ int origin_type_mask,
+ std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) {
expected_calls_.emplace_back(delete_begin, delete_end, remove_mask,
origin_type_mask, std::move(filter_builder),
true /* should_compare_filter */);
}
- void ExpectCallDontCareAboutFilterBuilder(const base::Time& delete_begin,
- const base::Time& delete_end,
- int remove_mask,
- int origin_type_mask) {
+ void ExpectCallDontCareAboutFilterBuilder(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const std::set<const content::BrowsingDataType*>& remove_mask,
+ int origin_type_mask) {
expected_calls_.emplace_back(delete_begin, delete_end, remove_mask,
origin_type_mask,
std::unique_ptr<BrowsingDataFilterBuilder>(),
@@ -407,12 +410,13 @@ class MockBrowsingDataRemover : public BrowsingDataRemoverImpl {
private:
class CallParameters {
public:
- CallParameters(const base::Time& delete_begin,
- const base::Time& delete_end,
- int remove_mask,
- int origin_type_mask,
- std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
- bool should_compare_filter)
+ CallParameters(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ const std::set<const content::BrowsingDataType*>& remove_mask,
+ int origin_type_mask,
+ std::unique_ptr<BrowsingDataFilterBuilder> filter_builder,
+ bool should_compare_filter)
: delete_begin_(delete_begin),
delete_end_(delete_end),
remove_mask_(remove_mask),
@@ -440,7 +444,7 @@ class MockBrowsingDataRemover : public BrowsingDataRemoverImpl {
private:
base::Time delete_begin_;
base::Time delete_end_;
- int remove_mask_;
+ std::set<const content::BrowsingDataType*> remove_mask_;
int origin_type_mask_;
std::unique_ptr<BrowsingDataFilterBuilder> filter_builder_;
bool should_compare_filter_;
@@ -487,33 +491,49 @@ class ChromeContentBrowserClientClearSiteDataTest : public testing::Test {
TEST_F(ChromeContentBrowserClientClearSiteDataTest, Parameters) {
ChromeContentBrowserClient client;
+ // no datatypes
+ std::set<const content::BrowsingDataType*> empty_mask;
+
+ // "cookies"
+ const std::set<const content::BrowsingDataType*> domain_scoped_types = {
+ &kBrowsingDataTypeCookies, &kBrowsingDataTypeChannelIDs,
+ &kBrowsingDataTypePluginData,
+ };
+
+ // "storage"
+ std::set<const content::BrowsingDataType*> storage;
+ std::set_difference(BrowsingDataTypeSetSiteData().begin(),
+ BrowsingDataTypeSetSiteData().end(),
+ domain_scoped_types.begin(), domain_scoped_types.end(),
+ std::inserter(storage, storage.begin()));
+
+ // "storage" + "cache"
+ std::set<const content::BrowsingDataType*> storage_and_cache = storage;
+ storage_and_cache.insert(&kBrowsingDataTypeCache);
+
+ // "cookies" + "storage" + "cache"
+ std::set<const content::BrowsingDataType*> all =
+ BrowsingDataTypeSetSiteData();
+ all.insert(&kBrowsingDataTypeCache);
+
struct TestCase {
bool cookies;
bool storage;
bool cache;
- int mask;
+ const std::set<const content::BrowsingDataType*> mask;
} test_cases[] = {
- {false, false, false, 0},
- {true, false, false, BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA},
- {false, true, false, BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_COOKIES &
- ~BrowsingDataRemover::REMOVE_CHANNEL_IDS &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA},
- {false, false, true, BrowsingDataRemover::REMOVE_CACHE},
- {true, true, false, BrowsingDataRemover::REMOVE_SITE_DATA},
- {true, false, true, BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA |
- BrowsingDataRemover::REMOVE_CACHE},
- {false, true, true, BrowsingDataRemover::REMOVE_CACHE |
- (BrowsingDataRemover::REMOVE_SITE_DATA &
- ~BrowsingDataRemover::REMOVE_COOKIES &
- ~BrowsingDataRemover::REMOVE_CHANNEL_IDS &
- ~BrowsingDataRemover::REMOVE_PLUGIN_DATA)},
- {true, true, true, BrowsingDataRemover::REMOVE_SITE_DATA |
- BrowsingDataRemover::REMOVE_CACHE},
+ {false, false, false, empty_mask},
+ {true, false, false, domain_scoped_types},
+ {false, true, false, storage},
+ {false, false, true, {&kBrowsingDataTypeCache}},
+ {true, true, false, BrowsingDataTypeSetSiteData()},
+ {true,
+ false,
+ true,
+ {&kBrowsingDataTypeCookies, &kBrowsingDataTypeChannelIDs,
+ &kBrowsingDataTypePluginData, &kBrowsingDataTypeCache}},
+ {false, true, true, storage_and_cache},
+ {true, true, true, all},
};
for (unsigned int i = 0; i < arraysize(test_cases); ++i) {
@@ -528,19 +548,26 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, Parameters) {
// Depending on the chosen datatypes, this might result into one or two
// calls. In the latter case, the removal mask will be split into two
// parts - one for the origin deletion and one for the registrable domain.
- const int domain_scoped_types = BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA;
- int registrable_domain_deletion_mask = test_case.mask & domain_scoped_types;
- int origin_deletion_mask = test_case.mask & ~domain_scoped_types;
-
- if (registrable_domain_deletion_mask) {
+ std::set<const content::BrowsingDataType*> registrable_domain_deletion_mask;
+ std::set_intersection(
+ test_case.mask.begin(), test_case.mask.end(),
+ domain_scoped_types.begin(), domain_scoped_types.end(),
+ std::inserter(registrable_domain_deletion_mask,
+ registrable_domain_deletion_mask.begin()));
+
+ std::set<const content::BrowsingDataType*> origin_deletion_mask;
+ std::set_difference(
+ test_case.mask.begin(), test_case.mask.end(),
+ domain_scoped_types.begin(), domain_scoped_types.end(),
+ std::inserter(origin_deletion_mask, origin_deletion_mask.begin()));
+
+ if (!registrable_domain_deletion_mask.empty()) {
remover()->ExpectCallDontCareAboutFilterBuilder(
base::Time(), base::Time::Max(),
registrable_domain_deletion_mask, all_origin_types);
}
- if (origin_deletion_mask) {
+ if (!origin_deletion_mask.empty()) {
remover()->ExpectCallDontCareAboutFilterBuilder(
base::Time(), base::Time::Max(),
origin_deletion_mask, all_origin_types);
@@ -612,9 +639,8 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, RegistrableDomains) {
remover()->ExpectCall(
base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_COOKIES |
- BrowsingDataRemover::REMOVE_CHANNEL_IDS |
- BrowsingDataRemover::REMOVE_PLUGIN_DATA,
+ {&kBrowsingDataTypeCookies, &kBrowsingDataTypeChannelIDs,
+ &kBrowsingDataTypePluginData},
BrowsingDataHelper::ALL, std::move(registrable_domain_filter_builder));
std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder(
@@ -622,10 +648,9 @@ TEST_F(ChromeContentBrowserClientClearSiteDataTest, RegistrableDomains) {
BrowsingDataFilterBuilder::WHITELIST));
origin_filter_builder->AddOrigin(url::Origin(GURL(test_case.origin)));
- remover()->ExpectCall(
- base::Time(), base::Time::Max(),
- BrowsingDataRemover::REMOVE_CACHE, BrowsingDataHelper::ALL,
- std::move(origin_filter_builder));
+ remover()->ExpectCall(base::Time(), base::Time::Max(),
+ {&kBrowsingDataTypeCache}, BrowsingDataHelper::ALL,
+ std::move(origin_filter_builder));
SetClearingFinished(false);
client.ClearSiteData(
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | chrome/browser/chromeos/profiles/profile_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698