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 |