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/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/browser/autocomplete/autocomplete_input.h" |
10 #include "chrome/browser/browser_process.h" | 11 #include "chrome/browser/browser_process.h" |
11 #include "chrome/browser/rlz/rlz.h" | 12 #include "chrome/browser/rlz/rlz.h" |
12 #include "chrome/browser/search_engines/search_terms_data.h" | 13 #include "chrome/browser/search_engines/search_terms_data.h" |
13 #include "chrome/browser/search_engines/template_url.h" | 14 #include "chrome/browser/search_engines/template_url.h" |
14 #include "chrome/common/chrome_switches.h" | 15 #include "chrome/common/chrome_switches.h" |
| 16 #include "components/metrics/proto/omnibox_input_type.pb.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
16 | 18 |
17 #if defined(ENABLE_RLZ) | 19 #if defined(ENABLE_RLZ) |
18 #include "chrome/browser/google/google_brand.h" | 20 #include "chrome/browser/google/google_brand.h" |
19 #endif | 21 #endif |
20 | 22 |
21 #if defined(OS_ANDROID) | 23 #if defined(OS_ANDROID) |
22 #include "chrome/browser/search_engines/search_terms_data_android.h" | 24 #include "chrome/browser/search_engines/search_terms_data_android.h" |
23 #endif | 25 #endif |
24 | 26 |
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 EXPECT_TRUE(url.url_ref().IsValid()); | 575 EXPECT_TRUE(url.url_ref().IsValid()); |
574 ASSERT_TRUE(url.url_ref().SupportsReplacement()); | 576 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
575 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); | 577 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
576 search_terms_args.cursor_position = test_data[i].cursor_position; | 578 search_terms_args.cursor_position = test_data[i].cursor_position; |
577 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args)); | 579 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args)); |
578 ASSERT_TRUE(result.is_valid()); | 580 ASSERT_TRUE(result.is_valid()); |
579 EXPECT_EQ(test_data[i].expected_result, result.spec()); | 581 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
580 } | 582 } |
581 } | 583 } |
582 | 584 |
| 585 // Tests replacing input type (&oit=). |
| 586 TEST_F(TemplateURLTest, ReplaceInputType) { |
| 587 struct TestData { |
| 588 const base::string16 search_term; |
| 589 AutocompleteInput::Type input_type; |
| 590 const std::string url; |
| 591 const std::string expected_result; |
| 592 } test_data[] = { |
| 593 { ASCIIToUTF16("foo"), |
| 594 metrics::OmniboxInputType::UNKNOWN, |
| 595 "{google:baseURL}?{searchTerms}&{google:inputType}", |
| 596 "http://www.google.com/?foo&oit=1&" }, |
| 597 { ASCIIToUTF16("foo"), |
| 598 metrics::OmniboxInputType::URL, |
| 599 "{google:baseURL}?{searchTerms}&{google:inputType}", |
| 600 "http://www.google.com/?foo&oit=3&" }, |
| 601 { ASCIIToUTF16("foo"), |
| 602 metrics::OmniboxInputType::FORCED_QUERY, |
| 603 "{google:baseURL}?{searchTerms}&{google:inputType}", |
| 604 "http://www.google.com/?foo&oit=5&" }, |
| 605 }; |
| 606 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.google.com/"); |
| 607 TemplateURLData data; |
| 608 data.input_encodings.push_back("UTF-8"); |
| 609 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { |
| 610 data.SetURL(test_data[i].url); |
| 611 TemplateURL url(NULL, data); |
| 612 EXPECT_TRUE(url.url_ref().IsValid()); |
| 613 ASSERT_TRUE(url.url_ref().SupportsReplacement()); |
| 614 TemplateURLRef::SearchTermsArgs search_terms_args(test_data[i].search_term); |
| 615 search_terms_args.input_type = test_data[i].input_type; |
| 616 GURL result(url.url_ref().ReplaceSearchTerms(search_terms_args)); |
| 617 ASSERT_TRUE(result.is_valid()); |
| 618 EXPECT_EQ(test_data[i].expected_result, result.spec()); |
| 619 } |
| 620 } |
| 621 |
583 // Tests replacing currentPageUrl. | 622 // Tests replacing currentPageUrl. |
584 TEST_F(TemplateURLTest, ReplaceCurrentPageUrl) { | 623 TEST_F(TemplateURLTest, ReplaceCurrentPageUrl) { |
585 struct TestData { | 624 struct TestData { |
586 const base::string16 search_term; | 625 const base::string16 search_term; |
587 const std::string current_page_url; | 626 const std::string current_page_url; |
588 const std::string url; | 627 const std::string url; |
589 const std::string expected_result; | 628 const std::string expected_result; |
590 } test_data[] = { | 629 } test_data[] = { |
591 { ASCIIToUTF16("foo"), | 630 { ASCIIToUTF16("foo"), |
592 "http://www.google.com/", | 631 "http://www.google.com/", |
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1350 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); | 1389 TemplateURLRef::SearchTermsArgs search_terms_args(ASCIIToUTF16("foo")); |
1351 search_terms_args.session_token = "SESSIONTOKENGOESHERE"; | 1390 search_terms_args.session_token = "SESSIONTOKENGOESHERE"; |
1352 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args); | 1391 std::string result = url.url_ref().ReplaceSearchTerms(search_terms_args); |
1353 EXPECT_EQ("http://bar/search?q=foo&psi=SESSIONTOKENGOESHERE&xssi=t", result); | 1392 EXPECT_EQ("http://bar/search?q=foo&psi=SESSIONTOKENGOESHERE&xssi=t", result); |
1354 | 1393 |
1355 TemplateURL url2(NULL, data); | 1394 TemplateURL url2(NULL, data); |
1356 search_terms_args.session_token = ""; | 1395 search_terms_args.session_token = ""; |
1357 result = url.url_ref().ReplaceSearchTerms(search_terms_args); | 1396 result = url.url_ref().ReplaceSearchTerms(search_terms_args); |
1358 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); | 1397 EXPECT_EQ("http://bar/search?q=foo&xssi=t", result); |
1359 } | 1398 } |
OLD | NEW |