OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/file_util.h" | 5 #include "base/file_util.h" |
6 #include "base/logging.h" | 6 #include "base/logging.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/utf_string_conversions.h" | |
9 #include "chrome/browser/search_engines/template_url.h" | 8 #include "chrome/browser/search_engines/template_url.h" |
10 #include "chrome/browser/search_engines/template_url_parser.h" | 9 #include "chrome/browser/search_engines/template_url_parser.h" |
11 #include "chrome/common/chrome_paths.h" | 10 #include "chrome/common/chrome_paths.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 11 #include "testing/gtest/include/gtest/gtest.h" |
13 | 12 |
14 class TemplateURLParserTest : public testing::Test { | 13 class TemplateURLParserTest : public testing::Test { |
15 public: | 14 public: |
16 TemplateURLParserTest() : parse_result_(true) { | 15 TemplateURLParserTest() : parse_result_(true) { |
17 } | 16 } |
18 | 17 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 return; | 77 return; |
79 ParseFile("post.xml", NULL); | 78 ParseFile("post.xml", NULL); |
80 EXPECT_FALSE(parse_result_); | 79 EXPECT_FALSE(parse_result_); |
81 } | 80 } |
82 | 81 |
83 TEST_F(TemplateURLParserTest, TestDictionary) { | 82 TEST_F(TemplateURLParserTest, TestDictionary) { |
84 if (IsDisabled()) | 83 if (IsDisabled()) |
85 return; | 84 return; |
86 ParseFile("dictionary.xml", NULL); | 85 ParseFile("dictionary.xml", NULL); |
87 ASSERT_TRUE(parse_result_); | 86 ASSERT_TRUE(parse_result_); |
88 EXPECT_EQ(ASCIIToUTF16("Dictionary.com"), template_url_.short_name()); | 87 EXPECT_EQ(L"Dictionary.com", template_url_.short_name()); |
89 EXPECT_TRUE(template_url_.GetFavIconURL() == | 88 EXPECT_TRUE(template_url_.GetFavIconURL() == |
90 GURL("http://cache.lexico.com/g/d/favicon.ico")); | 89 GURL("http://cache.lexico.com/g/d/favicon.ico")); |
91 EXPECT_TRUE(template_url_.url() != NULL); | 90 EXPECT_TRUE(template_url_.url() != NULL); |
92 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 91 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
93 EXPECT_EQ(template_url_.url()->url(), | 92 EXPECT_EQ(template_url_.url()->url(), |
94 "http://dictionary.reference.com/browse/{searchTerms}?r=75"); | 93 "http://dictionary.reference.com/browse/{searchTerms}?r=75"); |
95 } | 94 } |
96 | 95 |
97 TEST_F(TemplateURLParserTest, TestMSDN) { | 96 TEST_F(TemplateURLParserTest, TestMSDN) { |
98 if (IsDisabled()) | 97 if (IsDisabled()) |
99 return; | 98 return; |
100 ParseFile("msdn.xml", NULL); | 99 ParseFile("msdn.xml", NULL); |
101 ASSERT_TRUE(parse_result_); | 100 ASSERT_TRUE(parse_result_); |
102 EXPECT_EQ(ASCIIToUTF16("Search \" MSDN"), template_url_.short_name()); | 101 EXPECT_EQ(L"Search \" MSDN", template_url_.short_name()); |
103 EXPECT_TRUE(template_url_.GetFavIconURL() == | 102 EXPECT_TRUE(template_url_.GetFavIconURL() == |
104 GURL("http://search.msdn.microsoft.com/search/favicon.ico")); | 103 GURL("http://search.msdn.microsoft.com/search/favicon.ico")); |
105 EXPECT_TRUE(template_url_.url() != NULL); | 104 EXPECT_TRUE(template_url_.url() != NULL); |
106 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 105 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
107 EXPECT_EQ(template_url_.url()->url(), | 106 EXPECT_EQ(template_url_.url()->url(), |
108 "http://search.msdn.microsoft.com/search/default.aspx?Query={searchT
erms}&brand=msdn&locale=en-US"); | 107 "http://search.msdn.microsoft.com/search/default.aspx?Query={searchT
erms}&brand=msdn&locale=en-US"); |
109 } | 108 } |
110 | 109 |
111 TEST_F(TemplateURLParserTest, TestWikipedia) { | 110 TEST_F(TemplateURLParserTest, TestWikipedia) { |
112 if (IsDisabled()) | 111 if (IsDisabled()) |
113 return; | 112 return; |
114 ParseFile("wikipedia.xml", NULL); | 113 ParseFile("wikipedia.xml", NULL); |
115 ASSERT_TRUE(parse_result_); | 114 ASSERT_TRUE(parse_result_); |
116 EXPECT_EQ(ASCIIToUTF16("Wikipedia (English)"), template_url_.short_name()); | 115 EXPECT_EQ(L"Wikipedia (English)", template_url_.short_name()); |
117 EXPECT_TRUE(template_url_.GetFavIconURL() == | 116 EXPECT_TRUE(template_url_.GetFavIconURL() == |
118 GURL("http://en.wikipedia.org/favicon.ico")); | 117 GURL("http://en.wikipedia.org/favicon.ico")); |
119 EXPECT_TRUE(template_url_.url() != NULL); | 118 EXPECT_TRUE(template_url_.url() != NULL); |
120 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 119 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
121 EXPECT_EQ(template_url_.url()->url(), | 120 EXPECT_EQ(template_url_.url()->url(), |
122 "http://en.wikipedia.org/w/index.php?title=Special:Search&search={searchTe
rms}"); | 121 "http://en.wikipedia.org/w/index.php?title=Special:Search&search={searchTe
rms}"); |
123 EXPECT_TRUE(template_url_.suggestions_url() != NULL); | 122 EXPECT_TRUE(template_url_.suggestions_url() != NULL); |
124 EXPECT_TRUE(template_url_.suggestions_url()->SupportsReplacement()); | 123 EXPECT_TRUE(template_url_.suggestions_url()->SupportsReplacement()); |
125 EXPECT_EQ(template_url_.suggestions_url()->url(), | 124 EXPECT_EQ(template_url_.suggestions_url()->url(), |
126 "http://en.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
); | 125 "http://en.wikipedia.org/w/api.php?action=opensearch&search={searchTerms}"
); |
(...skipping 30 matching lines...) Expand all Loading... |
157 }; | 156 }; |
158 | 157 |
159 TEST_F(TemplateURLParserTest, TestFirefoxEbay) { | 158 TEST_F(TemplateURLParserTest, TestFirefoxEbay) { |
160 if (IsDisabled()) | 159 if (IsDisabled()) |
161 return; | 160 return; |
162 // This file uses the Parameter extension | 161 // This file uses the Parameter extension |
163 // (see http://www.opensearch.org/Specifications/OpenSearch/Extensions/Paramet
er/1.0) | 162 // (see http://www.opensearch.org/Specifications/OpenSearch/Extensions/Paramet
er/1.0) |
164 ParamFilterImpl filter("ebay", "ebay"); | 163 ParamFilterImpl filter("ebay", "ebay"); |
165 ParseFile("firefox_ebay.xml", &filter); | 164 ParseFile("firefox_ebay.xml", &filter); |
166 ASSERT_TRUE(parse_result_); | 165 ASSERT_TRUE(parse_result_); |
167 EXPECT_EQ(ASCIIToUTF16("eBay"), template_url_.short_name()); | 166 EXPECT_EQ(L"eBay", template_url_.short_name()); |
168 EXPECT_TRUE(template_url_.url() != NULL); | 167 EXPECT_TRUE(template_url_.url() != NULL); |
169 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 168 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
170 std::string exp_url = | 169 std::string exp_url = |
171 "http://search.ebay.com/search/search.dll?query={searchTerms}&" | 170 "http://search.ebay.com/search/search.dll?query={searchTerms}&" |
172 "MfcISAPICommand=GetResult&ht=1&srchdesc=n&maxRecordsReturned=300&" | 171 "MfcISAPICommand=GetResult&ht=1&srchdesc=n&maxRecordsReturned=300&" |
173 "maxRecordsPerPage=50&SortProperty=MetaEndSort"; | 172 "maxRecordsPerPage=50&SortProperty=MetaEndSort"; |
174 EXPECT_EQ(exp_url, template_url_.url()->url()); | 173 EXPECT_EQ(exp_url, template_url_.url()->url()); |
175 ASSERT_EQ(1U, template_url_.input_encodings().size()); | 174 ASSERT_EQ(1U, template_url_.input_encodings().size()); |
176 EXPECT_EQ("ISO-8859-1", template_url_.input_encodings()[0]); | 175 EXPECT_EQ("ISO-8859-1", template_url_.input_encodings()[0]); |
177 EXPECT_EQ(GURL("http://search.ebay.com/favicon.ico"), | 176 EXPECT_EQ(GURL("http://search.ebay.com/favicon.ico"), |
178 template_url_.GetFavIconURL()); | 177 template_url_.GetFavIconURL()); |
179 } | 178 } |
180 | 179 |
181 TEST_F(TemplateURLParserTest, TestFirefoxWebster) { | 180 TEST_F(TemplateURLParserTest, TestFirefoxWebster) { |
182 if (IsDisabled()) | 181 if (IsDisabled()) |
183 return; | 182 return; |
184 // This XML file uses a namespace. | 183 // This XML file uses a namespace. |
185 ParamFilterImpl filter("", "Mozilla"); | 184 ParamFilterImpl filter("", "Mozilla"); |
186 ParseFile("firefox_webster.xml", &filter); | 185 ParseFile("firefox_webster.xml", &filter); |
187 ASSERT_TRUE(parse_result_); | 186 ASSERT_TRUE(parse_result_); |
188 EXPECT_EQ(ASCIIToUTF16("Webster"), template_url_.short_name()); | 187 EXPECT_EQ(L"Webster", template_url_.short_name()); |
189 EXPECT_TRUE(template_url_.url() != NULL); | 188 EXPECT_TRUE(template_url_.url() != NULL); |
190 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 189 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
191 EXPECT_EQ("http://www.webster.com/cgi-bin/dictionary?va={searchTerms}", | 190 EXPECT_EQ("http://www.webster.com/cgi-bin/dictionary?va={searchTerms}", |
192 template_url_.url()->url()); | 191 template_url_.url()->url()); |
193 ASSERT_EQ(1U, template_url_.input_encodings().size()); | 192 ASSERT_EQ(1U, template_url_.input_encodings().size()); |
194 EXPECT_EQ("ISO-8859-1", template_url_.input_encodings()[0]); | 193 EXPECT_EQ("ISO-8859-1", template_url_.input_encodings()[0]); |
195 EXPECT_EQ(GURL("http://www.webster.com/favicon.ico"), | 194 EXPECT_EQ(GURL("http://www.webster.com/favicon.ico"), |
196 template_url_.GetFavIconURL()); | 195 template_url_.GetFavIconURL()); |
197 } | 196 } |
198 | 197 |
199 TEST_F(TemplateURLParserTest, TestFirefoxYahoo) { | 198 TEST_F(TemplateURLParserTest, TestFirefoxYahoo) { |
200 if (IsDisabled()) | 199 if (IsDisabled()) |
201 return; | 200 return; |
202 // This XML file uses a namespace. | 201 // This XML file uses a namespace. |
203 ParamFilterImpl filter("", "Mozilla"); | 202 ParamFilterImpl filter("", "Mozilla"); |
204 ParseFile("firefox_yahoo.xml", &filter); | 203 ParseFile("firefox_yahoo.xml", &filter); |
205 ASSERT_TRUE(parse_result_); | 204 ASSERT_TRUE(parse_result_); |
206 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_.short_name()); | 205 EXPECT_EQ(L"Yahoo", template_url_.short_name()); |
207 EXPECT_TRUE(template_url_.url() != NULL); | 206 EXPECT_TRUE(template_url_.url() != NULL); |
208 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 207 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
209 EXPECT_EQ("http://ff.search.yahoo.com/gossip?" | 208 EXPECT_EQ("http://ff.search.yahoo.com/gossip?" |
210 "output=fxjson&command={searchTerms}", | 209 "output=fxjson&command={searchTerms}", |
211 template_url_.suggestions_url()->url()); | 210 template_url_.suggestions_url()->url()); |
212 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", | 211 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", |
213 template_url_.url()->url()); | 212 template_url_.url()->url()); |
214 ASSERT_EQ(1U, template_url_.input_encodings().size()); | 213 ASSERT_EQ(1U, template_url_.input_encodings().size()); |
215 EXPECT_EQ("UTF-8", template_url_.input_encodings()[0]); | 214 EXPECT_EQ("UTF-8", template_url_.input_encodings()[0]); |
216 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), | 215 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), |
217 template_url_.GetFavIconURL()); | 216 template_url_.GetFavIconURL()); |
218 } | 217 } |
219 | 218 |
220 // Make sure we ignore POST suggestions (this is the same XML file as | 219 // Make sure we ignore POST suggestions (this is the same XML file as |
221 // firefox_yahoo.xml, the suggestion method was just changed to POST). | 220 // firefox_yahoo.xml, the suggestion method was just changed to POST). |
222 TEST_F(TemplateURLParserTest, TestPostSuggestion) { | 221 TEST_F(TemplateURLParserTest, TestPostSuggestion) { |
223 if (IsDisabled()) | 222 if (IsDisabled()) |
224 return; | 223 return; |
225 // This XML file uses a namespace. | 224 // This XML file uses a namespace. |
226 ParamFilterImpl filter("", "Mozilla"); | 225 ParamFilterImpl filter("", "Mozilla"); |
227 ParseFile("post_suggestion.xml", &filter); | 226 ParseFile("post_suggestion.xml", &filter); |
228 ASSERT_TRUE(parse_result_); | 227 ASSERT_TRUE(parse_result_); |
229 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_.short_name()); | 228 EXPECT_EQ(L"Yahoo", template_url_.short_name()); |
230 EXPECT_TRUE(template_url_.url() != NULL); | 229 EXPECT_TRUE(template_url_.url() != NULL); |
231 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); | 230 EXPECT_TRUE(template_url_.url()->SupportsReplacement()); |
232 EXPECT_TRUE(template_url_.suggestions_url() == NULL); | 231 EXPECT_TRUE(template_url_.suggestions_url() == NULL); |
233 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", | 232 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", |
234 template_url_.url()->url()); | 233 template_url_.url()->url()); |
235 ASSERT_EQ(1U, template_url_.input_encodings().size()); | 234 ASSERT_EQ(1U, template_url_.input_encodings().size()); |
236 EXPECT_EQ("UTF-8", template_url_.input_encodings()[0]); | 235 EXPECT_EQ("UTF-8", template_url_.input_encodings()[0]); |
237 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), | 236 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), |
238 template_url_.GetFavIconURL()); | 237 template_url_.GetFavIconURL()); |
239 } | 238 } |
OLD | NEW |