| Index: chrome/browser/autocomplete/autocomplete_provider_unittest.cc
|
| diff --git a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
|
| index 3c876a2adcc19879021a5786e22cb09d44bf4cbb..f4bf6abdad0a722cc5587e70d225c79a5bb70946 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
|
| +++ b/chrome/browser/autocomplete/autocomplete_provider_unittest.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/location.h"
|
| +#include "base/logging.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/strings/string16.h"
|
| @@ -15,10 +16,8 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/thread_task_runner_handle.h"
|
| #include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h"
|
| -#include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/search_engines/template_url_service_factory.h"
|
| -#include "chrome/test/base/testing_browser_process.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "components/metrics/proto/omnibox_event.pb.h"
|
| #include "components/omnibox/browser/autocomplete_controller.h"
|
| @@ -26,16 +25,20 @@
|
| #include "components/omnibox/browser/autocomplete_match.h"
|
| #include "components/omnibox/browser/autocomplete_provider_listener.h"
|
| #include "components/omnibox/browser/keyword_provider.h"
|
| +#include "components/omnibox/browser/mock_autocomplete_provider_client.h"
|
| #include "components/omnibox/browser/search_provider.h"
|
| #include "components/search_engines/search_engines_switches.h"
|
| #include "components/search_engines/template_url.h"
|
| #include "components/search_engines/template_url_service.h"
|
| +#include "components/search_engines/template_url_service_client.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "content/public/browser/notification_source.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +using testing::NiceMock;
|
| +
|
| static std::ostream& operator<<(std::ostream& os,
|
| const AutocompleteResult::const_iterator& it) {
|
| return os << static_cast<const AutocompleteMatch*>(&(*it));
|
| @@ -44,7 +47,18 @@ static std::ostream& operator<<(std::ostream& os,
|
| namespace {
|
| const size_t kResultsPerProvider = 3;
|
| const char kTestTemplateURLKeyword[] = "t";
|
| -}
|
| +
|
| +class TestingSchemeClassifier : public AutocompleteSchemeClassifier {
|
| + public:
|
| + metrics::OmniboxInputType::Type GetInputTypeForScheme(
|
| + const std::string& scheme) const override {
|
| + if (net::URLRequest::IsHandledProtocol(scheme))
|
| + return metrics::OmniboxInputType::URL;
|
| + return metrics::OmniboxInputType::INVALID;
|
| + }
|
| +};
|
| +
|
| +} // namespace
|
|
|
| // Autocomplete provider that provides known results. Note that this is
|
| // refcounted so that it can also be a task on the message loop.
|
| @@ -176,6 +190,8 @@ class AutocompleteProviderTest : public testing::Test,
|
| };
|
|
|
| protected:
|
| + ~AutocompleteProviderTest() override {}
|
| +
|
| // Registers a test TemplateURL under the given keyword.
|
| void RegisterTemplateURL(const base::string16 keyword,
|
| const std::string& template_url);
|
| @@ -186,6 +202,8 @@ class AutocompleteProviderTest : public testing::Test,
|
| TestProvider** provider1_ptr,
|
| TestProvider** provider2_ptr);
|
|
|
| + void SetUp() override;
|
| +
|
| // Runs a query on the input "a", and makes sure both providers' input is
|
| // properly collected.
|
| void RunTest();
|
| @@ -238,8 +256,19 @@ class AutocompleteProviderTest : public testing::Test,
|
| content::NotificationRegistrar registrar_;
|
| TestingProfile profile_;
|
| scoped_ptr<AutocompleteController> controller_;
|
| + scoped_ptr<MockAutocompleteProviderClient> client_;
|
| };
|
|
|
| +void AutocompleteProviderTest::SetUp() {
|
| + scoped_ptr<TemplateURLService> template_url_service(
|
| + new TemplateURLService(
|
| + nullptr, scoped_ptr<SearchTermsData>(new SearchTermsData),
|
| + nullptr, scoped_ptr<TemplateURLServiceClient>(), nullptr,
|
| + nullptr, base::Closure()));
|
| + client_.reset(new NiceMock<MockAutocompleteProviderClient>());
|
| + client_->set_template_url_service(template_url_service.Pass());
|
| +}
|
| +
|
| void AutocompleteProviderTest::RegisterTemplateURL(
|
| const base::string16 keyword,
|
| const std::string& template_url) {
|
| @@ -413,7 +442,7 @@ void AutocompleteProviderTest::RunKeywordTest(const base::string16& input,
|
| input, base::string16::npos, std::string(), GURL(),
|
| metrics::OmniboxEventProto::INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS,
|
| false, true, true, true, false,
|
| - ChromeAutocompleteSchemeClassifier(&profile_));
|
| + TestingSchemeClassifier());
|
| AutocompleteResult result;
|
| result.AppendMatches(controller_->input_, matches);
|
| controller_->UpdateAssociatedKeywords(&result);
|
| @@ -459,7 +488,7 @@ void AutocompleteProviderTest::RunQuery(const base::string16 query) {
|
| controller_->Start(AutocompleteInput(
|
| query, base::string16::npos, std::string(), GURL(),
|
| metrics::OmniboxEventProto::INVALID_SPEC, true, false, true, true, false,
|
| - ChromeAutocompleteSchemeClassifier(&profile_)));
|
| + TestingSchemeClassifier()));
|
|
|
| if (!controller_->done())
|
| // The message loop will terminate when all autocomplete input has been
|
| @@ -479,7 +508,7 @@ void AutocompleteProviderTest::RunExactKeymatchTest(
|
| base::ASCIIToUTF16("k test"), base::string16::npos, std::string(), GURL(),
|
| metrics::OmniboxEventProto::INVALID_SPEC, true, false,
|
| allow_exact_keyword_match, false, false,
|
| - ChromeAutocompleteSchemeClassifier(&profile_)));
|
| + TestingSchemeClassifier()));
|
| EXPECT_TRUE(controller_->done());
|
| EXPECT_EQ(AutocompleteProvider::TYPE_SEARCH,
|
| controller_->result().default_match()->provider->type());
|
|
|