Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1898)

Unified Diff: components/omnibox/browser/shortcuts_provider_unittest.cc

Issue 1877833002: Optimize shortcuts provider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes after review, round 1 Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/omnibox/browser/shortcuts_provider_unittest.cc
diff --git a/components/omnibox/browser/shortcuts_provider_unittest.cc b/components/omnibox/browser/shortcuts_provider_unittest.cc
index 00947f962f62b8efa9230ceb67f07bf0a46f5dcd..df6091d2773eea4c2a65afd4f9878fe6c3df40f9 100644
--- a/components/omnibox/browser/shortcuts_provider_unittest.cc
+++ b/components/omnibox/browser/shortcuts_provider_unittest.cc
@@ -31,6 +31,7 @@
#include "components/omnibox/browser/autocomplete_result.h"
#include "components/omnibox/browser/in_memory_url_index.h"
#include "components/omnibox/browser/mock_autocomplete_provider_client.h"
+#include "components/omnibox/browser/shortcut_match.h"
#include "components/omnibox/browser/shortcuts_backend.h"
#include "components/omnibox/browser/shortcuts_provider_test_util.h"
#include "components/omnibox/browser/test_scheme_classifier.h"
@@ -221,6 +222,20 @@ class FakeAutocompleteProviderClient
DISALLOW_COPY_AND_ASSIGN(FakeAutocompleteProviderClient);
};
+ShortcutMatch CreateShortcutMatch(int relevance,
+ const GURL& stripped_destination_url,
+ const std::string& contents) {
+ // Create fake ShortcutsDatabase::Shortcut object and intialize its contents
+ // and type field only.
+ ShortcutsDatabase::Shortcut::MatchCore fake_match_core(
+ base::string16(), GURL(), base::UTF8ToUTF16(contents), std::string(),
+ base::string16(), std::string(), 0, 0, base::string16());
+ // Object used only for ShortcutMatch initialization.
Peter Kasting 2016/04/12 23:29:50 Nit: Wrong indenting
Alexander Yashkin 2016/04/13 09:29:36 Done.
+ ShortcutsDatabase::Shortcut fake_shortcut("", base::string16(),
Peter Kasting 2016/04/12 23:29:50 Nit: "" -> std::string
Alexander Yashkin 2016/04/13 09:29:36 Done.
+ fake_match_core, base::Time(), 0);
+ return ShortcutMatch(relevance, stripped_destination_url, &fake_shortcut);
Peter Kasting 2016/04/12 23:29:51 This leaves a pointer-to-garbage in the ShortcutMa
Alexander Yashkin 2016/04/13 09:29:36 Done.
+}
+
} // namespace
// ClassifyTest ---------------------------------------------------------------
@@ -750,3 +765,35 @@ TEST_F(ShortcutsProviderTest, DoesNotProvideOnFocus) {
provider_->Start(input, false);
EXPECT_TRUE(provider_->matches().empty());
}
+
+TEST_F(ShortcutsProviderTest, DedupShortcutMatchesByDestination) {
+ ShortcutMatches matches;
+ matches.push_back(
+ CreateShortcutMatch(42, GURL("http://www.abc.com"), "123"));
+ matches.push_back(
+ CreateShortcutMatch(43, GURL("http://www.abcd.com"), "123"));
+ matches.push_back(
+ CreateShortcutMatch(42, GURL("http://www.abcde.com"), "123"));
+ matches.push_back(
+ CreateShortcutMatch(41, GURL("http://www.abcd.com"), "DEADBEEF"));
+ matches.push_back(
+ CreateShortcutMatch(42, GURL("http://www.abcde.com"), "234"));
+ matches.push_back(
+ CreateShortcutMatch(42, GURL("http://www.abc.com"), "123"));
+
+ ShortcutsProvider::DedupShortcutMatchesByDestination(
+ metrics::OmniboxEventProto::INVALID_SPEC, &matches);
+ // Expect deduplicated matches to be sorted by destination.
+ // The remaining match out of each set of duplicates should be the one with
+ // the highest relevance.
+ EXPECT_EQ(matches.size(), 3U);
Peter Kasting 2016/04/12 23:29:50 Nit: (expected, actual) (all lines)
Alexander Yashkin 2016/04/13 09:29:36 Done.
+ EXPECT_EQ(matches[0].stripped_destination_url, GURL("http://www.abc.com"));
+ EXPECT_EQ(matches[0].relevance, 42);
+ EXPECT_EQ(matches[0].contents, base::ASCIIToUTF16("123"));
+ EXPECT_EQ(matches[1].stripped_destination_url, GURL("http://www.abcd.com"));
+ EXPECT_EQ(matches[1].relevance, 43);
+ EXPECT_EQ(matches[1].contents, base::ASCIIToUTF16("123"));
+ EXPECT_EQ(matches[2].stripped_destination_url, GURL("http://www.abcde.com"));
+ EXPECT_EQ(matches[2].relevance, 42);
+ EXPECT_EQ(matches[2].contents, base::ASCIIToUTF16("123"));
+}

Powered by Google App Engine
This is Rietveld 408576698