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

Side by Side Diff: components/search_engines/template_url_unittest.cc

Issue 1088523002: Fixed ExtractSearchTermsFromURL for search engines with encoding != "UTF-8". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Escaping is used instead of writing non-latin characters in unittests Created 5 years, 8 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 unified diff | Download patch
« no previous file with comments | « components/search_engines/template_url.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « components/search_engines/template_url.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698