OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/base_paths.h" | 5 #include "base/base_paths.h" |
6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "components/metrics/proto/omnibox_event.pb.h" | 10 #include "components/metrics/proto/omnibox_event.pb.h" |
(...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1135 | 1135 |
1136 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 1136 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
1137 GURL("http://term-in-path.com/begin"), search_terms_data_, &result)); | 1137 GURL("http://term-in-path.com/begin"), search_terms_data_, &result)); |
1138 EXPECT_EQ(base::string16(), result); | 1138 EXPECT_EQ(base::string16(), result); |
1139 | 1139 |
1140 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 1140 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
1141 GURL("http://term-in-path.com/end"), search_terms_data_, &result)); | 1141 GURL("http://term-in-path.com/end"), search_terms_data_, &result)); |
1142 EXPECT_EQ(base::string16(), result); | 1142 EXPECT_EQ(base::string16(), result); |
1143 } | 1143 } |
1144 | 1144 |
| 1145 // Checks that the ExtractSearchTermsFromURL function works correctly |
| 1146 // for urls containing non-latin characters in UTF8 encoding. |
| 1147 TEST_F(TemplateURLTest, ExtractSearchTermsFromUTF8URL) { |
| 1148 TemplateURLData data; |
| 1149 data.SetURL("http://utf-8.ru/?q={searchTerms}"); |
| 1150 data.alternate_urls.push_back("http://utf-8.ru/#q={searchTerms}"); |
| 1151 data.alternate_urls.push_back("http://utf-8.ru/path/{searchTerms}"); |
| 1152 TemplateURL url(data); |
| 1153 base::string16 result; |
| 1154 |
| 1155 // Russian text encoded with UTF-8. |
| 1156 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1157 GURL("http://utf-8.ru/?q=\xD0\x97\xD0\xB4\xD1\x80\xD0\xB0\xD0\xB2\xD1\x81" |
| 1158 "\xD1\x82\xD0\xB2\xD1\x83\xD0\xB9,+\xD0\xBC\xD0\xB8\xD1\x80!"), |
| 1159 search_terms_data_, &result)); |
| 1160 EXPECT_EQ( |
| 1161 base::WideToUTF16( |
| 1162 L"\x0417\x0434\x0440\x0430\x0432\x0441\x0442\x0432\x0443\x0439, " |
| 1163 L"\x043C\x0438\x0440!"), |
| 1164 result); |
| 1165 |
| 1166 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1167 GURL("http://utf-8.ru/#q=\xD0\xB4\xD0\xB2\xD0\xB0+\xD1\x81\xD0\xBB" |
| 1168 "\xD0\xBE\xD0\xB2\xD0\xB0"), |
| 1169 search_terms_data_, &result)); |
| 1170 EXPECT_EQ( |
| 1171 base::WideToUTF16(L"\x0434\x0432\x0430 \x0441\x043B\x043E\x0432\x0430"), |
| 1172 result); |
| 1173 |
| 1174 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1175 GURL("http://utf-8.ru/path/\xD0\xB1\xD1\x83\xD0\xBA\xD0\xB2\xD1\x8B%20" |
| 1176 "\xD0\x90%20\xD0\xB8%20A"), |
| 1177 search_terms_data_, &result)); |
| 1178 EXPECT_EQ( |
| 1179 base::WideToUTF16(L"\x0431\x0443\x043A\x0432\x044B \x0410 \x0438 A"), |
| 1180 result); |
| 1181 } |
| 1182 |
| 1183 // Checks that the ExtractSearchTermsFromURL function works correctly |
| 1184 // for urls containing non-latin characters in non-UTF8 encoding. |
| 1185 TEST_F(TemplateURLTest, ExtractSearchTermsFromNonUTF8URL) { |
| 1186 TemplateURLData data; |
| 1187 data.SetURL("http://windows-1251.ru/?q={searchTerms}"); |
| 1188 data.alternate_urls.push_back("http://windows-1251.ru/#q={searchTerms}"); |
| 1189 data.alternate_urls.push_back("http://windows-1251.ru/path/{searchTerms}"); |
| 1190 data.input_encodings.push_back("windows-1251"); |
| 1191 TemplateURL url(data); |
| 1192 base::string16 result; |
| 1193 |
| 1194 // Russian text encoded with Windows-1251. |
| 1195 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1196 GURL("http://windows-1251.ru/?q=%C7%E4%F0%E0%E2%F1%F2%E2%F3%E9%2C+" |
| 1197 "%EC%E8%F0!"), |
| 1198 search_terms_data_, &result)); |
| 1199 EXPECT_EQ( |
| 1200 base::WideToUTF16( |
| 1201 L"\x0417\x0434\x0440\x0430\x0432\x0441\x0442\x0432\x0443\x0439, " |
| 1202 L"\x043C\x0438\x0440!"), |
| 1203 result); |
| 1204 |
| 1205 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1206 GURL("http://windows-1251.ru/#q=%E4%E2%E0+%F1%EB%EE%E2%E0"), |
| 1207 search_terms_data_, &result)); |
| 1208 EXPECT_EQ( |
| 1209 base::WideToUTF16(L"\x0434\x0432\x0430 \x0441\x043B\x043E\x0432\x0430"), |
| 1210 result); |
| 1211 |
| 1212 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 1213 GURL("http://windows-1251.ru/path/%E1%F3%EA%E2%FB%20%C0%20%E8%20A"), |
| 1214 search_terms_data_, &result)); |
| 1215 EXPECT_EQ( |
| 1216 base::WideToUTF16(L"\x0431\x0443\x043A\x0432\x044B \x0410 \x0438 A"), |
| 1217 result); |
| 1218 } |
| 1219 |
1145 TEST_F(TemplateURLTest, HasSearchTermsReplacementKey) { | 1220 TEST_F(TemplateURLTest, HasSearchTermsReplacementKey) { |
1146 TemplateURLData data; | 1221 TemplateURLData data; |
1147 data.SetURL("http://google.com/?q={searchTerms}"); | 1222 data.SetURL("http://google.com/?q={searchTerms}"); |
1148 data.instant_url = "http://google.com/instant#q={searchTerms}"; | 1223 data.instant_url = "http://google.com/instant#q={searchTerms}"; |
1149 data.alternate_urls.push_back("http://google.com/alt/#q={searchTerms}"); | 1224 data.alternate_urls.push_back("http://google.com/alt/#q={searchTerms}"); |
1150 data.alternate_urls.push_back( | 1225 data.alternate_urls.push_back( |
1151 "http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); | 1226 "http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); |
1152 data.search_terms_replacement_key = "espv"; | 1227 data.search_terms_replacement_key = "espv"; |
1153 TemplateURL url(data); | 1228 TemplateURL url(data); |
1154 | 1229 |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1600 EXPECT_EQ("http://bar/search?q=foo&pfq=full%20query%20text&qha=2338&xssi=t", | 1675 EXPECT_EQ("http://bar/search?q=foo&pfq=full%20query%20text&qha=2338&xssi=t", |
1601 result); | 1676 result); |
1602 | 1677 |
1603 TemplateURL url2(data); | 1678 TemplateURL url2(data); |
1604 search_terms_args.prefetch_query.clear(); | 1679 search_terms_args.prefetch_query.clear(); |
1605 search_terms_args.prefetch_query_type.clear(); | 1680 search_terms_args.prefetch_query_type.clear(); |
1606 result = | 1681 result = |
1607 url2.url_ref().ReplaceSearchTerms(search_terms_args, search_terms_data_); | 1682 url2.url_ref().ReplaceSearchTerms(search_terms_args, search_terms_data_); |
1608 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); | 1683 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); |
1609 } | 1684 } |
OLD | NEW |