| Index: components/omnibox/base_search_provider_unittest.cc
|
| diff --git a/components/omnibox/base_search_provider_unittest.cc b/components/omnibox/base_search_provider_unittest.cc
|
| deleted file mode 100644
|
| index 1a64ffaa2a175fbcb2ac01887bf5e901c28afd8b..0000000000000000000000000000000000000000
|
| --- a/components/omnibox/base_search_provider_unittest.cc
|
| +++ /dev/null
|
| @@ -1,192 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "components/omnibox/base_search_provider.h"
|
| -
|
| -#include "base/strings/string16.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "components/omnibox/autocomplete_match.h"
|
| -#include "components/omnibox/autocomplete_match_type.h"
|
| -#include "components/omnibox/autocomplete_provider_client.h"
|
| -#include "components/omnibox/autocomplete_scheme_classifier.h"
|
| -#include "components/omnibox/search_suggestion_parser.h"
|
| -#include "components/search_engines/search_terms_data.h"
|
| -#include "components/search_engines/template_url_service.h"
|
| -#include "components/search_engines/template_url_service_client.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::NiceMock;
|
| -using testing::Return;
|
| -using testing::_;
|
| -
|
| -class MockAutocompleteProviderClient : public AutocompleteProviderClient {
|
| - public:
|
| - MockAutocompleteProviderClient() {}
|
| - MOCK_METHOD0(RequestContext, net::URLRequestContextGetter*());
|
| - MOCK_METHOD0(IsOffTheRecord, bool());
|
| - MOCK_METHOD0(AcceptLanguages, std::string());
|
| - MOCK_METHOD0(SearchSuggestEnabled, bool());
|
| - MOCK_METHOD0(ShowBookmarkBar, bool());
|
| - MOCK_METHOD0(SchemeClassifier, const AutocompleteSchemeClassifier&());
|
| - MOCK_METHOD6(
|
| - Classify,
|
| - void(const base::string16& text,
|
| - bool prefer_keyword,
|
| - bool allow_exact_keyword_match,
|
| - metrics::OmniboxEventProto::PageClassification page_classification,
|
| - AutocompleteMatch* match,
|
| - GURL* alternate_nav_url));
|
| - MOCK_METHOD0(InMemoryDatabase, history::URLDatabase*());
|
| - MOCK_METHOD2(DeleteMatchingURLsForKeywordFromHistory,
|
| - void(history::KeywordID keyword_id, const base::string16& term));
|
| - MOCK_METHOD0(TabSyncEnabledAndUnencrypted, bool());
|
| - MOCK_METHOD1(PrefetchImage, void(const GURL& url));
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(MockAutocompleteProviderClient);
|
| -};
|
| -
|
| -class TestBaseSearchProvider : public BaseSearchProvider {
|
| - public:
|
| - typedef BaseSearchProvider::MatchMap MatchMap;
|
| -
|
| - // Note: Takes ownership of client. scoped_ptr<> would be the right way to
|
| - // express that, but NiceMock<> can't forward a scoped_ptr.
|
| - TestBaseSearchProvider(TemplateURLService* template_url_service,
|
| - AutocompleteProviderClient* client,
|
| - AutocompleteProvider::Type type)
|
| - : BaseSearchProvider(template_url_service,
|
| - scoped_ptr<AutocompleteProviderClient>(client),
|
| - type) {}
|
| - MOCK_METHOD1(DeleteMatch, void(const AutocompleteMatch& match));
|
| - MOCK_CONST_METHOD1(AddProviderInfo, void(ProvidersInfo* provider_info));
|
| - MOCK_CONST_METHOD1(GetTemplateURL, const TemplateURL*(bool is_keyword));
|
| - MOCK_CONST_METHOD1(GetInput, const AutocompleteInput(bool is_keyword));
|
| - MOCK_CONST_METHOD1(ShouldAppendExtraParams,
|
| - bool(const SearchSuggestionParser::SuggestResult& result));
|
| - MOCK_METHOD1(RecordDeletionResult, void(bool success));
|
| -
|
| - MOCK_METHOD2(Start,
|
| - void(const AutocompleteInput& input, bool minimal_changes));
|
| - void AddMatchToMap(const SearchSuggestionParser::SuggestResult& result,
|
| - const std::string& metadata,
|
| - int accepted_suggestion,
|
| - bool mark_as_deletable,
|
| - bool in_keyword_mode,
|
| - MatchMap* map) {
|
| - BaseSearchProvider::AddMatchToMap(result,
|
| - metadata,
|
| - accepted_suggestion,
|
| - mark_as_deletable,
|
| - in_keyword_mode,
|
| - map);
|
| - }
|
| -
|
| - protected:
|
| - virtual ~TestBaseSearchProvider() {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(TestBaseSearchProvider);
|
| -};
|
| -
|
| -class BaseSearchProviderTest : public testing::Test {
|
| - public:
|
| - virtual ~BaseSearchProviderTest() {}
|
| -
|
| - protected:
|
| - virtual void SetUp() {
|
| - service_.reset(
|
| - new TemplateURLService(NULL,
|
| - scoped_ptr<SearchTermsData>(new SearchTermsData),
|
| - NULL,
|
| - scoped_ptr<TemplateURLServiceClient>(),
|
| - NULL,
|
| - NULL,
|
| - base::Closure()));
|
| - provider_ = new NiceMock<TestBaseSearchProvider>(
|
| - service_.get(),
|
| - new NiceMock<MockAutocompleteProviderClient>,
|
| - AutocompleteProvider::TYPE_SEARCH);
|
| - }
|
| -
|
| - scoped_refptr<NiceMock<TestBaseSearchProvider> > provider_;
|
| - scoped_ptr<TemplateURLService> service_;
|
| -};
|
| -
|
| -TEST_F(BaseSearchProviderTest, PreserveAnswersWhenDeduplicating) {
|
| - TemplateURLData data;
|
| - data.SetURL("http://foo.com/url?bar={searchTerms}");
|
| - TemplateURL* template_url = new TemplateURL(data);
|
| -
|
| - TestBaseSearchProvider::MatchMap map;
|
| - base::string16 query = base::ASCIIToUTF16("weather los angeles");
|
| - base::string16 answer_contents = base::ASCIIToUTF16("some answer content");
|
| - base::string16 answer_type = base::ASCIIToUTF16("2334");
|
| -
|
| - EXPECT_CALL(*provider_, GetInput(_))
|
| - .WillRepeatedly(Return(AutocompleteInput()));
|
| - EXPECT_CALL(*provider_, GetTemplateURL(_))
|
| - .WillRepeatedly(Return(template_url));
|
| -
|
| - SearchSuggestionParser::SuggestResult more_relevant(
|
| - query, AutocompleteMatchType::SEARCH_HISTORY, query, base::string16(),
|
| - base::string16(), base::string16(), base::string16(), std::string(),
|
| - std::string(), false, 1300, true, false, query);
|
| - provider_->AddMatchToMap(
|
| - more_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN,
|
| - false, false, &map);
|
| -
|
| - SearchSuggestionParser::SuggestResult less_relevant(
|
| - query, AutocompleteMatchType::SEARCH_SUGGEST, query, base::string16(),
|
| - base::string16(), answer_contents, answer_type, std::string(),
|
| - std::string(), false, 850, true, false, query);
|
| - provider_->AddMatchToMap(
|
| - less_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN,
|
| - false, false, &map);
|
| -
|
| - ASSERT_EQ(1U, map.size());
|
| - AutocompleteMatch match = map.begin()->second;
|
| - ASSERT_EQ(1U, match.duplicate_matches.size());
|
| - AutocompleteMatch duplicate = match.duplicate_matches[0];
|
| -
|
| - EXPECT_EQ(answer_contents, match.answer_contents);
|
| - EXPECT_EQ(answer_type, match.answer_type);
|
| - EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type);
|
| - EXPECT_EQ(1300, match.relevance);
|
| -
|
| - EXPECT_EQ(answer_contents, duplicate.answer_contents);
|
| - EXPECT_EQ(answer_type, duplicate.answer_type);
|
| - EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type);
|
| - EXPECT_EQ(850, duplicate.relevance);
|
| -
|
| - // Ensure answers are not copied over existing answers.
|
| - map.clear();
|
| - base::string16 answer_contents2 = base::ASCIIToUTF16("different answer");
|
| - more_relevant = SearchSuggestionParser::SuggestResult(
|
| - query, AutocompleteMatchType::SEARCH_HISTORY, query, base::string16(),
|
| - base::string16(), answer_contents2, answer_type, std::string(),
|
| - std::string(), false, 1300, true, false, query);
|
| - provider_->AddMatchToMap(
|
| - more_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN,
|
| - false, false, &map);
|
| - provider_->AddMatchToMap(
|
| - less_relevant, std::string(), TemplateURLRef::NO_SUGGESTION_CHOSEN,
|
| - false, false, &map);
|
| - ASSERT_EQ(1U, map.size());
|
| - match = map.begin()->second;
|
| - ASSERT_EQ(1U, match.duplicate_matches.size());
|
| - duplicate = match.duplicate_matches[0];
|
| -
|
| - EXPECT_EQ(answer_contents2, match.answer_contents);
|
| - EXPECT_EQ(answer_type, match.answer_type);
|
| - EXPECT_EQ(AutocompleteMatchType::SEARCH_HISTORY, match.type);
|
| - EXPECT_EQ(1300, match.relevance);
|
| -
|
| - EXPECT_EQ(answer_contents, duplicate.answer_contents);
|
| - EXPECT_EQ(answer_type, duplicate.answer_type);
|
| - EXPECT_EQ(AutocompleteMatchType::SEARCH_SUGGEST, duplicate.type);
|
| - EXPECT_EQ(850, duplicate.relevance);
|
| -
|
| -}
|
|
|