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

Unified Diff: chrome/browser/autocomplete/search_provider_unittest.cc

Issue 171753002: Omnibox: SearchProvider: Fix Navsuggestions in Prevent-Inlining Mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wrapping Created 6 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/autocomplete/search_provider.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autocomplete/search_provider_unittest.cc
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc
index 0dbe4ca9b2c048b58d1cd3f687ccdd099b232133..2cb68a43cce360d9f77a20dff095c57beb6e5c96 100644
--- a/chrome/browser/autocomplete/search_provider_unittest.cc
+++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -3025,146 +3025,159 @@ TEST_F(SearchProviderTest, NavigationInline) {
// Some cases do not trim "http://" to match from the start of the scheme.
const std::string fill_into_edit;
const std::string inline_autocompletion;
- const bool allowed_to_be_default_match;
+ const bool allowed_to_be_default_match_in_regular_mode;
+ const bool allowed_to_be_default_match_in_prevent_inline_mode;
} cases[] = {
// Do not inline matches that do not contain the input; trim http as needed.
- { "x", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { "https:", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { "abc.com/", "http://www.abc.com",
- "www.abc.com", std::string(), false },
+ { "x", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { "https:", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
{ "http://www.abc.com/a", "http://www.abc.com",
- "http://www.abc.com", std::string(), false },
+ "http://www.abc.com", std::string(), false,
+ false },
{ "http://www.abc.com", "https://www.abc.com",
- "https://www.abc.com", std::string(), false },
+ "https://www.abc.com", std::string(), false,
+ false },
{ "http://abc.com", "ftp://abc.com",
- "ftp://abc.com", std::string(), false },
+ "ftp://abc.com", std::string(), false,
+ false },
{ "https://www.abc.com", "http://www.abc.com",
- "www.abc.com", std::string(), false },
+ "www.abc.com", std::string(), false,
+ false },
{ "ftp://abc.com", "http://abc.com",
- "abc.com", std::string(), false },
+ "abc.com", std::string(), false,
+ false },
// Do not inline matches with invalid input prefixes; trim http as needed.
- { "ttp", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { "://w", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { "ww.", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { ".ab", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { "bc", "http://www.abc.com",
- "www.abc.com", std::string(), false },
- { ".com", "http://www.abc.com",
- "www.abc.com", std::string(), false },
+ { "ttp", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { "://w", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { "ww.", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { ".ab", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { "bc", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
+ { ".com", "http://www.abc.com",
+ "www.abc.com", std::string(), false, false },
// Do not inline matches that omit input domain labels; trim http as needed.
- { "www.a", "http://a.com",
- "a.com", std::string(), false },
- { "http://www.a", "http://a.com",
- "http://a.com", std::string(), false },
- { "www.a", "ftp://a.com",
- "ftp://a.com", std::string(), false },
- { "ftp://www.a", "ftp://a.com",
- "ftp://a.com", std::string(), false },
+ { "www.a", "http://a.com",
+ "a.com", std::string(), false, false },
+ { "http://www.a", "http://a.com",
+ "http://a.com", std::string(), false, false },
+ { "www.a", "ftp://a.com",
+ "ftp://a.com", std::string(), false, false },
+ { "ftp://www.a", "ftp://a.com",
+ "ftp://a.com", std::string(), false, false },
// Input matching but with nothing to inline will not yield an offset, but
// will be allowed to be default.
- { "abc.com", "http://www.abc.com",
- "www.abc.com", std::string(), true },
- { "http://www.abc.com", "http://www.abc.com",
- "http://www.abc.com", std::string(), true },
+ { "abc.com", "http://www.abc.com",
+ "www.abc.com", std::string(), true, true },
+ { "abc.com/", "http://www.abc.com",
+ "www.abc.com", std::string(), true, true },
+ { "http://www.abc.com", "http://www.abc.com",
+ "http://www.abc.com", std::string(), true, true },
+ { "http://www.abc.com/", "http://www.abc.com",
+ "http://www.abc.com", std::string(), true, true },
// Inline matches when the input is a leading substring of the scheme.
- { "h", "http://www.abc.com",
- "http://www.abc.com", "ttp://www.abc.com", true },
- { "http", "http://www.abc.com",
- "http://www.abc.com", "://www.abc.com", true },
+ { "h", "http://www.abc.com",
+ "http://www.abc.com", "ttp://www.abc.com", true, false },
+ { "http", "http://www.abc.com",
+ "http://www.abc.com", "://www.abc.com", true, false },
// Inline matches when the input is a leading substring of the full URL.
- { "http:", "http://www.abc.com",
- "http://www.abc.com", "//www.abc.com", true },
- { "http://w", "http://www.abc.com",
- "http://www.abc.com", "ww.abc.com", true },
- { "http://www.", "http://www.abc.com",
- "http://www.abc.com", "abc.com", true },
- { "http://www.ab", "http://www.abc.com",
- "http://www.abc.com", "c.com", true },
+ { "http:", "http://www.abc.com",
+ "http://www.abc.com", "//www.abc.com", true, false },
+ { "http://w", "http://www.abc.com",
+ "http://www.abc.com", "ww.abc.com", true, false },
+ { "http://www.", "http://www.abc.com",
+ "http://www.abc.com", "abc.com", true, false },
+ { "http://www.ab", "http://www.abc.com",
+ "http://www.abc.com", "c.com", true, false },
{ "http://www.abc.com/p", "http://www.abc.com/path/file.htm?q=x#foo",
"http://www.abc.com/path/file.htm?q=x#foo",
"ath/file.htm?q=x#foo",
- true },
+ true, false },
{ "http://abc.com/p", "http://abc.com/path/file.htm?q=x#foo",
"http://abc.com/path/file.htm?q=x#foo",
- "ath/file.htm?q=x#foo", true},
+ "ath/file.htm?q=x#foo",
+ true, false},
// Inline matches with valid URLPrefixes; only trim "http://".
{ "w", "http://www.abc.com",
- "www.abc.com", "ww.abc.com", true },
+ "www.abc.com", "ww.abc.com", true, false },
{ "www.a", "http://www.abc.com",
- "www.abc.com", "bc.com", true },
+ "www.abc.com", "bc.com", true, false },
{ "abc", "http://www.abc.com",
- "www.abc.com", ".com", true },
+ "www.abc.com", ".com", true, false },
{ "abc.c", "http://www.abc.com",
- "www.abc.com", "om", true },
+ "www.abc.com", "om", true, false },
{ "abc.com/p", "http://www.abc.com/path/file.htm?q=x#foo",
"www.abc.com/path/file.htm?q=x#foo",
- "ath/file.htm?q=x#foo", true },
+ "ath/file.htm?q=x#foo",
+ true, false },
{ "abc.com/p", "http://abc.com/path/file.htm?q=x#foo",
"abc.com/path/file.htm?q=x#foo",
- "ath/file.htm?q=x#foo", true },
+ "ath/file.htm?q=x#foo",
+ true, false },
// Inline matches using the maximal URLPrefix components.
{ "h", "http://help.com",
- "help.com", "elp.com", true },
+ "help.com", "elp.com", true, false },
{ "http", "http://http.com",
- "http.com", ".com", true },
+ "http.com", ".com", true, false },
{ "h", "http://www.help.com",
- "www.help.com", "elp.com", true },
+ "www.help.com", "elp.com", true, false },
{ "http", "http://www.http.com",
- "www.http.com", ".com", true },
+ "www.http.com", ".com", true, false },
{ "w", "http://www.www.com",
- "www.www.com", "ww.com", true },
+ "www.www.com", "ww.com", true, false },
// Test similar behavior for the ftp and https schemes.
- { "ftp://www.ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
- "ftp://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "www.ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
- "ftp://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
- "ftp://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "ab", "ftp://abc.com/path/file.htm?q=x#foo",
- "ftp://abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
+ { "ftp://www.ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
+ { "www.ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
+ { "ab", "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "ftp://www.abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
+ { "ab", "ftp://abc.com/path/file.htm?q=x#foo",
+ "ftp://abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
{ "https://www.ab", "https://www.abc.com/path/file.htm?q=x#foo",
"https://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "www.ab", "https://www.abc.com/path/file.htm?q=x#foo",
- "https://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "ab", "https://www.abc.com/path/file.htm?q=x#foo",
- "https://www.abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
- { "ab", "https://abc.com/path/file.htm?q=x#foo",
- "https://abc.com/path/file.htm?q=x#foo",
- "c.com/path/file.htm?q=x#foo", true },
+ "c.com/path/file.htm?q=x#foo",
+ true, false },
+ { "www.ab", "https://www.abc.com/path/file.htm?q=x#foo",
+ "https://www.abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
+ { "ab", "https://www.abc.com/path/file.htm?q=x#foo",
+ "https://www.abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
+ { "ab", "https://abc.com/path/file.htm?q=x#foo",
+ "https://abc.com/path/file.htm?q=x#foo",
+ "c.com/path/file.htm?q=x#foo", true, false },
// Forced query input should inline and retain the "?" prefix.
{ "?http://www.ab", "http://www.abc.com",
- "?http://www.abc.com", "c.com", true },
+ "?http://www.abc.com", "c.com", true, false },
{ "?www.ab", "http://www.abc.com",
- "?www.abc.com", "c.com", true },
+ "?www.abc.com", "c.com", true, false },
{ "?ab", "http://www.abc.com",
- "?www.abc.com", "c.com", true },
+ "?www.abc.com", "c.com", true, false },
{ "?abc.com", "http://www.abc.com",
- "?www.abc.com", "", true },
+ "?www.abc.com", "", true, true },
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) {
+ // First test regular mode.
QueryForInput(ASCIIToUTF16(cases[i].input), false, false);
AutocompleteMatch match(
provider_->NavigationToMatch(SearchProvider::NavigationResult(
@@ -3173,8 +3186,21 @@ TEST_F(SearchProviderTest, NavigationInline) {
EXPECT_EQ(ASCIIToUTF16(cases[i].inline_autocompletion),
match.inline_autocompletion);
EXPECT_EQ(ASCIIToUTF16(cases[i].fill_into_edit), match.fill_into_edit);
- EXPECT_EQ(cases[i].allowed_to_be_default_match,
+ EXPECT_EQ(cases[i].allowed_to_be_default_match_in_regular_mode,
match.allowed_to_be_default_match);
+
+ // Then test prevent-inline-autocomplete mode.
+ QueryForInput(ASCIIToUTF16(cases[i].input), true, false);
+ AutocompleteMatch match_prevent_inline(
+ provider_->NavigationToMatch(SearchProvider::NavigationResult(
+ *provider_.get(), GURL(cases[i].url), base::string16(), false, 0,
+ false, ASCIIToUTF16(cases[i].input), std::string())));
+ EXPECT_EQ(ASCIIToUTF16(cases[i].inline_autocompletion),
+ match_prevent_inline.inline_autocompletion);
+ EXPECT_EQ(ASCIIToUTF16(cases[i].fill_into_edit),
+ match_prevent_inline.fill_into_edit);
+ EXPECT_EQ(cases[i].allowed_to_be_default_match_in_prevent_inline_mode,
+ match_prevent_inline.allowed_to_be_default_match);
}
}
@@ -3194,11 +3220,10 @@ TEST_F(SearchProviderTest, NavigationInlineSchemeSubstring) {
EXPECT_TRUE(match_inline.allowed_to_be_default_match);
EXPECT_EQ(url, match_inline.contents);
- // Check the same offset and strings when inline autocompletion is prevented.
+ // Check the same strings when inline autocompletion is prevented.
QueryForInput(input, true, false);
AutocompleteMatch match_prevent(provider_->NavigationToMatch(result));
EXPECT_EQ(url, match_prevent.fill_into_edit);
- EXPECT_TRUE(match_prevent.inline_autocompletion.empty());
EXPECT_FALSE(match_prevent.allowed_to_be_default_match);
EXPECT_EQ(url, match_prevent.contents);
}
« no previous file with comments | « chrome/browser/autocomplete/search_provider.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698