| Index: chrome/browser/policy/policy_browsertest.cc
|
| diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
|
| index 898cee0ba4eac908c8079b7e4ceed1e8deb8a671..426c42c61299e0e261c8ed258cc2e76fbc6ef566 100644
|
| --- a/chrome/browser/policy/policy_browsertest.cc
|
| +++ b/chrome/browser/policy/policy_browsertest.cc
|
| @@ -633,6 +633,86 @@ IN_PROC_BROWSER_TEST_F(PolicyTest, DefaultSearchProvider) {
|
| EXPECT_EQ(GURL(chrome::kAboutBlankURL), web_contents->GetURL());
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(PolicyTest, ReplaceSearchTerms) {
|
| + CommandLine::ForCurrentProcess()->AppendSwitch(
|
| + switches::kEnableInstantExtendedAPI);
|
| +
|
| + // Verifies that a default search is made using the provider configured via
|
| + // policy. Also checks that default search can be completely disabled.
|
| + const string16 kKeyword(ASCIIToUTF16("testsearch"));
|
| + const std::string kSearchURL("http://search.example/search?q={searchTerms}");
|
| + const std::string kAlternateURL0(
|
| + "http://search.example/search#q={searchTerms}");
|
| + const std::string kAlternateURL1("http://search.example/#q={searchTerms}");
|
| +
|
| + TemplateURLService* service = TemplateURLServiceFactory::GetForProfile(
|
| + browser()->profile());
|
| + ui_test_utils::WaitForTemplateURLServiceToLoad(service);
|
| + TemplateURL* default_search = service->GetDefaultSearchProvider();
|
| + ASSERT_TRUE(default_search);
|
| + EXPECT_NE(kKeyword, default_search->keyword());
|
| + EXPECT_NE(kSearchURL, default_search->url());
|
| + EXPECT_NE(kAlternateURL0, default_search->alternate_urls()[0]);
|
| + EXPECT_NE(kAlternateURL1, default_search->alternate_urls()[1]);
|
| +
|
| + // Override the default search provider using policies.
|
| + PolicyMap policies;
|
| + policies.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_USER, base::Value::CreateBooleanValue(true));
|
| + policies.Set(key::kDefaultSearchProviderKeyword, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_USER, base::Value::CreateStringValue(kKeyword));
|
| + policies.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_USER, base::Value::CreateStringValue(kSearchURL));
|
| + base::ListValue* alternate_urls = new base::ListValue();
|
| + alternate_urls->AppendString(kAlternateURL0);
|
| + alternate_urls->AppendString(kAlternateURL1);
|
| + policies.Set(key::kDefaultSearchProviderAlternateURLs, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_USER, alternate_urls);
|
| + provider_.UpdateChromePolicy(policies);
|
| + default_search = service->GetDefaultSearchProvider();
|
| + ASSERT_TRUE(default_search);
|
| + EXPECT_EQ(kKeyword, default_search->keyword());
|
| + EXPECT_EQ(kSearchURL, default_search->url());
|
| + EXPECT_EQ(kAlternateURL0, default_search->alternate_urls()[0]);
|
| + EXPECT_EQ(kAlternateURL1, default_search->alternate_urls()[1]);
|
| +
|
| + // Verify that searching from the omnibox does search term replacement with
|
| + // first URL pattern.
|
| + chrome::FocusLocationBar(browser());
|
| + LocationBar* location_bar = browser()->window()->GetLocationBar();
|
| + ui_test_utils::SendToOmniboxAndSubmit(location_bar,
|
| + "http://search.example/#q=foobar");
|
| + OmniboxEditModel* model = location_bar->GetLocationEntry()->model();
|
| + EXPECT_TRUE(model->CurrentMatch().destination_url.is_valid());
|
| + EXPECT_EQ(ASCIIToUTF16("foobar"), model->CurrentMatch().contents);
|
| +
|
| + // Verify that searching from the omnibox does search term replacement with
|
| + // second URL pattern.
|
| + chrome::FocusLocationBar(browser());
|
| + ui_test_utils::SendToOmniboxAndSubmit(location_bar,
|
| + "http://search.example/search#q=banana");
|
| + model = location_bar->GetLocationEntry()->model();
|
| + EXPECT_TRUE(model->CurrentMatch().destination_url.is_valid());
|
| + EXPECT_EQ(ASCIIToUTF16("banana"), model->CurrentMatch().contents);
|
| +
|
| + // Verify that searching from the omnibox does search term replacement with
|
| + // standard search URL pattern.
|
| + chrome::FocusLocationBar(browser());
|
| + ui_test_utils::SendToOmniboxAndSubmit(location_bar,
|
| + "http://search.example/search?q=tractor+parts");
|
| + model = location_bar->GetLocationEntry()->model();
|
| + EXPECT_TRUE(model->CurrentMatch().destination_url.is_valid());
|
| + EXPECT_EQ(ASCIIToUTF16("tractor parts"), model->CurrentMatch().contents);
|
| +
|
| + // Verify that searching from the omnibox prioritizes hash over query.
|
| + chrome::FocusLocationBar(browser());
|
| + ui_test_utils::SendToOmniboxAndSubmit(location_bar,
|
| + "http://search.example/search?q=tractor+parts#q=foobar");
|
| + model = location_bar->GetLocationEntry()->model();
|
| + EXPECT_TRUE(model->CurrentMatch().destination_url.is_valid());
|
| + EXPECT_EQ(ASCIIToUTF16("foobar"), model->CurrentMatch().contents);
|
| +}
|
| +
|
| // The linux and win bots can't create a GL context. http://crbug.com/103379
|
| #if defined(OS_MACOSX)
|
| IN_PROC_BROWSER_TEST_F(PolicyTest, Disable3DAPIs) {
|
|
|