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

Unified Diff: chrome/browser/ui/search/search_unittest.cc

Issue 12335141: Move c/b/ui/search/search.* to c/b/instant/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 7 years, 9 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/ui/search/search_tab_helper.cc ('k') | chrome/browser/ui/toolbar/toolbar_model_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/search/search_unittest.cc
diff --git a/chrome/browser/ui/search/search_unittest.cc b/chrome/browser/ui/search/search_unittest.cc
deleted file mode 100644
index 6b7744eb677b065b4136ddc5e660ed1198a91776..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/search/search_unittest.cc
+++ /dev/null
@@ -1,317 +0,0 @@
-// Copyright (c) 2013 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 "base/command_line.h"
-#include "base/prefs/pref_service.h"
-#include "chrome/browser/search_engines/template_url_service.h"
-#include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "chrome/browser/ui/search/search.h"
-#include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/common/chrome_switches.h"
-#include "chrome/common/pref_names.h"
-#include "chrome/test/base/browser_with_test_window_test.h"
-#include "chrome/test/base/ui_test_utils.h"
-#include "content/public/browser/web_contents.h"
-
-namespace chrome {
-namespace search {
-
-TEST(EmbeddedSearchFieldTrialTest, GetFieldTrialInfo) {
- FieldTrialFlags flags;
- uint64 group_number = 0;
- const uint64 ZERO = 0;
-
- EXPECT_FALSE(GetFieldTrialInfo("", &flags, &group_number));
- EXPECT_EQ(ZERO, group_number);
- EXPECT_EQ(ZERO, flags.size());
-
- EXPECT_TRUE(GetFieldTrialInfo("Group77", &flags, &group_number));
- EXPECT_EQ(uint64(77), group_number);
- EXPECT_EQ(ZERO, flags.size());
-
- group_number = 0;
- EXPECT_FALSE(GetFieldTrialInfo("Group77.2", &flags, &group_number));
- EXPECT_EQ(ZERO, group_number);
- EXPECT_EQ(ZERO, flags.size());
-
- EXPECT_FALSE(GetFieldTrialInfo("Invalid77", &flags, &group_number));
- EXPECT_EQ(ZERO, group_number);
- EXPECT_EQ(ZERO, flags.size());
-
- EXPECT_FALSE(GetFieldTrialInfo("Invalid77", &flags, NULL));
- EXPECT_EQ(ZERO, flags.size());
-
- EXPECT_TRUE(GetFieldTrialInfo("Group77 ", &flags, &group_number));
- EXPECT_EQ(uint64(77), group_number);
- EXPECT_EQ(ZERO, flags.size());
-
- group_number = 0;
- flags.clear();
- EXPECT_EQ(uint64(9999), GetUInt64ValueForFlagWithDefault("foo", 9999, flags));
- EXPECT_TRUE(GetFieldTrialInfo("Group77 foo:6", &flags, &group_number));
- EXPECT_EQ(uint64(77), group_number);
- EXPECT_EQ(uint64(1), flags.size());
- EXPECT_EQ(uint64(6), GetUInt64ValueForFlagWithDefault("foo", 9999, flags));
-
- group_number = 0;
- flags.clear();
- EXPECT_TRUE(GetFieldTrialInfo(
- "Group77 bar:1 baz:7 cat:dogs", &flags, &group_number));
- EXPECT_EQ(uint64(77), group_number);
- EXPECT_EQ(uint64(3), flags.size());
- EXPECT_EQ(true, GetBoolValueForFlagWithDefault("bar", false, flags));
- EXPECT_EQ(uint64(7), GetUInt64ValueForFlagWithDefault("baz", 0, flags));
- EXPECT_EQ("dogs", GetStringValueForFlagWithDefault("cat", "", flags));
- EXPECT_EQ("default", GetStringValueForFlagWithDefault(
- "moose", "default", flags));
-
- group_number = 0;
- flags.clear();
- EXPECT_FALSE(GetFieldTrialInfo(
- "Group77 bar:1 baz:7 cat:dogs DISABLED", &flags, &group_number));
- EXPECT_EQ(ZERO, group_number);
- EXPECT_EQ(ZERO, flags.size());
-}
-
-class SearchTest : public BrowserWithTestWindowTest {
- protected:
- virtual void SetUp() OVERRIDE {
- BrowserWithTestWindowTest::SetUp();
- TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
- profile(), &TemplateURLServiceFactory::BuildInstanceFor);
- TemplateURLService* template_url_service =
- TemplateURLServiceFactory::GetForProfile(profile());
- ui_test_utils::WaitForTemplateURLServiceToLoad(template_url_service);
-
- TemplateURLData data;
- data.SetURL("http://foo.com/url?bar={searchTerms}");
- data.instant_url = "http://foo.com/instant?foo=foo#foo=foo";
- data.alternate_urls.push_back("http://foo.com/alt#quux={searchTerms}");
- data.search_terms_replacement_key = "strk";
-
- TemplateURL* template_url = new TemplateURL(profile(), data);
- // Takes ownership of |template_url|.
- template_url_service->Add(template_url);
- template_url_service->SetDefaultSearchProvider(template_url);
- }
-};
-
-struct SearchTestCase {
- const char* url;
- bool expected_result;
- const char* comment;
-};
-
-TEST_F(SearchTest, ShouldAssignURLToInstantRendererExtendedDisabled) {
- const SearchTestCase kTestCases[] = {
- {"chrome-search://foo/bar", true, ""},
- {"http://foo.com/instant", true, ""},
- {"http://foo.com/instant?foo=bar", true, ""},
- {"https://foo.com/instant", true, ""},
- {"https://foo.com/instant#foo=bar", true, ""},
- {"HtTpS://fOo.CoM/instant", true, ""},
- {"http://foo.com:80/instant", true, ""},
- {"invalid URL", false, "Invalid URL"},
- {"unknown://scheme/path", false, "Unknown scheme"},
- {"ftp://foo.com/instant", false, "Non-HTTP scheme"},
- {"http://sub.foo.com/instant", false, "Non-exact host"},
- {"http://foo.com:26/instant", false, "Non-default port"},
- {"http://foo.com/instant/bar", false, "Non-exact path"},
- {"http://foo.com/Instant", false, "Case sensitive path"},
- {"http://foo.com/", false, "Non-exact path"},
- {"https://foo.com/", false, "Non-exact path"},
- {kLocalOmniboxPopupURL, false, "Non-extended mode"},
- {"https://foo.com/url?strk", false, "Non-extended mode"},
- {"https://foo.com/alt?strk", false, "Non-extended mode"},
- };
-
- for (size_t i = 0; i < arraysize(kTestCases); ++i) {
- const SearchTestCase& test = kTestCases[i];
- EXPECT_EQ(test.expected_result,
- ShouldAssignURLToInstantRenderer(GURL(test.url), profile()))
- << test.url << " " << test.comment;
- }
-}
-
-TEST_F(SearchTest, ShouldAssignURLToInstantRendererExtendedEnabled) {
- EnableInstantExtendedAPIForTesting();
-
- const SearchTestCase kTestCases[] = {
- {kLocalOmniboxPopupURL, true, ""},
- {"https://foo.com/instant?strk", true, ""},
- {"https://foo.com/instant#strk", true, ""},
- {"https://foo.com/instant?strk=0", true, ""},
- {"https://foo.com/url?strk", true, ""},
- {"https://foo.com/alt?strk", true, ""},
- {"http://foo.com/instant", false, "Non-HTTPS"},
- {"http://foo.com/instant?strk", false, "Non-HTTPS"},
- {"http://foo.com/instant?strk=1", false, "Non-HTTPS"},
- {"https://foo.com/instant", false, "No search terms replacement"},
- {"https://foo.com/?strk", false, "Non-exact path"},
- };
-
- for (size_t i = 0; i < arraysize(kTestCases); ++i) {
- const SearchTestCase& test = kTestCases[i];
- EXPECT_EQ(test.expected_result,
- ShouldAssignURLToInstantRenderer(GURL(test.url), profile()))
- << test.url << " " << test.comment;
- }
-}
-
-TEST_F(SearchTest, CoerceCommandLineURLToTemplateURL) {
- TemplateURL* template_url =
- TemplateURLServiceFactory::GetForProfile(profile())->
- GetDefaultSearchProvider();
- EXPECT_EQ(
- GURL("https://foo.com/instant?bar=bar#bar=bar"),
- CoerceCommandLineURLToTemplateURL(
- GURL("http://myserver.com:9000/dev?bar=bar#bar=bar"),
- template_url->instant_url_ref()));
-}
-
-const SearchTestCase kInstantNTPTestCases[] = {
- {"https://foo.com/instant?strk", true, "Valid Instant URL"},
- {"https://foo.com/instant#strk", true, "Valid Instant URL"},
- {"https://foo.com/url?strk", true, "Valid search URL"},
- {"https://foo.com/url#strk", true, "Valid search URL"},
- {"https://foo.com/alt?strk", true, "Valid alternative URL"},
- {"https://foo.com/alt#strk", true, "Valid alternative URL"},
- {"https://foo.com/url?strk&bar=", true, "No query terms"},
- {"https://foo.com/url?strk&q=abc", true, "No query terms key"},
- {"https://foo.com/url?strk#bar=abc", true, "Query terms key in ref"},
- {"https://foo.com/url?strk&bar=abc", false, "Has query terms"},
- {"http://foo.com/instant?strk=1", false, "Insecure URL"},
- {"https://foo.com/instant", false, "No search terms replacement"},
- {"chrome://blank/", false, "Chrome scheme"},
- {"chrome-search//foo", false, "Chrome-search scheme"},
- {kLocalOmniboxPopupURL, false, "Local omnibox popup"},
- {"https://bar.com/instant?strk=1", false, "Random non-search page"},
-};
-
-TEST_F(SearchTest, InstantNTPExtendedEnabled) {
- EnableInstantExtendedAPIForTesting();
- AddTab(browser(), GURL("chrome://blank"));
- for (size_t i = 0; i < arraysize(kInstantNTPTestCases); ++i) {
- const SearchTestCase& test = kInstantNTPTestCases[i];
- NavigateAndCommitActiveTab(GURL(test.url));
- const content::WebContents* contents =
- browser()->tab_strip_model()->GetWebContentsAt(0);
- EXPECT_EQ(test.expected_result, IsInstantNTP(contents))
- << test.url << " " << test.comment;
- }
-}
-
-TEST_F(SearchTest, InstantNTPExtendedDisabled) {
- AddTab(browser(), GURL("chrome://blank"));
- for (size_t i = 0; i < arraysize(kInstantNTPTestCases); ++i) {
- const SearchTestCase& test = kInstantNTPTestCases[i];
- NavigateAndCommitActiveTab(GURL(test.url));
- const content::WebContents* contents =
- browser()->tab_strip_model()->GetWebContentsAt(0);
- EXPECT_FALSE(IsInstantNTP(contents)) << test.url << " " << test.comment;
- }
-}
-
-TEST_F(SearchTest, InstantNTPCustomNavigationEntry) {
- EnableInstantExtendedAPIForTesting();
- AddTab(browser(), GURL("chrome://blank"));
- for (size_t i = 0; i < arraysize(kInstantNTPTestCases); ++i) {
- const SearchTestCase& test = kInstantNTPTestCases[i];
- NavigateAndCommitActiveTab(GURL(test.url));
- content::WebContents* contents =
- browser()->tab_strip_model()->GetWebContentsAt(0);
- content::NavigationController& controller = contents->GetController();
- controller.SetTransientEntry(
- controller.CreateNavigationEntry(GURL("chrome://blank"),
- content::Referrer(),
- content::PAGE_TRANSITION_LINK,
- false,
- std::string(),
- contents->GetBrowserContext()));
- // The active entry is chrome://blank and not an NTP.
- EXPECT_FALSE(IsInstantNTP(contents));
- EXPECT_EQ(test.expected_result,
- NavEntryIsInstantNTP(contents,
- controller.GetLastCommittedEntry()))
- << test.url << " " << test.comment;
- }
-}
-
-TEST_F(SearchTest, GetInstantURLExtendedDisabled) {
- // Instant is disabled, so no Instant URL.
- EXPECT_EQ(GURL(), GetInstantURL(profile()));
-
- // Enable Instant.
- profile()->GetPrefs()->SetBoolean(prefs::kInstantEnabled, true);
- EXPECT_EQ(GURL("http://foo.com/instant?foo=foo#foo=foo"),
- GetInstantURL(profile()));
-
- // Override the Instant URL on the commandline.
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kInstantURL,
- "http://myserver.com:9000/dev?bar=bar#bar=bar");
- EXPECT_EQ(GURL("http://myserver.com:9000/dev?bar=bar#bar=bar"),
- GetInstantURL(profile()));
-}
-
-TEST_F(SearchTest, GetInstantURLExtendedEnabled) {
- EnableInstantExtendedAPIForTesting();
-
- // Instant is disabled, so no Instant URL.
- EXPECT_EQ(GURL(), GetInstantURL(profile()));
-
- // Enable Instant. Still no Instant URL because "strk" is missing.
- profile()->GetPrefs()->SetBoolean(prefs::kInstantExtendedEnabled, true);
- EXPECT_EQ(GURL(), GetInstantURL(profile()));
-
- {
- // Set an Instant URL with a valid search terms replacement key.
- TemplateURLService* template_url_service =
- TemplateURLServiceFactory::GetForProfile(profile());
-
- TemplateURLData data;
- data.SetURL("http://foo.com/url?bar={searchTerms}");
- data.instant_url = "http://foo.com/instant?foo=foo#foo=foo&strk";
- data.search_terms_replacement_key = "strk";
-
- TemplateURL* template_url = new TemplateURL(profile(), data);
- // Takes ownership of |template_url|.
- template_url_service->Add(template_url);
- template_url_service->SetDefaultSearchProvider(template_url);
- }
-
- // Now there should be a valid Instant URL. Note the HTTPS "upgrade".
- EXPECT_EQ(GURL("https://foo.com/instant?foo=foo#foo=foo&strk"),
- GetInstantURL(profile()));
-
- // Enable suggest. No difference.
- profile()->GetPrefs()->SetBoolean(prefs::kSearchSuggestEnabled, true);
- EXPECT_EQ(GURL("https://foo.com/instant?foo=foo#foo=foo&strk"),
- GetInstantURL(profile()));
-
- // Disable Instant. No difference, because suggest is still enabled.
- profile()->GetPrefs()->SetBoolean(prefs::kInstantExtendedEnabled, false);
- EXPECT_EQ(GURL("https://foo.com/instant?foo=foo#foo=foo&strk"),
- GetInstantURL(profile()));
-
- // Override the Instant URL on the commandline. Oops, forgot "strk".
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kInstantURL,
- "http://myserver.com:9000/dev?bar=bar#bar=bar");
- EXPECT_EQ(GURL(), GetInstantURL(profile()));
-
- // Override with "strk". For fun, put it in the query, instead of the ref.
- CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kInstantURL,
- "http://myserver.com:9000/dev?bar=bar&strk#bar=bar");
- EXPECT_EQ(GURL("http://myserver.com:9000/dev?bar=bar&strk#bar=bar"),
- GetInstantURL(profile()));
-
- // Disable suggest. No Instant URL.
- profile()->GetPrefs()->SetBoolean(prefs::kSearchSuggestEnabled, false);
- EXPECT_EQ(GURL(), GetInstantURL(profile()));
-}
-
-} // namespace search
-} // namespace chrome
« no previous file with comments | « chrome/browser/ui/search/search_tab_helper.cc ('k') | chrome/browser/ui/toolbar/toolbar_model_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698