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

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

Issue 7230053: Modify TemplateURLRef to remove unknown URL parameters, but only when it represents a prepopulate... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 5 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 TemplateURLRef ref( 144 TemplateURLRef ref(
145 "http://foo{searchTerms}x{inputEncoding?}y{outputEncoding?}a", 1, 2); 145 "http://foo{searchTerms}x{inputEncoding?}y{outputEncoding?}a", 1, 2);
146 ASSERT_TRUE(ref.IsValid()); 146 ASSERT_TRUE(ref.IsValid());
147 ASSERT_TRUE(ref.SupportsReplacement()); 147 ASSERT_TRUE(ref.SupportsReplacement());
148 GURL result = GURL(ref.ReplaceSearchTerms(t_url, ASCIIToUTF16("X"), 148 GURL result = GURL(ref.ReplaceSearchTerms(t_url, ASCIIToUTF16("X"),
149 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); 149 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
150 ASSERT_TRUE(result.is_valid()); 150 ASSERT_TRUE(result.is_valid());
151 ASSERT_EQ("http://fooxxutf-8ya/", result.spec()); 151 ASSERT_EQ("http://fooxxutf-8ya/", result.spec());
152 } 152 }
153 153
154 TEST_F(TemplateURLTest, SetPrepopulatedAndParse) {
sky 2011/06/28 21:02:26 Add a description of what this is testing.
155 TemplateURL t_url;
156 t_url.SetURL("http://foo{fhqwhgads}", 0, 0);
157 TemplateURLRef::Replacements replacements;
158 bool valid = false;
159
160 t_url.SetPrepopulateId(0);
161 EXPECT_EQ("http://foo{fhqwhgads}",
162 t_url.url()->ParseURL("http://foo{fhqwhgads}",
163 &replacements,
164 &valid));
165 EXPECT_TRUE(replacements.empty());
166 EXPECT_TRUE(valid);
167
168 t_url.SetPrepopulateId(123);
169 EXPECT_EQ("http://foo",
170 t_url.url()->ParseURL("http://foo{fhqwhgads}",
171 &replacements,
172 &valid));
173 EXPECT_TRUE(replacements.empty());
174 EXPECT_TRUE(valid);
175 }
176
154 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) { 177 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) {
155 TemplateURL t_url; 178 TemplateURL t_url;
156 TemplateURLRef ref( 179 TemplateURLRef ref(
157 "http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b", 1, 2); 180 "http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b", 1, 2);
158 ASSERT_TRUE(ref.IsValid()); 181 ASSERT_TRUE(ref.IsValid());
159 ASSERT_TRUE(ref.SupportsReplacement()); 182 ASSERT_TRUE(ref.SupportsReplacement());
160 GURL result = GURL(ref.ReplaceSearchTerms(t_url, ASCIIToUTF16("X"), 183 GURL result = GURL(ref.ReplaceSearchTerms(t_url, ASCIIToUTF16("X"),
161 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); 184 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()));
162 ASSERT_TRUE(result.is_valid()); 185 ASSERT_TRUE(result.is_valid());
163 ASSERT_EQ("http://fooxutf-8axyb/", result.spec()); 186 ASSERT_EQ("http://fooxutf-8axyb/", result.spec());
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 TemplateURLRef url_ref(parsed_url, 0, 0); 502 TemplateURLRef url_ref(parsed_url, 0, 0);
480 TemplateURLRef::Replacements replacements; 503 TemplateURLRef::Replacements replacements;
481 EXPECT_TRUE(url_ref.ParseParameter(0, 12, &parsed_url, &replacements)); 504 EXPECT_TRUE(url_ref.ParseParameter(0, 12, &parsed_url, &replacements));
482 EXPECT_EQ(std::string(), parsed_url); 505 EXPECT_EQ(std::string(), parsed_url);
483 ASSERT_EQ(1U, replacements.size()); 506 ASSERT_EQ(1U, replacements.size());
484 EXPECT_EQ(static_cast<size_t>(0), replacements[0].index); 507 EXPECT_EQ(static_cast<size_t>(0), replacements[0].index);
485 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); 508 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type);
486 } 509 }
487 510
488 TEST_F(TemplateURLTest, ParseParameterUnknown) { 511 TEST_F(TemplateURLTest, ParseParameterUnknown) {
489 std::string parsed_url("{}"); 512 std::string parsed_url("{fhqwhgads}");
490 TemplateURLRef url_ref(parsed_url, 0, 0); 513 TemplateURLRef url_ref(parsed_url, 0, 0);
491 TemplateURLRef::Replacements replacements; 514 TemplateURLRef::Replacements replacements;
492 EXPECT_FALSE(url_ref.ParseParameter(0, 1, &parsed_url, &replacements)); 515
493 EXPECT_EQ("{}", parsed_url); 516 // By default, TemplateURLRef should not consider itself prepopulated.
517 // Therefore we should not replace the unknown parameter.
518 EXPECT_FALSE(url_ref.ParseParameter(0, 10, &parsed_url, &replacements));
519 EXPECT_EQ("{fhqwhgads}", parsed_url);
520 EXPECT_TRUE(replacements.empty());
521
522 // If the TemplateURLRef is prepopulated, we should remove unknown parameters.
523 parsed_url = "{fhqwhgads}";
524 url_ref.set_prepopulated(true);
525 EXPECT_FALSE(url_ref.ParseParameter(0, 10, &parsed_url, &replacements));
526 EXPECT_EQ("", parsed_url);
494 EXPECT_TRUE(replacements.empty()); 527 EXPECT_TRUE(replacements.empty());
495 } 528 }
496 529
497 TEST_F(TemplateURLTest, ParseURLEmpty) { 530 TEST_F(TemplateURLTest, ParseURLEmpty) {
498 TemplateURLRef url_ref("", 0, 0); 531 TemplateURLRef url_ref("", 0, 0);
499 TemplateURLRef::Replacements replacements; 532 TemplateURLRef::Replacements replacements;
500 bool valid = false; 533 bool valid = false;
501 EXPECT_EQ(std::string(), url_ref.ParseURL("", &replacements, &valid)); 534 EXPECT_EQ(std::string(), url_ref.ParseURL("", &replacements, &valid));
502 EXPECT_TRUE(replacements.empty()); 535 EXPECT_TRUE(replacements.empty());
503 EXPECT_TRUE(valid); 536 EXPECT_TRUE(valid);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 TEST_F(TemplateURLTest, ParseURLNestedParameter) { 569 TEST_F(TemplateURLTest, ParseURLNestedParameter) {
537 TemplateURLRef url_ref("{%s", 0, 0); 570 TemplateURLRef url_ref("{%s", 0, 0);
538 TemplateURLRef::Replacements replacements; 571 TemplateURLRef::Replacements replacements;
539 bool valid = false; 572 bool valid = false;
540 EXPECT_EQ("{", url_ref.ParseURL("{{searchTerms}", &replacements, &valid)); 573 EXPECT_EQ("{", url_ref.ParseURL("{{searchTerms}", &replacements, &valid));
541 ASSERT_EQ(1U, replacements.size()); 574 ASSERT_EQ(1U, replacements.size());
542 EXPECT_EQ(static_cast<size_t>(1), replacements[0].index); 575 EXPECT_EQ(static_cast<size_t>(1), replacements[0].index);
543 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); 576 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type);
544 EXPECT_TRUE(valid); 577 EXPECT_TRUE(valid);
545 } 578 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698