Index: chrome/browser/autocomplete/autocomplete_result_unittest.cc |
diff --git a/chrome/browser/autocomplete/autocomplete_result_unittest.cc b/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
index babf1ae2cf5d4768004eeab36a37811a54eddd8e..ab152fbce338c65d32f2cd1f202428720a9b84f7 100644 |
--- a/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
+++ b/chrome/browser/autocomplete/autocomplete_result_unittest.cc |
@@ -377,6 +377,56 @@ TEST_F(AutocompleteResultTest, SortAndCullWithDemotionsByType) { |
result.match_at(2)->destination_url.spec()); |
} |
+TEST_F(AutocompleteResultTest, SortAndCullWithUndemotableTypes) { |
+ // Add some matches. |
+ ACMatches matches(3); |
+ matches[0].destination_url = GURL("http://top-history-url/"); |
+ matches[0].relevance = 1400; |
+ matches[0].allowed_to_be_default_match = true; |
+ matches[0].type = AutocompleteMatchType::HISTORY_URL; |
+ matches[1].destination_url = GURL("http://history-url2/"); |
+ matches[1].relevance = 1300; |
+ matches[1].allowed_to_be_default_match = true; |
+ matches[1].type = AutocompleteMatchType::HISTORY_URL; |
+ matches[2].destination_url = GURL("http://search-what-you-typed/"); |
+ matches[2].relevance = 1200; |
+ matches[2].allowed_to_be_default_match = true; |
+ matches[2].type = AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED; |
+ |
+ // Add a rule demoting history-url, but don't demote the top match. |
+ { |
+ std::map<std::string, std::string> params; |
+ // 3 == HOME_PAGE |
+ params[std::string(OmniboxFieldTrial::kDemoteByTypeRule) + ":3:*"] = |
+ "1:50"; |
+ params[std::string(OmniboxFieldTrial::kUndemotableTopTypeRule) + ":3:*"] = |
+ "1,5"; |
+ ASSERT_TRUE(chrome_variations::AssociateVariationParams( |
+ OmniboxFieldTrial::kBundledExperimentFieldTrialName, "B", params)); |
+ } |
+ base::FieldTrialList::CreateFieldTrial( |
+ OmniboxFieldTrial::kBundledExperimentFieldTrialName, "B"); |
+ |
+ AutocompleteResult result; |
+ result.AppendMatches(matches); |
+ AutocompleteInput input(string16(), string16::npos, string16(), GURL(), |
+ AutocompleteInput::HOME_PAGE, false, false, false, |
+ AutocompleteInput::ALL_MATCHES); |
+ result.SortAndCull(input, test_util_.profile()); |
+ |
+ // Check the new ordering. The first history-url result should not be |
+ // demoted, but the second result should be. |
+ // We cannot check relevance scores because the matches are sorted by |
+ // demoted relevance but the actual relevance scores are not modified. |
+ ASSERT_EQ(3u, result.size()); |
+ EXPECT_EQ("http://top-history-url/", |
+ result.match_at(0)->destination_url.spec()); |
+ EXPECT_EQ("http://search-what-you-typed/", |
+ result.match_at(1)->destination_url.spec()); |
+ EXPECT_EQ("http://history-url2/", |
+ result.match_at(2)->destination_url.spec()); |
+} |
+ |
TEST_F(AutocompleteResultTest, SortAndCullReorderForDefaultMatch) { |
TestData data[] = { |
{ 0, 0, 1300 }, |