| Index: chrome/browser/autocomplete/shortcuts_backend_unittest.cc
|
| diff --git a/chrome/browser/autocomplete/shortcuts_backend_unittest.cc b/chrome/browser/autocomplete/shortcuts_backend_unittest.cc
|
| index 7e4455a3713c34046607b08978f67c64719fb173..fa055af89f0fd23d7804beb72157bd1f00086346 100644
|
| --- a/chrome/browser/autocomplete/shortcuts_backend_unittest.cc
|
| +++ b/chrome/browser/autocomplete/shortcuts_backend_unittest.cc
|
| @@ -11,7 +11,10 @@
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "chrome/browser/autocomplete/shortcuts_backend_factory.h"
|
| #include "chrome/browser/history/shortcuts_database.h"
|
| +#include "chrome/browser/search_engines/template_url_service.h"
|
| +#include "chrome/browser/search_engines/template_url_service_factory.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| +#include "chrome/test/base/ui_test_utils.h"
|
| #include "content/public/test/test_browser_thread.h"
|
| #include "sql/statement.h"
|
|
|
| @@ -30,6 +33,7 @@ class ShortcutsBackendTest : public testing::Test,
|
| const std::string& contents_class = std::string(),
|
| const std::string& description_class = std::string(),
|
| AutocompleteMatch::Type type = AutocompleteMatchType::URL_WHAT_YOU_TYPED);
|
| + void SetSearchProvider();
|
|
|
| virtual void SetUp();
|
| virtual void TearDown();
|
| @@ -52,9 +56,10 @@ class ShortcutsBackendTest : public testing::Test,
|
| bool DeleteShortcutsWithIDs(
|
| const history::ShortcutsDatabase::ShortcutIDs& deleted_ids);
|
|
|
| + protected:
|
| + TestingProfile profile_;
|
|
|
| private:
|
| - TestingProfile profile_;
|
| scoped_refptr<ShortcutsBackend> backend_;
|
| base::MessageLoopForUI ui_message_loop_;
|
| content::TestBrowserThread ui_thread_;
|
| @@ -86,7 +91,22 @@ history::ShortcutsDatabase::Shortcut::MatchCore
|
| AutocompleteMatch::ClassificationsFromString(contents_class);
|
| match.description_class =
|
| AutocompleteMatch::ClassificationsFromString(description_class);
|
| - return ShortcutsBackend::MatchToMatchCore(match);
|
| + match.search_terms_args.reset(
|
| + new TemplateURLRef::SearchTermsArgs(match.contents));
|
| + return ShortcutsBackend::MatchToMatchCore(match, &profile_);
|
| +}
|
| +
|
| +void ShortcutsBackendTest::SetSearchProvider() {
|
| + TemplateURLService* template_url_service =
|
| + TemplateURLServiceFactory::GetForProfile(&profile_);
|
| + TemplateURLData data;
|
| + data.SetURL("http://foo.com/search?bar={searchTerms}");
|
| + data.SetKeyword(base::UTF8ToUTF16("foo"));
|
| +
|
| + TemplateURL* template_url = new TemplateURL(&profile_, data);
|
| + // Takes ownership of |template_url|.
|
| + template_url_service->Add(template_url);
|
| + template_url_service->SetDefaultSearchProvider(template_url);
|
| }
|
|
|
| void ShortcutsBackendTest::SetUp() {
|
| @@ -96,6 +116,12 @@ void ShortcutsBackendTest::SetUp() {
|
| backend_ = ShortcutsBackendFactory::GetForProfile(&profile_);
|
| ASSERT_TRUE(backend_.get());
|
| backend_->AddObserver(this);
|
| +
|
| + TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
|
| + &profile_, &TemplateURLServiceFactory::BuildInstanceFor);
|
| + TemplateURLService* template_url_service =
|
| + TemplateURLServiceFactory::GetForProfile(&profile_);
|
| + ui_test_utils::WaitForTemplateURLServiceToLoad(template_url_service);
|
| }
|
|
|
| void ShortcutsBackendTest::TearDown() {
|
| @@ -156,14 +182,23 @@ TEST_F(ShortcutsBackendTest, SanitizeMatchCore) {
|
| std::string output_description_class;
|
| AutocompleteMatch::Type output_type;
|
| } cases[] = {
|
| - { "0,1,4,0", "0,3,4,1", AutocompleteMatchType::URL_WHAT_YOU_TYPED,
|
| - "0,1,4,0", "0,1", AutocompleteMatchType::HISTORY_URL },
|
| - { "0,3,5,1", "0,2,5,0", AutocompleteMatchType::NAVSUGGEST,
|
| - "0,1", "0,0", AutocompleteMatchType::HISTORY_URL },
|
| - { "0,1", "0,0,11,2,15,0", AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
|
| - "0,1", "0,0", AutocompleteMatchType::SEARCH_HISTORY },
|
| - { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST,
|
| - "0,1", "0,0", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1,4,0", "0,3,4,1", AutocompleteMatchType::URL_WHAT_YOU_TYPED,
|
| + "0,1,4,0", "0,1", AutocompleteMatchType::HISTORY_URL },
|
| + { "0,3,5,1", "0,2,5,0", AutocompleteMatchType::NAVSUGGEST,
|
| + "0,1", "0,0", AutocompleteMatchType::HISTORY_URL },
|
| + { "0,1", "0,0,11,2,15,0",
|
| + AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED,
|
| + "0,1", "0,0", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST,
|
| + "0,1", "0,0", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST_ENTITY,
|
| + "", "", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST_INFINITE,
|
| + "", "", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST_PERSONALIZED,
|
| + "", "", AutocompleteMatchType::SEARCH_HISTORY },
|
| + { "0,1", "0,0", AutocompleteMatchType::SEARCH_SUGGEST_PROFILE,
|
| + "", "", AutocompleteMatchType::SEARCH_HISTORY },
|
| };
|
|
|
| for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
|
| @@ -171,12 +206,42 @@ TEST_F(ShortcutsBackendTest, SanitizeMatchCore) {
|
| MatchCoreForTesting(std::string(), cases[i].input_contents_class,
|
| cases[i].input_description_class,
|
| cases[i].input_type));
|
| - EXPECT_EQ(cases[i].output_contents_class, match_core.contents_class);
|
| - EXPECT_EQ(cases[i].output_description_class, match_core.description_class);
|
| - EXPECT_EQ(cases[i].output_type, match_core.type);
|
| + EXPECT_EQ(cases[i].output_contents_class, match_core.contents_class)
|
| + << ":i:" << i << ":type:" << cases[i].input_type;
|
| + EXPECT_EQ(cases[i].output_description_class, match_core.description_class)
|
| + << ":i:" << i << ":type:" << cases[i].input_type;
|
| + EXPECT_EQ(cases[i].output_type, match_core.type)
|
| + << ":i:" << i << ":type:" << cases[i].input_type;
|
| }
|
| }
|
|
|
| +TEST_F(ShortcutsBackendTest, EntitySuggestionTest) {
|
| + SetSearchProvider();
|
| + AutocompleteMatch match;
|
| + match.fill_into_edit = base::UTF8ToUTF16("franklin d roosevelt");
|
| + match.type = AutocompleteMatchType::SEARCH_SUGGEST_ENTITY;
|
| + match.contents = base::UTF8ToUTF16("roosevelt");
|
| + match.contents_class =
|
| + AutocompleteMatch::ClassificationsFromString("0,0,5,2");
|
| + match.description = base::UTF8ToUTF16("Franklin D. Roosevelt");
|
| + match.description_class = AutocompleteMatch::ClassificationsFromString("0,4");
|
| + match.destination_url = GURL(
|
| + "http://www.foo.com/search?bar=franklin+d+roosevelt&gs_ssp=1234");
|
| + match.keyword = base::UTF8ToUTF16("foo");
|
| + match.search_terms_args.reset(
|
| + new TemplateURLRef::SearchTermsArgs(match.fill_into_edit));
|
| +
|
| + history::ShortcutsDatabase::Shortcut::MatchCore match_core =
|
| + ShortcutsBackend::MatchToMatchCore(match, &profile_);
|
| +
|
| + EXPECT_EQ("http://foo.com/search?bar=franklin+d+roosevelt",
|
| + match_core.destination_url.spec());
|
| + EXPECT_EQ(match.fill_into_edit, match_core.contents);
|
| + EXPECT_EQ("0,0", match_core.contents_class);
|
| + EXPECT_EQ(base::string16(), match_core.description);
|
| + EXPECT_TRUE(match_core.description_class.empty());
|
| +}
|
| +
|
| TEST_F(ShortcutsBackendTest, AddAndUpdateShortcut) {
|
| InitBackend();
|
| EXPECT_FALSE(changed_notified());
|
|
|