Chromium Code Reviews| 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..2b28323018bb00044f9a196581cc3814e0e33512 |
| --- /dev/null |
| +++ b/chrome/browser/win/jumplist_update_util_unittest.cc |
| @@ -0,0 +1,83 @@ |
| +// Copyright (c) 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" |
|
grt (UTC plus 2)
2017/05/30 08:51:42
<algorithm>
chengx
2017/05/30 19:37:02
Done.
|
| + |
| +#include "base/containers/hash_tables.h" |
|
grt (UTC plus 2)
2017/05/30 08:51:42
a comment in this file says:
// This header file
chengx
2017/05/30 19:37:02
I've removed this header file since kTestData does
|
| +#include "base/strings/utf_string_conversions.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace { |
| + |
| +// An url-title map used to initilize the member variables in class |
| +// JumpListUpdateUtilTest. |
| +base::hash_map<std::string, std::string> url_title = { |
| + {"https://www.google.com/", "Google"}, |
| + {"https://www.youtube.com/", "Youtube"}, |
| + {"https://www.gmail.com/", "Gmail"}}; |
| + |
| +// Helper function to create a ShellLinkItem whose url is specified by |url|. |
| +scoped_refptr<ShellLinkItem> CreateShellLinkWithURL(const std::string& url) { |
| + scoped_refptr<ShellLinkItem> item(new ShellLinkItem); |
|
grt (UTC plus 2)
2017/05/30 08:51:42
auto item = base::MakeRefCounted<ShellLinkItem>();
chengx
2017/05/30 19:37:02
Done.
|
| + item->set_url(url); |
| + return item; |
| +} |
| + |
| +} // namespace |
| + |
| +class JumpListUpdateUtilTest : public testing::Test { |
|
grt (UTC plus 2)
2017/05/30 08:51:42
i don't think this test fixture adds any value as-
chengx
2017/05/30 19:37:03
Done.
|
| + protected: |
| + // A list of ShellLinkItem and each ShellLinkItem contains an URL. |
| + ShellLinkItemList item_list; |
| + |
| + // A list of history::MostVisitedURL, each of which contains an URL. |
| + history::MostVisitedURLList url_list; |
| +}; |
| + |
| +TEST_F(JumpListUpdateUtilTest, MostVisitedItemsUnchanged) { |
| + // Initialize item_list and url_list using the url_title map. |
|
grt (UTC plus 2)
2017/05/30 08:51:42
replace url_title in the unnamed namespace with th
chengx
2017/05/30 19:37:02
Done.
|
| + for (const auto& url_title_pair : url_title) { |
| + item_list.push_back(CreateShellLinkWithURL(url_title_pair.first)); |
| + |
| + GURL url(base::UTF8ToUTF16(url_title_pair.first)); |
|
grt (UTC plus 2)
2017/05/30 08:51:42
this conversion isn't needed -- GURL has a ctor th
chengx
2017/05/30 19:37:02
Done.
|
| + history::MostVisitedURL most_visited_url( |
| + url, base::UTF8ToUTF16(url_title_pair.second)); |
|
grt (UTC plus 2)
2017/05/30 08:51:42
remove this conversion in favor of using a wchar_t
chengx
2017/05/30 19:37:03
Done.
|
| + url_list.push_back(most_visited_url); |
| + } |
| + |
| + // Now both item_list and url_list have 3 urls: Google, Youtube, Gmail. |
| + // Also, their urls have the same order. |
| + EXPECT_TRUE(MostVisitedItemsUnchanged(item_list, url_list, 3)); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 2)); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 1)); |
| + |
| + // Reverse url_list. |
| + // Now item_list has 3 urls: Google, Youtube, Gmail, |
| + // and url_list's 3 urls are in reverse order: Gmail, Youtube, Google. |
| + std::reverse(url_list.begin(), url_list.end()); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 3)); |
| + |
| + // Reverse url_list back. |
| + std::reverse(url_list.begin(), url_list.end()); |
| + EXPECT_TRUE(MostVisitedItemsUnchanged(item_list, url_list, 3)); |
| + |
| + // Pop out the last url ("Gmail") from item_list. |
| + // Now item_list has 2 urls: Google, Youtube, |
| + // and url_list has 3 urls: Google, Youtube, Gmail. |
| + item_list.pop_back(); |
|
grt (UTC plus 2)
2017/05/30 08:51:42
i'm finding it hard to follow what "url_list" and
chengx
2017/05/30 19:37:03
I changed to history_items and jumplist_items.
|
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 3)); |
| + EXPECT_TRUE(MostVisitedItemsUnchanged(item_list, url_list, 2)); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 1)); |
| + |
| + // Pop out the last two urls ("Youtube", "Gmail") from url_list. |
| + // Now item_list has 2 urls: Google, Youtube, |
| + // and url_list has 1 url: Google. |
| + url_list.pop_back(); |
| + url_list.pop_back(); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 3)); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 2)); |
| + EXPECT_FALSE(MostVisitedItemsUnchanged(item_list, url_list, 1)); |
| +} |