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

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

Issue 10382164: Correctly ignore unknown parameters in prepopulated URLs. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 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
« no previous file with comments | « chrome/browser/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 (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/base_paths.h" 5 #include "base/base_paths.h"
6 #include "base/string_util.h" 6 #include "base/string_util.h"
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/rlz/rlz.h" 9 #include "chrome/browser/rlz/rlz.h"
10 #include "chrome/browser/search_engines/search_terms_data.h" 10 #include "chrome/browser/search_engines/search_terms_data.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), 159 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"),
160 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); 160 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
161 ASSERT_TRUE(result.is_valid()); 161 ASSERT_TRUE(result.is_valid());
162 EXPECT_EQ("http://fooxxutf-8ya/", result.spec()); 162 EXPECT_EQ("http://fooxxutf-8ya/", result.spec());
163 } 163 }
164 164
165 // Test that setting the prepopulate ID from TemplateURL causes the stored 165 // Test that setting the prepopulate ID from TemplateURL causes the stored
166 // TemplateURLRef to handle parsing the URL parameters differently. 166 // TemplateURLRef to handle parsing the URL parameters differently.
167 TEST_F(TemplateURLTest, SetPrepopulatedAndParse) { 167 TEST_F(TemplateURLTest, SetPrepopulatedAndParse) {
168 TemplateURLData data; 168 TemplateURLData data;
169 data.SetURL("http://foo{fhqwhgads}"); 169 data.SetURL("http://foo{fhqwhgads}bar");
170 TemplateURL url(NULL, data); 170 TemplateURL url(NULL, data);
171 TemplateURLRef::Replacements replacements; 171 TemplateURLRef::Replacements replacements;
172 bool valid = false; 172 bool valid = false;
173 EXPECT_EQ("http://foo{fhqwhgads}", 173 EXPECT_EQ("http://foo{fhqwhgads}bar", url.url_ref().ParseURL(
174 url.url_ref().ParseURL("http://foo{fhqwhgads}", &replacements, &valid)); 174 "http://foo{fhqwhgads}bar", &replacements, &valid));
175 EXPECT_TRUE(replacements.empty()); 175 EXPECT_TRUE(replacements.empty());
176 EXPECT_TRUE(valid); 176 EXPECT_TRUE(valid);
177 177
178 data.prepopulate_id = 123; 178 data.prepopulate_id = 123;
179 TemplateURL url2(NULL, data); 179 TemplateURL url2(NULL, data);
180 EXPECT_EQ("http://foo", url2.url_ref().ParseURL("http://foo{fhqwhgads}", 180 EXPECT_EQ("http://foobar", url2.url_ref().ParseURL("http://foo{fhqwhgads}bar",
181 &replacements, &valid)); 181 &replacements, &valid));
182 EXPECT_TRUE(replacements.empty()); 182 EXPECT_TRUE(replacements.empty());
183 EXPECT_TRUE(valid); 183 EXPECT_TRUE(valid);
184 } 184 }
185 185
186 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) { 186 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) {
187 TemplateURLData data; 187 TemplateURLData data;
188 data.SetURL("http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b"); 188 data.SetURL("http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b");
189 TemplateURL url(NULL, data); 189 TemplateURL url(NULL, data);
190 EXPECT_TRUE(url.url_ref().IsValid()); 190 EXPECT_TRUE(url.url_ref().IsValid());
191 ASSERT_TRUE(url.url_ref().SupportsReplacement()); 191 ASSERT_TRUE(url.url_ref().SupportsReplacement());
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 TemplateURL url(NULL, data); 498 TemplateURL url(NULL, data);
499 TemplateURLRef::Replacements replacements; 499 TemplateURLRef::Replacements replacements;
500 EXPECT_TRUE(url.url_ref().ParseParameter(0, 12, &parsed_url, &replacements)); 500 EXPECT_TRUE(url.url_ref().ParseParameter(0, 12, &parsed_url, &replacements));
501 EXPECT_EQ(std::string(), parsed_url); 501 EXPECT_EQ(std::string(), parsed_url);
502 ASSERT_EQ(1U, replacements.size()); 502 ASSERT_EQ(1U, replacements.size());
503 EXPECT_EQ(0U, replacements[0].index); 503 EXPECT_EQ(0U, replacements[0].index);
504 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); 504 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type);
505 } 505 }
506 506
507 TEST_F(TemplateURLTest, ParseParameterUnknown) { 507 TEST_F(TemplateURLTest, ParseParameterUnknown) {
508 std::string parsed_url("{fhqwhgads}"); 508 std::string parsed_url("{fhqwhgads}abc");
509 TemplateURLData data; 509 TemplateURLData data;
510 data.SetURL(parsed_url); 510 data.SetURL(parsed_url);
511 TemplateURL url(NULL, data); 511 TemplateURL url(NULL, data);
512 TemplateURLRef::Replacements replacements; 512 TemplateURLRef::Replacements replacements;
513 513
514 // By default, TemplateURLRef should not consider itself prepopulated. 514 // By default, TemplateURLRef should not consider itself prepopulated.
515 // Therefore we should not replace the unknown parameter. 515 // Therefore we should not replace the unknown parameter.
516 EXPECT_FALSE(url.url_ref().ParseParameter(0, 10, &parsed_url, &replacements)); 516 EXPECT_FALSE(url.url_ref().ParseParameter(0, 10, &parsed_url, &replacements));
517 EXPECT_EQ("{fhqwhgads}", parsed_url); 517 EXPECT_EQ("{fhqwhgads}abc", parsed_url);
518 EXPECT_TRUE(replacements.empty()); 518 EXPECT_TRUE(replacements.empty());
519 519
520 // If the TemplateURLRef is prepopulated, we should remove unknown parameters. 520 // If the TemplateURLRef is prepopulated, we should remove unknown parameters.
521 parsed_url = "{fhqwhgads}"; 521 parsed_url = "{fhqwhgads}abc";
522 data.prepopulate_id = 1; 522 data.prepopulate_id = 1;
523 TemplateURL url2(NULL, data); 523 TemplateURL url2(NULL, data);
524 EXPECT_FALSE(url2.url_ref().ParseParameter(0, 10, &parsed_url, 524 EXPECT_FALSE(url2.url_ref().ParseParameter(0, 10, &parsed_url,
525 &replacements)); 525 &replacements));
526 EXPECT_EQ(std::string(), parsed_url); 526 EXPECT_EQ("abc", parsed_url);
527 EXPECT_TRUE(replacements.empty()); 527 EXPECT_TRUE(replacements.empty());
528 } 528 }
529 529
530 TEST_F(TemplateURLTest, ParseURLEmpty) { 530 TEST_F(TemplateURLTest, ParseURLEmpty) {
531 TemplateURL url(NULL, TemplateURLData()); 531 TemplateURL url(NULL, TemplateURLData());
532 TemplateURLRef::Replacements replacements; 532 TemplateURLRef::Replacements replacements;
533 bool valid = false; 533 bool valid = false;
534 EXPECT_EQ(std::string(), 534 EXPECT_EQ(std::string(),
535 url.url_ref().ParseURL(std::string(), &replacements, &valid)); 535 url.url_ref().ParseURL(std::string(), &replacements, &valid));
536 EXPECT_TRUE(replacements.empty()); 536 EXPECT_TRUE(replacements.empty());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 TemplateURL url(NULL, data); 579 TemplateURL url(NULL, data);
580 TemplateURLRef::Replacements replacements; 580 TemplateURLRef::Replacements replacements;
581 bool valid = false; 581 bool valid = false;
582 EXPECT_EQ("{", 582 EXPECT_EQ("{",
583 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); 583 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid));
584 ASSERT_EQ(1U, replacements.size()); 584 ASSERT_EQ(1U, replacements.size());
585 EXPECT_EQ(1U, replacements[0].index); 585 EXPECT_EQ(1U, replacements[0].index);
586 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); 586 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type);
587 EXPECT_TRUE(valid); 587 EXPECT_TRUE(valid);
588 } 588 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698