Chromium Code Reviews| 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 |