| 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 data.SetURL("{searchTerms}"); | 69 data.SetURL("{searchTerms}"); |
| 70 TemplateURL url(NULL, data); | 70 TemplateURL url(NULL, data); |
| 71 EXPECT_TRUE(url.url_ref().IsValid()); | 71 EXPECT_TRUE(url.url_ref().IsValid()); |
| 72 } | 72 } |
| 73 | 73 |
| 74 TEST_F(TemplateURLTest, URLRefTestSearchTerms) { | 74 TEST_F(TemplateURLTest, URLRefTestSearchTerms) { |
| 75 struct SearchTermsCase { | 75 struct SearchTermsCase { |
| 76 const char* url; | 76 const char* url; |
| 77 const string16 terms; | 77 const string16 terms; |
| 78 const std::string output; | 78 const std::string output; |
| 79 bool valid_url; | |
| 80 } search_term_cases[] = { | 79 } search_term_cases[] = { |
| 81 { "http://foo{searchTerms}", ASCIIToUTF16("sea rch/bar"), | 80 { "http://foo{searchTerms}", ASCIIToUTF16("sea rch/bar"), |
| 82 "http://foosea%20rch%2Fbar", false }, | 81 "http://foosea%20rch/bar" }, |
| 83 { "http://foo{searchTerms}?boo=abc", ASCIIToUTF16("sea rch/bar"), | 82 { "http://foo{searchTerms}?boo=abc", ASCIIToUTF16("sea rch/bar"), |
| 84 "http://foosea%20rch%2Fbar?boo=abc", false }, | 83 "http://foosea%20rch/bar?boo=abc" }, |
| 85 { "http://foo/?boo={searchTerms}", ASCIIToUTF16("sea rch/bar"), | 84 { "http://foo/?boo={searchTerms}", ASCIIToUTF16("sea rch/bar"), |
| 86 "http://foo/?boo=sea+rch%2Fbar", true }, | 85 "http://foo/?boo=sea+rch%2Fbar" }, |
| 87 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), | 86 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), |
| 88 "http://en.wikipedia.org/wiki%2F%3F", true } | 87 "http://en.wikipedia.org/wiki/%3F" } |
| 89 }; | 88 }; |
| 90 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { | 89 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { |
| 91 const SearchTermsCase& value = search_term_cases[i]; | 90 const SearchTermsCase& value = search_term_cases[i]; |
| 92 TemplateURLData data; | 91 TemplateURLData data; |
| 93 data.SetURL(value.url); | 92 data.SetURL(value.url); |
| 94 TemplateURL url(NULL, data); | 93 TemplateURL url(NULL, data); |
| 95 EXPECT_TRUE(url.url_ref().IsValid()); | 94 EXPECT_TRUE(url.url_ref().IsValid()); |
| 96 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 95 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 97 std::string result = url.url_ref().ReplaceSearchTerms(value.terms, | 96 GURL result(url.url_ref().ReplaceSearchTerms(value.terms, |
| 98 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16()); | 97 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); |
| 99 EXPECT_EQ(value.output, result); | 98 ASSERT_TRUE(result.is_valid()); |
| 100 GURL result_url(result); | 99 EXPECT_EQ(value.output, result.spec()); |
| 101 EXPECT_EQ(value.valid_url, result_url.is_valid()); | |
| 102 } | 100 } |
| 103 } | 101 } |
| 104 | 102 |
| 105 TEST_F(TemplateURLTest, URLRefTestCount) { | 103 TEST_F(TemplateURLTest, URLRefTestCount) { |
| 106 TemplateURLData data; | 104 TemplateURLData data; |
| 107 data.SetURL("http://foo{searchTerms}{count?}"); | 105 data.SetURL("http://foo{searchTerms}{count?}"); |
| 108 TemplateURL url(NULL, data); | 106 TemplateURL url(NULL, data); |
| 109 EXPECT_TRUE(url.url_ref().IsValid()); | 107 EXPECT_TRUE(url.url_ref().IsValid()); |
| 110 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 108 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 111 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 109 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 TemplateURL url(NULL, data); | 576 TemplateURL url(NULL, data); |
| 579 TemplateURLRef::Replacements replacements; | 577 TemplateURLRef::Replacements replacements; |
| 580 bool valid = false; | 578 bool valid = false; |
| 581 EXPECT_EQ("{", | 579 EXPECT_EQ("{", |
| 582 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); | 580 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); |
| 583 ASSERT_EQ(1U, replacements.size()); | 581 ASSERT_EQ(1U, replacements.size()); |
| 584 EXPECT_EQ(1U, replacements[0].index); | 582 EXPECT_EQ(1U, replacements[0].index); |
| 585 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); | 583 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
| 586 EXPECT_TRUE(valid); | 584 EXPECT_TRUE(valid); |
| 587 } | 585 } |
| OLD | NEW |