OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/autocomplete/search_provider.h" | 5 #include "chrome/browser/autocomplete/search_provider.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 985 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
996 "{\"google:suggesttype\":[\"NAVIGATION\"]," | 996 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
997 "\"google:suggestrelevance\":[9999]}]", | 997 "\"google:suggestrelevance\":[9999]}]", |
998 { { "a", true }, { "b.com", false }, kEmptyMatch, kEmptyMatch }, | 998 { { "a", true }, { "b.com", false }, kEmptyMatch, kEmptyMatch }, |
999 std::string() }, | 999 std::string() }, |
1000 { "[\"a\",[\"http://b.com\"],[],[]," | 1000 { "[\"a\",[\"http://b.com\"],[],[]," |
1001 "{\"google:suggesttype\":[\"NAVIGATION\"]," | 1001 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
1002 "\"google:suggestrelevance\":[9999]," | 1002 "\"google:suggestrelevance\":[9999]," |
1003 "\"google:verbatimrelevance\":0}]", | 1003 "\"google:verbatimrelevance\":0}]", |
1004 { { "a", true }, { "b.com", false }, kEmptyMatch, kEmptyMatch }, | 1004 { { "a", true }, { "b.com", false }, kEmptyMatch, kEmptyMatch }, |
1005 std::string() }, | 1005 std::string() }, |
| 1006 { "[\"a\",[\"https://a/\"],[],[]," |
| 1007 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
| 1008 "\"google:suggestrelevance\":[9999]}]", |
| 1009 { { "https://a", true }, { "a", true }, kEmptyMatch, kEmptyMatch }, |
| 1010 std::string() }, |
1006 | 1011 |
1007 // Ensure that the top result is ranked as highly as calculated verbatim. | 1012 // Ensure that the top result is ranked as highly as calculated verbatim. |
1008 // Ignore the suggested verbatim relevance if this constraint is violated. | 1013 // Ignore the suggested verbatim relevance if this constraint is violated. |
1009 { "[\"a\",[\"a1\"],[],[],{\"google:verbatimrelevance\":0}]", | 1014 { "[\"a\",[\"a1\"],[],[],{\"google:verbatimrelevance\":0}]", |
1010 { { "a", true }, { "a1", true }, kEmptyMatch, kEmptyMatch }, | 1015 { { "a", true }, { "a1", true }, kEmptyMatch, kEmptyMatch }, |
1011 std::string() }, | 1016 std::string() }, |
1012 { "[\"a\",[\"a1\"],[],[],{\"google:verbatimrelevance\":1}]", | 1017 { "[\"a\",[\"a1\"],[],[],{\"google:verbatimrelevance\":1}]", |
1013 { { "a", true }, { "a1", true }, kEmptyMatch, kEmptyMatch }, | 1018 { { "a", true }, { "a1", true }, kEmptyMatch, kEmptyMatch }, |
1014 std::string() }, | 1019 std::string() }, |
1015 { "[\"a\",[\"a1\"],[],[],{\"google:suggestrelevance\":[1]," | 1020 { "[\"a\",[\"a1\"],[],[],{\"google:suggestrelevance\":[1]," |
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1654 { "[\"a\",[\"http://a1.com\", \"http://a2.com\"],[],[]," | 1659 { "[\"a\",[\"http://a1.com\", \"http://a2.com\"],[],[]," |
1655 "{\"google:suggesttype\":[\"NAVIGATION\", \"NAVIGATION\"]," | 1660 "{\"google:suggesttype\":[\"NAVIGATION\", \"NAVIGATION\"]," |
1656 "\"google:verbatimrelevance\":9990," | 1661 "\"google:verbatimrelevance\":9990," |
1657 "\"google:suggestrelevance\":[9999, 9998]}]", | 1662 "\"google:suggestrelevance\":[9999, 9998]}]", |
1658 { { "a", true, true }, | 1663 { { "a", true, true }, |
1659 { "a1.com", false, true }, | 1664 { "a1.com", false, true }, |
1660 { "a2.com", false, true }, | 1665 { "a2.com", false, true }, |
1661 { "k a", false, true }, | 1666 { "k a", false, true }, |
1662 kEmptyMatch }, | 1667 kEmptyMatch }, |
1663 std::string() }, | 1668 std::string() }, |
| 1669 { "[\"a\",[\"https://a/\"],[],[]," |
| 1670 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
| 1671 "\"google:suggestrelevance\":[9999]}]", |
| 1672 { { "a", true, true }, |
| 1673 { "https://a", false, true }, |
| 1674 { "k a", false, true }, |
| 1675 kEmptyMatch, |
| 1676 kEmptyMatch }, |
| 1677 std::string() }, |
1664 // Check when navsuggest scores more than verbatim and there is query | 1678 // Check when navsuggest scores more than verbatim and there is query |
1665 // suggestion but it scores lower. | 1679 // suggestion but it scores lower. |
1666 { "[\"a\",[\"http://a1.com\", \"http://a2.com\", \"a3\"],[],[]," | 1680 { "[\"a\",[\"http://a1.com\", \"http://a2.com\", \"a3\"],[],[]," |
1667 "{\"google:suggesttype\":[\"NAVIGATION\", \"NAVIGATION\", \"QUERY\"]," | 1681 "{\"google:suggesttype\":[\"NAVIGATION\", \"NAVIGATION\", \"QUERY\"]," |
1668 "\"google:verbatimrelevance\":9990," | 1682 "\"google:verbatimrelevance\":9990," |
1669 "\"google:suggestrelevance\":[9998, 9999, 1300]}]", | 1683 "\"google:suggestrelevance\":[9998, 9999, 1300]}]", |
1670 { { "a", true, true }, | 1684 { { "a", true, true }, |
1671 { "a2.com", false, true }, | 1685 { "a2.com", false, true }, |
1672 { "a1.com", false, true }, | 1686 { "a1.com", false, true }, |
1673 { "a3", true, true }, | 1687 { "a3", true, true }, |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1942 const std::string json; | 1956 const std::string json; |
1943 const DefaultFetcherUrlInputMatch output[4]; | 1957 const DefaultFetcherUrlInputMatch output[4]; |
1944 } cases[] = { | 1958 } cases[] = { |
1945 // Ensure topmost NAVIGATION matches are allowed for URL input. | 1959 // Ensure topmost NAVIGATION matches are allowed for URL input. |
1946 { "a.com", "[\"a.com\",[\"http://a.com/a\"],[],[]," | 1960 { "a.com", "[\"a.com\",[\"http://a.com/a\"],[],[]," |
1947 "{\"google:suggesttype\":[\"NAVIGATION\"]," | 1961 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
1948 "\"google:suggestrelevance\":[9999]}]", | 1962 "\"google:suggestrelevance\":[9999]}]", |
1949 { { "a.com/a", AutocompleteMatchType::NAVSUGGEST, true }, | 1963 { { "a.com/a", AutocompleteMatchType::NAVSUGGEST, true }, |
1950 { "a.com", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, true }, | 1964 { "a.com", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, true }, |
1951 kEmptyMatch, kEmptyMatch } }, | 1965 kEmptyMatch, kEmptyMatch } }, |
| 1966 { "a.com", "[\"a.com\",[\"https://a.com\"],[],[]," |
| 1967 "{\"google:suggesttype\":[\"NAVIGATION\"]," |
| 1968 "\"google:suggestrelevance\":[9999]}]", |
| 1969 { { "https://a.com", AutocompleteMatchType::NAVSUGGEST, true }, |
| 1970 { "a.com", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, true }, |
| 1971 kEmptyMatch, kEmptyMatch } }, |
1952 | 1972 |
1953 // Ensure topmost SUGGEST matches are not allowed for URL input. | 1973 // Ensure topmost SUGGEST matches are not allowed for URL input. |
1954 // SearchProvider disregards search and verbatim suggested relevances. | 1974 // SearchProvider disregards search and verbatim suggested relevances. |
1955 { "a.com", "[\"a.com\",[\"a.com info\"],[],[]," | 1975 { "a.com", "[\"a.com\",[\"a.com info\"],[],[]," |
1956 "{\"google:suggestrelevance\":[9999]}]", | 1976 "{\"google:suggestrelevance\":[9999]}]", |
1957 { { "a.com", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, true }, | 1977 { { "a.com", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, true }, |
1958 { "a.com info", AutocompleteMatchType::SEARCH_SUGGEST, true }, | 1978 { "a.com info", AutocompleteMatchType::SEARCH_SUGGEST, true }, |
1959 kEmptyMatch, kEmptyMatch } }, | 1979 kEmptyMatch, kEmptyMatch } }, |
1960 { "a.com", "[\"a.com\",[\"a.com/a\"],[],[]," | 1980 { "a.com", "[\"a.com\",[\"a.com/a\"],[],[]," |
1961 "{\"google:suggestrelevance\":[9999]}]", | 1981 "{\"google:suggestrelevance\":[9999]}]", |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2117 // Do not inline matches that omit input domain labels; trim http as needed. | 2137 // Do not inline matches that omit input domain labels; trim http as needed. |
2118 { "www.a", "http://a.com", | 2138 { "www.a", "http://a.com", |
2119 "a.com", std::string(), false }, | 2139 "a.com", std::string(), false }, |
2120 { "http://www.a", "http://a.com", | 2140 { "http://www.a", "http://a.com", |
2121 "http://a.com", std::string(), false }, | 2141 "http://a.com", std::string(), false }, |
2122 { "www.a", "ftp://a.com", | 2142 { "www.a", "ftp://a.com", |
2123 "ftp://a.com", std::string(), false }, | 2143 "ftp://a.com", std::string(), false }, |
2124 { "ftp://www.a", "ftp://a.com", | 2144 { "ftp://www.a", "ftp://a.com", |
2125 "ftp://a.com", std::string(), false }, | 2145 "ftp://a.com", std::string(), false }, |
2126 | 2146 |
2127 // Input matching but with nothing to inline will not yield an offset. | 2147 // Input matching but with nothing to inline will not yield an offset, but |
| 2148 // will be allowed to be default. |
2128 { "abc.com", "http://www.abc.com", | 2149 { "abc.com", "http://www.abc.com", |
2129 "www.abc.com", std::string(), false }, | 2150 "www.abc.com", std::string(), true }, |
2130 { "http://www.abc.com", "http://www.abc.com", | 2151 { "http://www.abc.com", "http://www.abc.com", |
2131 "http://www.abc.com", std::string(), false }, | 2152 "http://www.abc.com", std::string(), true }, |
2132 | 2153 |
2133 // Inline matches when the input is a leading substring of the scheme. | 2154 // Inline matches when the input is a leading substring of the scheme. |
2134 { "h", "http://www.abc.com", | 2155 { "h", "http://www.abc.com", |
2135 "http://www.abc.com", "ttp://www.abc.com", true }, | 2156 "http://www.abc.com", "ttp://www.abc.com", true }, |
2136 { "http", "http://www.abc.com", | 2157 { "http", "http://www.abc.com", |
2137 "http://www.abc.com", "://www.abc.com", true }, | 2158 "http://www.abc.com", "://www.abc.com", true }, |
2138 | 2159 |
2139 // Inline matches when the input is a leading substring of the full URL. | 2160 // Inline matches when the input is a leading substring of the full URL. |
2140 { "http:", "http://www.abc.com", | 2161 { "http:", "http://www.abc.com", |
2141 "http://www.abc.com", "//www.abc.com", true }, | 2162 "http://www.abc.com", "//www.abc.com", true }, |
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2594 SCOPED_TRACE(description); | 2615 SCOPED_TRACE(description); |
2595 EXPECT_EQ(cases[i].matches[j].contents, UTF16ToUTF8(matches[j].contents)); | 2616 EXPECT_EQ(cases[i].matches[j].contents, UTF16ToUTF8(matches[j].contents)); |
2596 EXPECT_EQ(cases[i].matches[j].allowed_to_be_prefetched, | 2617 EXPECT_EQ(cases[i].matches[j].allowed_to_be_prefetched, |
2597 SearchProvider::ShouldPrefetch(matches[j])); | 2618 SearchProvider::ShouldPrefetch(matches[j])); |
2598 EXPECT_EQ(cases[i].matches[j].type, matches[j].type); | 2619 EXPECT_EQ(cases[i].matches[j].type, matches[j].type); |
2599 EXPECT_EQ(cases[i].matches[j].from_keyword, | 2620 EXPECT_EQ(cases[i].matches[j].from_keyword, |
2600 matches[j].keyword == ASCIIToUTF16("k")); | 2621 matches[j].keyword == ASCIIToUTF16("k")); |
2601 } | 2622 } |
2602 } | 2623 } |
2603 } | 2624 } |
OLD | NEW |