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

Unified Diff: chrome/browser/win/jumplist_update_util_unittest.cc

Issue 2896233003: Cancel the JumpList update if top 5 most visited URLs are unchanged (Closed)
Patch Set: Fix nits Created 3 years, 7 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
« no previous file with comments | « chrome/browser/win/jumplist_update_util.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/win/jumplist_update_util_unittest.cc
diff --git a/chrome/browser/win/jumplist_update_util_unittest.cc b/chrome/browser/win/jumplist_update_util_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..16f9471b12fe8d77132d93de22e02a006f6f5ae6
--- /dev/null
+++ b/chrome/browser/win/jumplist_update_util_unittest.cc
@@ -0,0 +1,72 @@
+// Copyright 2017 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 "chrome/browser/win/jumplist_update_util.h"
+
+#include <algorithm>
+
+#include "base/strings/utf_string_conversions.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+// Helper function to create a ShellLinkItem whose url is specified by |url|.
+scoped_refptr<ShellLinkItem> CreateShellLinkWithURL(const std::string& url) {
+ auto item = base::MakeRefCounted<ShellLinkItem>();
+ item->set_url(url);
+ return item;
+}
+
+} // namespace
+
+TEST(JumpListUpdateUtilTest, MostVisitedItemsUnchanged) {
+ // Test data.
+ static constexpr struct {
+ const char* url;
+ const wchar_t* title;
+ } kTestData[] = {{"https://www.google.com/", L"Google"},
+ {"https://www.youtube.com/", L"Youtube"},
+ {"https://www.gmail.com/", L"Gmail"}};
+
+ ShellLinkItemList jumplist_items;
+ history::MostVisitedURLList history_items;
+
+ for (const auto& test_data : kTestData) {
+ jumplist_items.push_back(CreateShellLinkWithURL(test_data.url));
+ history_items.emplace_back(GURL(test_data.url), test_data.title);
+ }
+
+ // Both jumplist_items and history_items have 3 urls: Google, Youtube, Gmail.
+ // Also, their urls have the same order.
+ EXPECT_TRUE(MostVisitedItemsUnchanged(jumplist_items, history_items, 3));
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 2));
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 1));
+
+ // Reverse history_items, so the 3 urls in history_items are in reverse order:
+ // Gmail, Youtube, Google.
+ // The 3 urls in jumplist_items remain the same: Google, Youtube, Gmail.
+ std::reverse(history_items.begin(), history_items.end());
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 3));
+
+ // Reverse history_items back.
+ std::reverse(history_items.begin(), history_items.end());
+ EXPECT_TRUE(MostVisitedItemsUnchanged(jumplist_items, history_items, 3));
+
+ // Pop out the last url ("Gmail") from jumplist_items.
+ // Now jumplist_items has 2 urls: Google, Youtube,
+ // and history_items has 3 urls: Google, Youtube, Gmail.
+ jumplist_items.pop_back();
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 3));
+ EXPECT_TRUE(MostVisitedItemsUnchanged(jumplist_items, history_items, 2));
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 1));
+
+ // Pop out the last two urls ("Youtube", "Gmail") from history_items.
+ // Now jumplist_items has 2 urls: Google, Youtube,
+ // and history_items has 1 url: Google.
+ history_items.pop_back();
+ history_items.pop_back();
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 3));
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 2));
+ EXPECT_FALSE(MostVisitedItemsUnchanged(jumplist_items, history_items, 1));
+}
« no previous file with comments | « chrome/browser/win/jumplist_update_util.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698