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