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

Unified Diff: chrome/browser/policy/policy_browsertest.cc

Issue 1056003003: Policy: Ignore ForceSafeSearch if ForceGoogleSafeSearch or ForceYoutubeSafetyMode are enabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Android Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/policy_browsertest.cc
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 0db6d9e4db7fe1a7f8a06432fcacaaa186985e2e..ceb95e014a8692b2481ed2e184f277b3e9e96506 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -794,6 +794,47 @@ class PolicyTest : public InProcessBrowserTest {
contents->GetRenderViewHost()->ForwardMouseEvent(click_event);
}
+ void SetPolicy(PolicyMap* policies, const char* key, base::Value* value) {
+ if (value) {
+ policies->Set(key,
+ POLICY_LEVEL_MANDATORY,
+ POLICY_SCOPE_USER,
+ value,
+ nullptr);
+ } else {
+ policies->Erase(key);
+ }
+ }
+
+ void ApplySafeSearchPolicy(base::FundamentalValue* legacy_safe_search,
+ base::FundamentalValue* google_safe_search,
+ base::FundamentalValue* youtube_safety_mode) {
+ PolicyMap policies;
+ SetPolicy(&policies, key::kForceSafeSearch, legacy_safe_search);
+ SetPolicy(&policies, key::kForceGoogleSafeSearch, google_safe_search);
+ SetPolicy(&policies, key::kForceYouTubeSafetyMode, youtube_safety_mode);
+ UpdateProviderPolicy(policies);
+ }
+
+ void CheckSafeSearch(bool expect_safe_search) {
+ content::WebContents* web_contents =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ content::TestNavigationObserver observer(web_contents);
+ chrome::FocusLocationBar(browser());
+ LocationBar* location_bar = browser()->window()->GetLocationBar();
+ ui_test_utils::SendToOmniboxAndSubmit(location_bar, "http://google.com/");
+ OmniboxEditModel* model = location_bar->GetOmniboxView()->model();
+ observer.Wait();
+ EXPECT_TRUE(model->CurrentMatch(NULL).destination_url.is_valid());
+
+ std::string expected_url("http://google.com/");
+ if (expect_safe_search) {
+ expected_url += "?" + std::string(chrome::kSafeSearchSafeParameter) +
+ "&" + chrome::kSafeSearchSsuiParameter;
+ }
+ EXPECT_EQ(GURL(expected_url), web_contents->GetURL());
+ }
+
MockConfigurationPolicyProvider provider_;
scoped_ptr<extensions::ExtensionCacheFake> test_extension_cache_;
#if defined(OS_CHROMEOS)
@@ -1083,54 +1124,39 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, ForceSafeSearch) {
// Verifies that requests to Google Search engine with the SafeSearch
// enabled set the safe=active&ssui=on parameters at the end of the query.
- TemplateURLService* service = TemplateURLServiceFactory::GetForProfile(
- browser()->profile());
- ui_test_utils::WaitForTemplateURLServiceToLoad(service);
-
// First check that nothing happens.
- content::TestNavigationObserver no_safesearch_observer(
- browser()->tab_strip_model()->GetActiveWebContents());
- chrome::FocusLocationBar(browser());
- LocationBar* location_bar = browser()->window()->GetLocationBar();
- ui_test_utils::SendToOmniboxAndSubmit(location_bar, "http://google.com/");
- OmniboxEditModel* model = location_bar->GetOmniboxView()->model();
- no_safesearch_observer.Wait();
- EXPECT_TRUE(model->CurrentMatch(NULL).destination_url.is_valid());
- content::WebContents* web_contents =
- browser()->tab_strip_model()->GetActiveWebContents();
- GURL expected_without("http://google.com/");
- EXPECT_EQ(expected_without, web_contents->GetURL());
-
- PrefService* prefs = browser()->profile()->GetPrefs();
- EXPECT_FALSE(prefs->IsManagedPreference(prefs::kForceSafeSearch));
- EXPECT_FALSE(prefs->GetBoolean(prefs::kForceSafeSearch));
-
- // Override the default SafeSearch setting using policies.
- PolicyMap policies;
- policies.Set(key::kForceSafeSearch,
- POLICY_LEVEL_MANDATORY,
- POLICY_SCOPE_USER,
- new base::FundamentalValue(true),
- NULL);
- UpdateProviderPolicy(policies);
-
- EXPECT_TRUE(prefs->IsManagedPreference(prefs::kForceSafeSearch));
- EXPECT_TRUE(prefs->GetBoolean(prefs::kForceSafeSearch));
-
- content::TestNavigationObserver safesearch_observer(
- browser()->tab_strip_model()->GetActiveWebContents());
-
- // Verify that searching from google.com works.
- chrome::FocusLocationBar(browser());
- ui_test_utils::SendToOmniboxAndSubmit(location_bar, "http://google.com/");
- safesearch_observer.Wait();
- EXPECT_TRUE(model->CurrentMatch(NULL).destination_url.is_valid());
- web_contents = browser()->tab_strip_model()->GetActiveWebContents();
- std::string expected_url("http://google.com/?");
- expected_url += std::string(chrome::kSafeSearchSafeParameter) + "&" +
- chrome::kSafeSearchSsuiParameter;
- GURL expected_with_parameters(expected_url);
- EXPECT_EQ(expected_with_parameters, web_contents->GetURL());
+ CheckSafeSearch(false);
+
+ // Go over all combinations of (undefined,true,false) for the three policies.
+ for (int i = 0; i < 3 * 3 * 3; i++) {
+ int legacy = i % 3;
+ int google = (i / 3) % 3;
+ int youtube = i / (3 * 3);
+
+ // Override the default SafeSearch setting using policies.
+ ApplySafeSearchPolicy(
+ legacy == 0 ? nullptr : new base::FundamentalValue(legacy == 1),
+ google == 0 ? nullptr : new base::FundamentalValue(google == 1),
+ youtube == 0 ? nullptr : new base::FundamentalValue(youtube == 1));
+
+ // The legacy policy should only have an effect if both google and youtube
+ // are undefined.
+ bool legacy_in_effect = (google == 0 && youtube == 0 && legacy != 0);
+ bool legacy_enabled = legacy_in_effect && legacy == 1;
+
+ PrefService* prefs = browser()->profile()->GetPrefs();
+ EXPECT_EQ(google != 0 || legacy_in_effect,
+ prefs->IsManagedPreference(prefs::kForceGoogleSafeSearch));
+ EXPECT_EQ(google == 1 || legacy_enabled,
+ prefs->GetBoolean(prefs::kForceGoogleSafeSearch));
+
+ EXPECT_EQ(youtube != 0 || legacy_in_effect,
+ prefs->IsManagedPreference(prefs::kForceYouTubeSafetyMode));
+ EXPECT_EQ(youtube == 1 || legacy_enabled,
+ prefs->GetBoolean(prefs::kForceYouTubeSafetyMode));
+
+ CheckSafeSearch(google == 1 || legacy_enabled);
+ }
}
IN_PROC_BROWSER_TEST_F(PolicyTest, ReplaceSearchTerms) {
« no previous file with comments | « chrome/browser/policy/configuration_policy_handler_list_factory.cc ('k') | chrome/browser/profiles/profile_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698