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

Side by Side Diff: chrome/browser/search_engines/template_url_parser_unittest.cc

Issue 9968016: Move the URL string from TemplateURLRef onto the owning TemplateURL. This will make it easier to m… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "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" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/search_engines/template_url.h" 9 #include "chrome/browser/search_engines/template_url.h"
10 #include "chrome/browser/search_engines/template_url_parser.h" 10 #include "chrome/browser/search_engines/template_url_parser.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 } 128 }
129 129
130 TEST_F(TemplateURLParserTest, TestDictionary) { 130 TEST_F(TemplateURLParserTest, TestDictionary) {
131 if (is_disabled()) 131 if (is_disabled())
132 return; 132 return;
133 ASSERT_NO_FATAL_FAILURE(ParseFile("dictionary.xml", NULL)); 133 ASSERT_NO_FATAL_FAILURE(ParseFile("dictionary.xml", NULL));
134 ASSERT_TRUE(template_url_.get()); 134 ASSERT_TRUE(template_url_.get());
135 EXPECT_EQ(ASCIIToUTF16("Dictionary.com"), template_url_->short_name()); 135 EXPECT_EQ(ASCIIToUTF16("Dictionary.com"), template_url_->short_name());
136 EXPECT_EQ(GURL("http://cache.lexico.com/g/d/favicon.ico"), 136 EXPECT_EQ(GURL("http://cache.lexico.com/g/d/favicon.ico"),
137 template_url_->favicon_url()); 137 template_url_->favicon_url());
138 ASSERT_FALSE(template_url_->url() == NULL); 138 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
139 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
140 EXPECT_EQ("http://dictionary.reference.com/browse/{searchTerms}?r=75", 139 EXPECT_EQ("http://dictionary.reference.com/browse/{searchTerms}?r=75",
141 template_url_->url()->url()); 140 template_url_->url());
142 } 141 }
143 142
144 TEST_F(TemplateURLParserTest, TestMSDN) { 143 TEST_F(TemplateURLParserTest, TestMSDN) {
145 if (is_disabled()) 144 if (is_disabled())
146 return; 145 return;
147 ASSERT_NO_FATAL_FAILURE(ParseFile("msdn.xml", NULL)); 146 ASSERT_NO_FATAL_FAILURE(ParseFile("msdn.xml", NULL));
148 ASSERT_TRUE(template_url_.get()); 147 ASSERT_TRUE(template_url_.get());
149 EXPECT_EQ(ASCIIToUTF16("Search \" MSDN"), template_url_->short_name()); 148 EXPECT_EQ(ASCIIToUTF16("Search \" MSDN"), template_url_->short_name());
150 EXPECT_EQ(GURL("http://search.msdn.microsoft.com/search/favicon.ico"), 149 EXPECT_EQ(GURL("http://search.msdn.microsoft.com/search/favicon.ico"),
151 template_url_->favicon_url()); 150 template_url_->favicon_url());
152 ASSERT_FALSE(template_url_->url() == NULL); 151 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
153 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
154 EXPECT_EQ("http://search.msdn.microsoft.com/search/default.aspx?" 152 EXPECT_EQ("http://search.msdn.microsoft.com/search/default.aspx?"
155 "Query={searchTerms}&brand=msdn&locale=en-US", 153 "Query={searchTerms}&brand=msdn&locale=en-US",
156 template_url_->url()->url()); 154 template_url_->url());
157 } 155 }
158 156
159 TEST_F(TemplateURLParserTest, TestWikipedia) { 157 TEST_F(TemplateURLParserTest, TestWikipedia) {
160 if (is_disabled()) 158 if (is_disabled())
161 return; 159 return;
162 ASSERT_NO_FATAL_FAILURE(ParseFile("wikipedia.xml", NULL)); 160 ASSERT_NO_FATAL_FAILURE(ParseFile("wikipedia.xml", NULL));
163 ASSERT_TRUE(template_url_.get()); 161 ASSERT_TRUE(template_url_.get());
164 EXPECT_EQ(ASCIIToUTF16("Wikipedia (English)"), template_url_->short_name()); 162 EXPECT_EQ(ASCIIToUTF16("Wikipedia (English)"), template_url_->short_name());
165 EXPECT_EQ(GURL("http://en.wikipedia.org/favicon.ico"), 163 EXPECT_EQ(GURL("http://en.wikipedia.org/favicon.ico"),
166 template_url_->favicon_url()); 164 template_url_->favicon_url());
167 ASSERT_FALSE(template_url_->url() == NULL); 165 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
168 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
169 EXPECT_EQ("http://en.wikipedia.org/w/index.php?" 166 EXPECT_EQ("http://en.wikipedia.org/w/index.php?"
170 "title=Special:Search&search={searchTerms}", 167 "title=Special:Search&search={searchTerms}",
171 template_url_->url()->url()); 168 template_url_->url());
172 ASSERT_FALSE(template_url_->suggestions_url() == NULL); 169 EXPECT_TRUE(template_url_->suggestions_url_ref().SupportsReplacement());
173 EXPECT_TRUE(template_url_->suggestions_url()->SupportsReplacement());
174 EXPECT_EQ("http://en.wikipedia.org/w/api.php?" 170 EXPECT_EQ("http://en.wikipedia.org/w/api.php?"
175 "action=opensearch&search={searchTerms}", 171 "action=opensearch&search={searchTerms}",
176 template_url_->suggestions_url()->url()); 172 template_url_->suggestions_url());
177 ASSERT_EQ(2U, template_url_->input_encodings().size()); 173 ASSERT_EQ(2U, template_url_->input_encodings().size());
178 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]); 174 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
179 EXPECT_EQ("Shift_JIS", template_url_->input_encodings()[1]); 175 EXPECT_EQ("Shift_JIS", template_url_->input_encodings()[1]);
180 } 176 }
181 177
182 TEST_F(TemplateURLParserTest, NoCrashOnEmptyAttributes) { 178 TEST_F(TemplateURLParserTest, NoCrashOnEmptyAttributes) {
183 if (is_disabled()) 179 if (is_disabled())
184 return; 180 return;
185 ASSERT_NO_FATAL_FAILURE(ParseFile("url_with_no_attributes.xml", NULL)); 181 ASSERT_NO_FATAL_FAILURE(ParseFile("url_with_no_attributes.xml", NULL));
186 } 182 }
187 183
188 TEST_F(TemplateURLParserTest, TestFirefoxEbay) { 184 TEST_F(TemplateURLParserTest, TestFirefoxEbay) {
189 if (is_disabled()) 185 if (is_disabled())
190 return; 186 return;
191 // This file uses the Parameter extension 187 // This file uses the Parameter extension
192 // (see http://www.opensearch.org/Specifications/OpenSearch/Extensions/Paramet er/1.0) 188 // (see http://www.opensearch.org/Specifications/OpenSearch/Extensions/Paramet er/1.0)
193 ParamFilterImpl filter("ebay", "ebay"); 189 ParamFilterImpl filter("ebay", "ebay");
194 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_ebay.xml", &filter)); 190 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_ebay.xml", &filter));
195 ASSERT_TRUE(template_url_.get()); 191 ASSERT_TRUE(template_url_.get());
196 EXPECT_EQ(ASCIIToUTF16("eBay"), template_url_->short_name()); 192 EXPECT_EQ(ASCIIToUTF16("eBay"), template_url_->short_name());
197 ASSERT_FALSE(template_url_->url() == NULL); 193 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
198 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
199 EXPECT_EQ("http://search.ebay.com/search/search.dll?query={searchTerms}&" 194 EXPECT_EQ("http://search.ebay.com/search/search.dll?query={searchTerms}&"
200 "MfcISAPICommand=GetResult&ht=1&srchdesc=n&maxRecordsReturned=300&" 195 "MfcISAPICommand=GetResult&ht=1&srchdesc=n&maxRecordsReturned=300&"
201 "maxRecordsPerPage=50&SortProperty=MetaEndSort", 196 "maxRecordsPerPage=50&SortProperty=MetaEndSort",
202 template_url_->url()->url()); 197 template_url_->url());
203 ASSERT_EQ(1U, template_url_->input_encodings().size()); 198 ASSERT_EQ(1U, template_url_->input_encodings().size());
204 EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]); 199 EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]);
205 EXPECT_EQ(GURL("http://search.ebay.com/favicon.ico"), 200 EXPECT_EQ(GURL("http://search.ebay.com/favicon.ico"),
206 template_url_->favicon_url()); 201 template_url_->favicon_url());
207 } 202 }
208 203
209 TEST_F(TemplateURLParserTest, TestFirefoxWebster) { 204 TEST_F(TemplateURLParserTest, TestFirefoxWebster) {
210 if (is_disabled()) 205 if (is_disabled())
211 return; 206 return;
212 // This XML file uses a namespace. 207 // This XML file uses a namespace.
213 ParamFilterImpl filter(std::string(), "Mozilla"); 208 ParamFilterImpl filter(std::string(), "Mozilla");
214 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_webster.xml", &filter)); 209 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_webster.xml", &filter));
215 ASSERT_TRUE(template_url_.get()); 210 ASSERT_TRUE(template_url_.get());
216 EXPECT_EQ(ASCIIToUTF16("Webster"), template_url_->short_name()); 211 EXPECT_EQ(ASCIIToUTF16("Webster"), template_url_->short_name());
217 ASSERT_FALSE(template_url_->url() == NULL); 212 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
218 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
219 EXPECT_EQ("http://www.webster.com/cgi-bin/dictionary?va={searchTerms}", 213 EXPECT_EQ("http://www.webster.com/cgi-bin/dictionary?va={searchTerms}",
220 template_url_->url()->url()); 214 template_url_->url());
221 ASSERT_EQ(1U, template_url_->input_encodings().size()); 215 ASSERT_EQ(1U, template_url_->input_encodings().size());
222 EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]); 216 EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]);
223 EXPECT_EQ(GURL("http://www.webster.com/favicon.ico"), 217 EXPECT_EQ(GURL("http://www.webster.com/favicon.ico"),
224 template_url_->favicon_url()); 218 template_url_->favicon_url());
225 } 219 }
226 220
227 TEST_F(TemplateURLParserTest, TestFirefoxYahoo) { 221 TEST_F(TemplateURLParserTest, TestFirefoxYahoo) {
228 if (is_disabled()) 222 if (is_disabled())
229 return; 223 return;
230 // This XML file uses a namespace. 224 // This XML file uses a namespace.
231 ParamFilterImpl filter(std::string(), "Mozilla"); 225 ParamFilterImpl filter(std::string(), "Mozilla");
232 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_yahoo.xml", &filter)); 226 ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_yahoo.xml", &filter));
233 ASSERT_TRUE(template_url_.get()); 227 ASSERT_TRUE(template_url_.get());
234 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name()); 228 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name());
235 ASSERT_FALSE(template_url_->url() == NULL); 229 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
236 EXPECT_TRUE(template_url_->url()->SupportsReplacement());
237 EXPECT_EQ("http://ff.search.yahoo.com/gossip?" 230 EXPECT_EQ("http://ff.search.yahoo.com/gossip?"
238 "output=fxjson&command={searchTerms}", 231 "output=fxjson&command={searchTerms}",
239 template_url_->suggestions_url()->url()); 232 template_url_->suggestions_url());
240 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", 233 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8",
241 template_url_->url()->url()); 234 template_url_->url());
242 ASSERT_EQ(1U, template_url_->input_encodings().size()); 235 ASSERT_EQ(1U, template_url_->input_encodings().size());
243 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]); 236 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
244 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), 237 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"),
245 template_url_->favicon_url()); 238 template_url_->favicon_url());
246 } 239 }
247 240
248 // Make sure we ignore POST suggestions (this is the same XML file as 241 // Make sure we ignore POST suggestions (this is the same XML file as
249 // firefox_yahoo.xml, the suggestion method was just changed to POST). 242 // firefox_yahoo.xml, the suggestion method was just changed to POST).
250 TEST_F(TemplateURLParserTest, TestPostSuggestion) { 243 TEST_F(TemplateURLParserTest, TestPostSuggestion) {
251 if (is_disabled()) 244 if (is_disabled())
252 return; 245 return;
253 // This XML file uses a namespace. 246 // This XML file uses a namespace.
254 ParamFilterImpl filter(std::string(), "Mozilla"); 247 ParamFilterImpl filter(std::string(), "Mozilla");
255 ASSERT_NO_FATAL_FAILURE(ParseFile("post_suggestion.xml", &filter)); 248 ASSERT_NO_FATAL_FAILURE(ParseFile("post_suggestion.xml", &filter));
256 ASSERT_TRUE(template_url_.get()); 249 ASSERT_TRUE(template_url_.get());
257 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name()); 250 EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name());
258 ASSERT_FALSE(template_url_->url() == NULL); 251 EXPECT_TRUE(template_url_->url_ref().SupportsReplacement());
259 EXPECT_TRUE(template_url_->url()->SupportsReplacement()); 252 EXPECT_TRUE(template_url_->suggestions_url().empty());
260 EXPECT_TRUE(template_url_->suggestions_url() == NULL);
261 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8", 253 EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8",
262 template_url_->url()->url()); 254 template_url_->url());
263 ASSERT_EQ(1U, template_url_->input_encodings().size()); 255 ASSERT_EQ(1U, template_url_->input_encodings().size());
264 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]); 256 EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
265 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"), 257 EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"),
266 template_url_->favicon_url()); 258 template_url_->favicon_url());
267 } 259 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698