| 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 "chrome/browser/autocomplete/history_url_provider.h" | 5 #include "chrome/browser/autocomplete/history_url_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 const std::string& desired_tld, | 303 const std::string& desired_tld, |
| 304 bool prevent_inline_autocomplete, | 304 bool prevent_inline_autocomplete, |
| 305 const UrlAndLegalDefault* expected_urls, | 305 const UrlAndLegalDefault* expected_urls, |
| 306 size_t num_results, | 306 size_t num_results, |
| 307 metrics::OmniboxInputType::Type* identified_input_type) { | 307 metrics::OmniboxInputType::Type* identified_input_type) { |
| 308 AutocompleteInput input(text, base::string16::npos, desired_tld, GURL(), | 308 AutocompleteInput input(text, base::string16::npos, desired_tld, GURL(), |
| 309 metrics::OmniboxEventProto::INVALID_SPEC, | 309 metrics::OmniboxEventProto::INVALID_SPEC, |
| 310 prevent_inline_autocomplete, false, true, true, | 310 prevent_inline_autocomplete, false, true, true, |
| 311 ChromeAutocompleteSchemeClassifier(profile_.get())); | 311 ChromeAutocompleteSchemeClassifier(profile_.get())); |
| 312 *identified_input_type = input.type(); | 312 *identified_input_type = input.type(); |
| 313 autocomplete_->Start(input, false); | 313 autocomplete_->Start(input, false, false); |
| 314 if (!autocomplete_->done()) | 314 if (!autocomplete_->done()) |
| 315 base::MessageLoop::current()->Run(); | 315 base::MessageLoop::current()->Run(); |
| 316 | 316 |
| 317 matches_ = autocomplete_->matches(); | 317 matches_ = autocomplete_->matches(); |
| 318 if (sort_matches_) { | 318 if (sort_matches_) { |
| 319 TemplateURLService* service = | 319 TemplateURLService* service = |
| 320 TemplateURLServiceFactory::GetForProfile(profile_.get()); | 320 TemplateURLServiceFactory::GetForProfile(profile_.get()); |
| 321 for (ACMatches::iterator i = matches_.begin(); i != matches_.end(); ++i) | 321 for (ACMatches::iterator i = matches_.begin(); i != matches_.end(); ++i) |
| 322 i->ComputeStrippedDestinationURL(service); | 322 i->ComputeStrippedDestinationURL(service); |
| 323 AutocompleteResult::DedupMatchesByDestination( | 323 AutocompleteResult::DedupMatchesByDestination( |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 // second passes. | 603 // second passes. |
| 604 TEST_F(HistoryURLProviderTest, EmptyVisits) { | 604 TEST_F(HistoryURLProviderTest, EmptyVisits) { |
| 605 // Wait for history to create the in memory DB. | 605 // Wait for history to create the in memory DB. |
| 606 profile_->BlockUntilHistoryProcessesPendingRequests(); | 606 profile_->BlockUntilHistoryProcessesPendingRequests(); |
| 607 | 607 |
| 608 AutocompleteInput input(ASCIIToUTF16("p"), base::string16::npos, | 608 AutocompleteInput input(ASCIIToUTF16("p"), base::string16::npos, |
| 609 std::string(), GURL(), | 609 std::string(), GURL(), |
| 610 metrics::OmniboxEventProto::INVALID_SPEC, false, | 610 metrics::OmniboxEventProto::INVALID_SPEC, false, |
| 611 false, true, true, | 611 false, true, true, |
| 612 ChromeAutocompleteSchemeClassifier(profile_.get())); | 612 ChromeAutocompleteSchemeClassifier(profile_.get())); |
| 613 autocomplete_->Start(input, false); | 613 autocomplete_->Start(input, false, false); |
| 614 // HistoryURLProvider shouldn't be done (waiting on async results). | 614 // HistoryURLProvider shouldn't be done (waiting on async results). |
| 615 EXPECT_FALSE(autocomplete_->done()); | 615 EXPECT_FALSE(autocomplete_->done()); |
| 616 | 616 |
| 617 // We should get back an entry for pandora. | 617 // We should get back an entry for pandora. |
| 618 matches_ = autocomplete_->matches(); | 618 matches_ = autocomplete_->matches(); |
| 619 ASSERT_GT(matches_.size(), 0u); | 619 ASSERT_GT(matches_.size(), 0u); |
| 620 EXPECT_EQ(GURL("http://pandora.com/"), matches_[0].destination_url); | 620 EXPECT_EQ(GURL("http://pandora.com/"), matches_[0].destination_url); |
| 621 int pandora_relevance = matches_[0].relevance; | 621 int pandora_relevance = matches_[0].relevance; |
| 622 | 622 |
| 623 // Run the message loop. When |autocomplete_| finishes the loop is quit. | 623 // Run the message loop. When |autocomplete_| finishes the loop is quit. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 646 | 646 |
| 647 RunTest(ASCIIToUTF16("this is a query"), std::string(), false, NULL, 0); | 647 RunTest(ASCIIToUTF16("this is a query"), std::string(), false, NULL, 0); |
| 648 } | 648 } |
| 649 | 649 |
| 650 TEST_F(HistoryURLProviderTest, DontAutocompleteOnTrailingWhitespace) { | 650 TEST_F(HistoryURLProviderTest, DontAutocompleteOnTrailingWhitespace) { |
| 651 AutocompleteInput input(ASCIIToUTF16("slash "), base::string16::npos, | 651 AutocompleteInput input(ASCIIToUTF16("slash "), base::string16::npos, |
| 652 std::string(), GURL(), | 652 std::string(), GURL(), |
| 653 metrics::OmniboxEventProto::INVALID_SPEC, false, | 653 metrics::OmniboxEventProto::INVALID_SPEC, false, |
| 654 false, true, true, | 654 false, true, true, |
| 655 ChromeAutocompleteSchemeClassifier(profile_.get())); | 655 ChromeAutocompleteSchemeClassifier(profile_.get())); |
| 656 autocomplete_->Start(input, false); | 656 autocomplete_->Start(input, false, false); |
| 657 if (!autocomplete_->done()) | 657 if (!autocomplete_->done()) |
| 658 base::MessageLoop::current()->Run(); | 658 base::MessageLoop::current()->Run(); |
| 659 | 659 |
| 660 // None of the matches should attempt to autocomplete. | 660 // None of the matches should attempt to autocomplete. |
| 661 matches_ = autocomplete_->matches(); | 661 matches_ = autocomplete_->matches(); |
| 662 for (size_t i = 0; i < matches_.size(); ++i) { | 662 for (size_t i = 0; i < matches_.size(); ++i) { |
| 663 EXPECT_TRUE(matches_[i].inline_autocompletion.empty()); | 663 EXPECT_TRUE(matches_[i].inline_autocompletion.empty()); |
| 664 EXPECT_FALSE(matches_[i].allowed_to_be_default_match); | 664 EXPECT_FALSE(matches_[i].allowed_to_be_default_match); |
| 665 } | 665 } |
| 666 } | 666 } |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 "//c", | 784 "//c", |
| 785 "\\@st", | 785 "\\@st", |
| 786 "view-source:x", | 786 "view-source:x", |
| 787 }; | 787 }; |
| 788 for (size_t i = 0; i < arraysize(test_cases); ++i) { | 788 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
| 789 AutocompleteInput input(ASCIIToUTF16(test_cases[i]), base::string16::npos, | 789 AutocompleteInput input(ASCIIToUTF16(test_cases[i]), base::string16::npos, |
| 790 std::string(), GURL(), | 790 std::string(), GURL(), |
| 791 metrics::OmniboxEventProto::INVALID_SPEC, | 791 metrics::OmniboxEventProto::INVALID_SPEC, |
| 792 false, false, true, true, | 792 false, false, true, true, |
| 793 ChromeAutocompleteSchemeClassifier(profile_.get())); | 793 ChromeAutocompleteSchemeClassifier(profile_.get())); |
| 794 autocomplete_->Start(input, false); | 794 autocomplete_->Start(input, false, false); |
| 795 if (!autocomplete_->done()) | 795 if (!autocomplete_->done()) |
| 796 base::MessageLoop::current()->Run(); | 796 base::MessageLoop::current()->Run(); |
| 797 } | 797 } |
| 798 } | 798 } |
| 799 | 799 |
| 800 TEST_F(HistoryURLProviderTest, DoesNotProvideMatchesOnFocus) { |
| 801 AutocompleteInput input(ASCIIToUTF16("foo"), base::string16::npos, |
| 802 std::string(), GURL(), |
| 803 metrics::OmniboxEventProto::INVALID_SPEC, |
| 804 false, false, true, true, |
| 805 ChromeAutocompleteSchemeClassifier(profile_.get())); |
| 806 autocomplete_->Start(input, false, true); |
| 807 EXPECT_TRUE(autocomplete_->matches().empty()); |
| 808 } |
| 809 |
| 800 TEST_F(HistoryURLProviderTest, CullSearchResults) { | 810 TEST_F(HistoryURLProviderTest, CullSearchResults) { |
| 801 // Set up a default search engine. | 811 // Set up a default search engine. |
| 802 TemplateURLData data; | 812 TemplateURLData data; |
| 803 data.SetKeyword(ASCIIToUTF16("TestEngine")); | 813 data.SetKeyword(ASCIIToUTF16("TestEngine")); |
| 804 data.SetURL("http://testsearch.com/?q={searchTerms}"); | 814 data.SetURL("http://testsearch.com/?q={searchTerms}"); |
| 805 TemplateURLService* template_url_service = | 815 TemplateURLService* template_url_service = |
| 806 TemplateURLServiceFactory::GetForProfile(profile_.get()); | 816 TemplateURLServiceFactory::GetForProfile(profile_.get()); |
| 807 TemplateURL* template_url = new TemplateURL(data); | 817 TemplateURL* template_url = new TemplateURL(data); |
| 808 template_url_service->Add(template_url); | 818 template_url_service->Add(template_url); |
| 809 template_url_service->SetUserSelectedDefaultSearchProvider(template_url); | 819 template_url_service->SetUserSelectedDefaultSearchProvider(template_url); |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 // Test the experiment (scoring enabled). | 1032 // Test the experiment (scoring enabled). |
| 1023 autocomplete_->scoring_params_.experimental_scoring_enabled = true; | 1033 autocomplete_->scoring_params_.experimental_scoring_enabled = true; |
| 1024 ASSERT_NO_FATAL_FAILURE(RunTest(ASCIIToUTF16(test_cases[i].input), | 1034 ASSERT_NO_FATAL_FAILURE(RunTest(ASCIIToUTF16(test_cases[i].input), |
| 1025 std::string(), false, output, max_matches)); | 1035 std::string(), false, output, max_matches)); |
| 1026 for (int j = 0; j < max_matches; ++j) { | 1036 for (int j = 0; j < max_matches; ++j) { |
| 1027 EXPECT_EQ(test_cases[i].matches[j].experiment_relevance, | 1037 EXPECT_EQ(test_cases[i].matches[j].experiment_relevance, |
| 1028 matches_[j].relevance); | 1038 matches_[j].relevance); |
| 1029 } | 1039 } |
| 1030 } | 1040 } |
| 1031 } | 1041 } |
| OLD | NEW |