Chromium Code Reviews| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), | 86 { "http://en.wikipedia.org/{searchTerms}", ASCIIToUTF16("wiki/?"), |
| 87 "http://en.wikipedia.org/wiki/%3F" } | 87 "http://en.wikipedia.org/wiki/%3F" } |
| 88 }; | 88 }; |
| 89 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) { |
| 90 const SearchTermsCase& value = search_term_cases[i]; | 90 const SearchTermsCase& value = search_term_cases[i]; |
| 91 TemplateURLData data; | 91 TemplateURLData data; |
| 92 data.SetURL(value.url); | 92 data.SetURL(value.url); |
| 93 TemplateURL url(NULL, data); | 93 TemplateURL url(NULL, data); |
| 94 EXPECT_TRUE(url.url_ref().IsValid()); | 94 EXPECT_TRUE(url.url_ref().IsValid()); |
| 95 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 95 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 96 GURL result(url.url_ref().ReplaceSearchTerms(value.terms, | 96 GURL result(url.url_ref().ReplaceSearchTerms( |
| 97 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 97 TemplateURLRef::SearchTermsArgs(value.terms))); |
| 98 ASSERT_TRUE(result.is_valid()); | 98 ASSERT_TRUE(result.is_valid()); |
| 99 EXPECT_EQ(value.output, result.spec()); | 99 EXPECT_EQ(value.output, result.spec()); |
| 100 } | 100 } |
| 101 } | 101 } |
| 102 | 102 |
| 103 TEST_F(TemplateURLTest, URLRefTestCount) { | 103 TEST_F(TemplateURLTest, URLRefTestCount) { |
| 104 TemplateURLData data; | 104 TemplateURLData data; |
| 105 data.SetURL("http://foo{searchTerms}{count?}"); | 105 data.SetURL("http://foo{searchTerms}{count?}"); |
| 106 TemplateURL url(NULL, data); | 106 TemplateURL url(NULL, data); |
| 107 EXPECT_TRUE(url.url_ref().IsValid()); | 107 EXPECT_TRUE(url.url_ref().IsValid()); |
| 108 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 108 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 109 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 109 GURL result(url.url_ref().ReplaceSearchTerms( |
| 110 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 110 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 111 ASSERT_TRUE(result.is_valid()); | 111 ASSERT_TRUE(result.is_valid()); |
| 112 EXPECT_EQ("http://foox/", result.spec()); | 112 EXPECT_EQ("http://foox/", result.spec()); |
| 113 } | 113 } |
| 114 | 114 |
| 115 TEST_F(TemplateURLTest, URLRefTestCount2) { | 115 TEST_F(TemplateURLTest, URLRefTestCount2) { |
| 116 TemplateURLData data; | 116 TemplateURLData data; |
| 117 data.SetURL("http://foo{searchTerms}{count}"); | 117 data.SetURL("http://foo{searchTerms}{count}"); |
| 118 TemplateURL url(NULL, data); | 118 TemplateURL url(NULL, data); |
| 119 EXPECT_TRUE(url.url_ref().IsValid()); | 119 EXPECT_TRUE(url.url_ref().IsValid()); |
| 120 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 120 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 121 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 121 GURL result(url.url_ref().ReplaceSearchTerms( |
| 122 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 122 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 123 ASSERT_TRUE(result.is_valid()); | 123 ASSERT_TRUE(result.is_valid()); |
| 124 EXPECT_EQ("http://foox10/", result.spec()); | 124 EXPECT_EQ("http://foox10/", result.spec()); |
| 125 } | 125 } |
| 126 | 126 |
| 127 TEST_F(TemplateURLTest, URLRefTestIndices) { | 127 TEST_F(TemplateURLTest, URLRefTestIndices) { |
| 128 TemplateURLData data; | 128 TemplateURLData data; |
| 129 data.SetURL("http://foo{searchTerms}x{startIndex?}y{startPage?}"); | 129 data.SetURL("http://foo{searchTerms}x{startIndex?}y{startPage?}"); |
| 130 TemplateURL url(NULL, data); | 130 TemplateURL url(NULL, data); |
| 131 EXPECT_TRUE(url.url_ref().IsValid()); | 131 EXPECT_TRUE(url.url_ref().IsValid()); |
| 132 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 132 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 133 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 133 GURL result(url.url_ref().ReplaceSearchTerms( |
| 134 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 134 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 135 ASSERT_TRUE(result.is_valid()); | 135 ASSERT_TRUE(result.is_valid()); |
| 136 EXPECT_EQ("http://fooxxy/", result.spec()); | 136 EXPECT_EQ("http://fooxxy/", result.spec()); |
| 137 } | 137 } |
| 138 | 138 |
| 139 TEST_F(TemplateURLTest, URLRefTestIndices2) { | 139 TEST_F(TemplateURLTest, URLRefTestIndices2) { |
| 140 TemplateURLData data; | 140 TemplateURLData data; |
| 141 data.SetURL("http://foo{searchTerms}x{startIndex}y{startPage}"); | 141 data.SetURL("http://foo{searchTerms}x{startIndex}y{startPage}"); |
| 142 TemplateURL url(NULL, data); | 142 TemplateURL url(NULL, data); |
| 143 EXPECT_TRUE(url.url_ref().IsValid()); | 143 EXPECT_TRUE(url.url_ref().IsValid()); |
| 144 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 144 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 145 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 145 GURL result(url.url_ref().ReplaceSearchTerms( |
| 146 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 146 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 147 ASSERT_TRUE(result.is_valid()); | 147 ASSERT_TRUE(result.is_valid()); |
| 148 EXPECT_EQ("http://fooxx1y1/", result.spec()); | 148 EXPECT_EQ("http://fooxx1y1/", result.spec()); |
| 149 } | 149 } |
| 150 | 150 |
| 151 TEST_F(TemplateURLTest, URLRefTestEncoding) { | 151 TEST_F(TemplateURLTest, URLRefTestEncoding) { |
| 152 TemplateURLData data; | 152 TemplateURLData data; |
| 153 data.SetURL("http://foo{searchTerms}x{inputEncoding?}y{outputEncoding?}a"); | 153 data.SetURL("http://foo{searchTerms}x{inputEncoding?}y{outputEncoding?}a"); |
| 154 TemplateURL url(NULL, data); | 154 TemplateURL url(NULL, data); |
| 155 EXPECT_TRUE(url.url_ref().IsValid()); | 155 EXPECT_TRUE(url.url_ref().IsValid()); |
| 156 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 156 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 157 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 157 GURL result(url.url_ref().ReplaceSearchTerms( |
| 158 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 158 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 159 ASSERT_TRUE(result.is_valid()); | 159 ASSERT_TRUE(result.is_valid()); |
| 160 EXPECT_EQ("http://fooxxutf-8ya/", result.spec()); | 160 EXPECT_EQ("http://fooxxutf-8ya/", result.spec()); |
| 161 } | 161 } |
| 162 | 162 |
| 163 // Test that setting the prepopulate ID from TemplateURL causes the stored | 163 // Test that setting the prepopulate ID from TemplateURL causes the stored |
| 164 // TemplateURLRef to handle parsing the URL parameters differently. | 164 // TemplateURLRef to handle parsing the URL parameters differently. |
| 165 TEST_F(TemplateURLTest, SetPrepopulatedAndParse) { | 165 TEST_F(TemplateURLTest, SetPrepopulatedAndParse) { |
| 166 TemplateURLData data; | 166 TemplateURLData data; |
| 167 data.SetURL("http://foo{fhqwhgads}bar"); | 167 data.SetURL("http://foo{fhqwhgads}bar"); |
| 168 TemplateURL url(NULL, data); | 168 TemplateURL url(NULL, data); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 180 EXPECT_TRUE(replacements.empty()); | 180 EXPECT_TRUE(replacements.empty()); |
| 181 EXPECT_TRUE(valid); | 181 EXPECT_TRUE(valid); |
| 182 } | 182 } |
| 183 | 183 |
| 184 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) { | 184 TEST_F(TemplateURLTest, InputEncodingBeforeSearchTerm) { |
| 185 TemplateURLData data; | 185 TemplateURLData data; |
| 186 data.SetURL("http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b"); | 186 data.SetURL("http://foox{inputEncoding?}a{searchTerms}y{outputEncoding?}b"); |
| 187 TemplateURL url(NULL, data); | 187 TemplateURL url(NULL, data); |
| 188 EXPECT_TRUE(url.url_ref().IsValid()); | 188 EXPECT_TRUE(url.url_ref().IsValid()); |
| 189 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 189 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 190 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 190 GURL result(url.url_ref().ReplaceSearchTerms( |
| 191 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 191 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 192 ASSERT_TRUE(result.is_valid()); | 192 ASSERT_TRUE(result.is_valid()); |
| 193 EXPECT_EQ("http://fooxutf-8axyb/", result.spec()); | 193 EXPECT_EQ("http://fooxutf-8axyb/", result.spec()); |
| 194 } | 194 } |
| 195 | 195 |
| 196 TEST_F(TemplateURLTest, URLRefTestEncoding2) { | 196 TEST_F(TemplateURLTest, URLRefTestEncoding2) { |
| 197 TemplateURLData data; | 197 TemplateURLData data; |
| 198 data.SetURL("http://foo{searchTerms}x{inputEncoding}y{outputEncoding}a"); | 198 data.SetURL("http://foo{searchTerms}x{inputEncoding}y{outputEncoding}a"); |
| 199 TemplateURL url(NULL, data); | 199 TemplateURL url(NULL, data); |
| 200 EXPECT_TRUE(url.url_ref().IsValid()); | 200 EXPECT_TRUE(url.url_ref().IsValid()); |
| 201 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 201 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 202 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 202 GURL result(url.url_ref().ReplaceSearchTerms( |
| 203 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 203 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 204 ASSERT_TRUE(result.is_valid()); | 204 ASSERT_TRUE(result.is_valid()); |
| 205 EXPECT_EQ("http://fooxxutf-8yutf-8a/", result.spec()); | 205 EXPECT_EQ("http://fooxxutf-8yutf-8a/", result.spec()); |
| 206 } | 206 } |
| 207 | 207 |
| 208 TEST_F(TemplateURLTest, URLRefTestSearchTermsUsingTermsData) { | 208 TEST_F(TemplateURLTest, URLRefTestSearchTermsUsingTermsData) { |
| 209 struct SearchTermsCase { | 209 struct SearchTermsCase { |
| 210 const char* url; | 210 const char* url; |
| 211 const string16 terms; | 211 const string16 terms; |
| 212 const char* output; | 212 const char* output; |
| 213 } search_term_cases[] = { | 213 } search_term_cases[] = { |
| 214 { "{google:baseURL}{language}{searchTerms}", string16(), | 214 { "{google:baseURL}{language}{searchTerms}", string16(), |
| 215 "http://example.com/e/en" }, | 215 "http://example.com/e/en" }, |
| 216 { "{google:baseSuggestURL}{searchTerms}", string16(), | 216 { "{google:baseSuggestURL}{searchTerms}", string16(), |
| 217 "http://example.com/complete/" } | 217 "http://example.com/complete/" } |
| 218 }; | 218 }; |
| 219 | 219 |
| 220 TestSearchTermsData search_terms_data("http://example.com/e/"); | 220 TestSearchTermsData search_terms_data("http://example.com/e/"); |
| 221 TemplateURLData data; | 221 TemplateURLData data; |
| 222 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { | 222 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(search_term_cases); ++i) { |
| 223 const SearchTermsCase& value = search_term_cases[i]; | 223 const SearchTermsCase& value = search_term_cases[i]; |
| 224 data.SetURL(value.url); | 224 data.SetURL(value.url); |
| 225 TemplateURL url(NULL, data); | 225 TemplateURL url(NULL, data); |
| 226 EXPECT_TRUE(url.url_ref().IsValid()); | 226 EXPECT_TRUE(url.url_ref().IsValid()); |
| 227 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 227 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 228 GURL result(url.url_ref().ReplaceSearchTermsUsingTermsData(value.terms, | 228 GURL result(url.url_ref().ReplaceSearchTermsUsingTermsData( |
| 229 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16(), | 229 TemplateURLRef::SearchTermsArgs(value.terms), |
| 230 search_terms_data)); | 230 search_terms_data)); |
|
Peter Kasting
2012/06/18 19:45:52
Nit: If this doesn't fit on the previous line, it
Bart N
2012/06/18 20:34:18
Done.
| |
| 231 ASSERT_TRUE(result.is_valid()); | 231 ASSERT_TRUE(result.is_valid()); |
| 232 EXPECT_EQ(value.output, result.spec()); | 232 EXPECT_EQ(value.output, result.spec()); |
| 233 } | 233 } |
| 234 } | 234 } |
| 235 | 235 |
| 236 TEST_F(TemplateURLTest, URLRefTermToWide) { | 236 TEST_F(TemplateURLTest, URLRefTermToWide) { |
| 237 struct ToWideCase { | 237 struct ToWideCase { |
| 238 const char* encoded_search_term; | 238 const char* encoded_search_term; |
| 239 const string16 expected_decoded_term; | 239 const string16 expected_decoded_term; |
| 240 } to_wide_cases[] = { | 240 } to_wide_cases[] = { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 324 TemplateURLData data; | 324 TemplateURLData data; |
| 325 data.input_encodings.push_back("UTF-8"); | 325 data.input_encodings.push_back("UTF-8"); |
| 326 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 326 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 327 data.SetURL(test_data[i].url); | 327 data.SetURL(test_data[i].url); |
| 328 TemplateURL url(NULL, data); | 328 TemplateURL url(NULL, data); |
| 329 EXPECT_TRUE(url.url_ref().IsValid()); | 329 EXPECT_TRUE(url.url_ref().IsValid()); |
| 330 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 330 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 331 std::string expected_result = test_data[i].expected_result; | 331 std::string expected_result = test_data[i].expected_result; |
| 332 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", | 332 ReplaceSubstringsAfterOffset(&expected_result, 0, "{language}", |
| 333 g_browser_process->GetApplicationLocale()); | 333 g_browser_process->GetApplicationLocale()); |
| 334 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("X"), | 334 GURL result(url.url_ref().ReplaceSearchTerms( |
| 335 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 335 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("X")))); |
| 336 ASSERT_TRUE(result.is_valid()); | 336 ASSERT_TRUE(result.is_valid()); |
| 337 EXPECT_EQ(expected_result, result.spec()); | 337 EXPECT_EQ(expected_result, result.spec()); |
| 338 } | 338 } |
| 339 } | 339 } |
| 340 | 340 |
| 341 | 341 |
| 342 // Tests replacing search terms in various encodings and making sure the | 342 // Tests replacing search terms in various encodings and making sure the |
| 343 // generated URL matches the expected value. | 343 // generated URL matches the expected value. |
| 344 TEST_F(TemplateURLTest, ReplaceArbitrarySearchTerms) { | 344 TEST_F(TemplateURLTest, ReplaceArbitrarySearchTerms) { |
| 345 struct TestData { | 345 struct TestData { |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 362 "http://foo/%82%A0%20%82%A2/bar"}, | 362 "http://foo/%82%A0%20%82%A2/bar"}, |
| 363 }; | 363 }; |
| 364 TemplateURLData data; | 364 TemplateURLData data; |
| 365 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 365 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 366 data.SetURL(test_data[i].url); | 366 data.SetURL(test_data[i].url); |
| 367 data.input_encodings.clear(); | 367 data.input_encodings.clear(); |
| 368 data.input_encodings.push_back(test_data[i].encoding); | 368 data.input_encodings.push_back(test_data[i].encoding); |
| 369 TemplateURL url(NULL, data); | 369 TemplateURL url(NULL, data); |
| 370 EXPECT_TRUE(url.url_ref().IsValid()); | 370 EXPECT_TRUE(url.url_ref().IsValid()); |
| 371 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 371 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 372 GURL result(url.url_ref().ReplaceSearchTerms(test_data[i].search_term, | 372 GURL result(url.url_ref().ReplaceSearchTerms( |
| 373 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 373 TemplateURLRef::SearchTermsArgs(test_data[i].search_term))); |
| 374 ASSERT_TRUE(result.is_valid()); | 374 ASSERT_TRUE(result.is_valid()); |
| 375 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 375 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 | 378 |
| 379 TEST_F(TemplateURLTest, Suggestions) { | 379 TEST_F(TemplateURLTest, Suggestions) { |
| 380 struct TestData { | 380 struct TestData { |
| 381 const int accepted_suggestion; | 381 const int accepted_suggestion; |
| 382 const string16 original_query_for_suggestion; | 382 const string16 original_query_for_suggestion; |
| 383 const std::string expected_result; | 383 const std::string expected_result; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 394 { 1, ASCIIToUTF16("foo"), "http://bar/foo?aq=1&oq=foo&q=foobar" }, | 394 { 1, ASCIIToUTF16("foo"), "http://bar/foo?aq=1&oq=foo&q=foobar" }, |
| 395 }; | 395 }; |
| 396 TemplateURLData data; | 396 TemplateURLData data; |
| 397 data.SetURL("http://bar/foo?{google:acceptedSuggestion}" | 397 data.SetURL("http://bar/foo?{google:acceptedSuggestion}" |
| 398 "{google:originalQueryForSuggestion}q={searchTerms}"); | 398 "{google:originalQueryForSuggestion}q={searchTerms}"); |
| 399 data.input_encodings.push_back("UTF-8"); | 399 data.input_encodings.push_back("UTF-8"); |
| 400 TemplateURL url(NULL, data); | 400 TemplateURL url(NULL, data); |
| 401 EXPECT_TRUE(url.url_ref().IsValid()); | 401 EXPECT_TRUE(url.url_ref().IsValid()); |
| 402 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 402 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 403 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { | 403 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 404 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("foobar"), | 404 TemplateURLRef::SearchTermsArgs search_terms_args( |
| 405 test_data[i].accepted_suggestion, | 405 ASCIIToUTF16("foobar")); |
| 406 test_data[i].original_query_for_suggestion)); | 406 search_terms_args.accepted_suggestion = test_data[i].accepted_suggestion; |
| 407 search_terms_args.original_query = | |
| 408 test_data[i].original_query_for_suggestion; | |
| 409 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args)); | |
| 407 ASSERT_TRUE(result.is_valid()); | 410 ASSERT_TRUE(result.is_valid()); |
| 408 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 411 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 409 } | 412 } |
| 410 } | 413 } |
| 411 | 414 |
| 412 #if defined(OS_WIN) || defined(OS_MACOSX) | 415 #if defined(OS_WIN) || defined(OS_MACOSX) |
| 413 TEST_F(TemplateURLTest, RLZ) { | 416 TEST_F(TemplateURLTest, RLZ) { |
| 414 string16 rlz_string; | 417 string16 rlz_string; |
| 415 #if defined(ENABLE_RLZ) | 418 #if defined(ENABLE_RLZ) |
| 416 std::string brand; | 419 std::string brand; |
| 417 if (google_util::GetBrand(&brand) && !brand.empty() && | 420 if (google_util::GetBrand(&brand) && !brand.empty() && |
| 418 !google_util::IsOrganic(brand)) { | 421 !google_util::IsOrganic(brand)) { |
| 419 RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz_string); | 422 RLZTracker::GetAccessPointRlz(rlz_lib::CHROME_OMNIBOX, &rlz_string); |
| 420 } | 423 } |
| 421 #endif | 424 #endif |
| 422 | 425 |
| 423 TemplateURLData data; | 426 TemplateURLData data; |
| 424 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); | 427 data.SetURL("http://bar/?{google:RLZ}{searchTerms}"); |
| 425 TemplateURL url(NULL, data); | 428 TemplateURL url(NULL, data); |
| 426 EXPECT_TRUE(url.url_ref().IsValid()); | 429 EXPECT_TRUE(url.url_ref().IsValid()); |
| 427 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 430 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 428 GURL result(url.url_ref().ReplaceSearchTerms(ASCIIToUTF16("x"), | 431 GURL result(url.url_ref().ReplaceSearchTerms( |
| 429 TemplateURLRef::NO_SUGGESTIONS_AVAILABLE, string16())); | 432 TemplateURLRef::SearchTermsArgs(ASCIIToUTF16("x")))); |
| 430 ASSERT_TRUE(result.is_valid()); | 433 ASSERT_TRUE(result.is_valid()); |
| 431 std::string expected_url = "http://bar/?"; | 434 std::string expected_url = "http://bar/?"; |
| 432 if (!rlz_string.empty()) | 435 if (!rlz_string.empty()) |
| 433 expected_url += "rlz=" + UTF16ToUTF8(rlz_string) + "&"; | 436 expected_url += "rlz=" + UTF16ToUTF8(rlz_string) + "&"; |
| 434 expected_url += "x"; | 437 expected_url += "x"; |
| 435 EXPECT_EQ(expected_url, result.spec()); | 438 EXPECT_EQ(expected_url, result.spec()); |
| 436 } | 439 } |
| 437 #endif | 440 #endif |
| 438 | 441 |
| 439 TEST_F(TemplateURLTest, HostAndSearchTermKey) { | 442 TEST_F(TemplateURLTest, HostAndSearchTermKey) { |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 576 TemplateURL url(NULL, data); | 579 TemplateURL url(NULL, data); |
| 577 TemplateURLRef::Replacements replacements; | 580 TemplateURLRef::Replacements replacements; |
| 578 bool valid = false; | 581 bool valid = false; |
| 579 EXPECT_EQ("{", | 582 EXPECT_EQ("{", |
| 580 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); | 583 url.url_ref().ParseURL("{{searchTerms}", &replacements, &valid)); |
| 581 ASSERT_EQ(1U, replacements.size()); | 584 ASSERT_EQ(1U, replacements.size()); |
| 582 EXPECT_EQ(1U, replacements[0].index); | 585 EXPECT_EQ(1U, replacements[0].index); |
| 583 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); | 586 EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
| 584 EXPECT_TRUE(valid); | 587 EXPECT_TRUE(valid); |
| 585 } | 588 } |
| OLD | NEW |