OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |