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

Unified Diff: chrome/browser/ui/webui/md_downloads/downloads_list_tracker_unittest.cc

Issue 1480263002: Revert of MD Downloads: track downloads in C++, dispatch discrete JS updates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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: chrome/browser/ui/webui/md_downloads/downloads_list_tracker_unittest.cc
diff --git a/chrome/browser/ui/webui/md_downloads/downloads_list_tracker_unittest.cc b/chrome/browser/ui/webui/md_downloads/downloads_list_tracker_unittest.cc
deleted file mode 100644
index fef30f308a013ef76248f8a8901d51f955a3e680..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/webui/md_downloads/downloads_list_tracker_unittest.cc
+++ /dev/null
@@ -1,276 +0,0 @@
-// Copyright 2015 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/ui/webui/md_downloads/downloads_list_tracker.h"
-
-#include <vector>
-
-#include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "base/stl_util.h"
-#include "base/time/time.h"
-#include "chrome/browser/download/download_item_model.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/test/mock_download_item.h"
-#include "content/public/test/mock_download_manager.h"
-#include "content/public/test/test_browser_thread.h"
-#include "content/public/test/test_web_ui.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using content::DownloadItem;
-using content::MockDownloadItem;
-using DownloadVector = std::vector<DownloadItem*>;
-using testing::_;
-using testing::Return;
-
-namespace {
-
-uint64 GetId(const base::Value* value) {
- const base::DictionaryValue* dict;
- CHECK(value->GetAsDictionary(&dict));
-
- int id;
- CHECK(dict->GetInteger("id", &id));
- CHECK_GE(id, 0);
- return static_cast<uint64>(id);
-}
-
-std::vector<uint64> GetIds(const base::Value* value) {
- CHECK(value);
-
- std::vector<uint64> ids;
-
- if (value->GetType() == base::Value::TYPE_LIST) {
- const base::ListValue* list;
- value->GetAsList(&list);
-
- for (auto* list_item : *list)
- ids.push_back(GetId(list_item));
- } else {
- ids.push_back(GetId(value));
- }
-
- return ids;
-}
-
-int GetIndex(const base::Value* value) {
- CHECK(value);
- int index;
- CHECK(value->GetAsInteger(&index));
- return index;
-}
-
-bool ShouldShowItem(const DownloadItem& item) {
- DownloadItemModel model(const_cast<DownloadItem*>(&item));
- return model.ShouldShowInShelf();
-}
-
-} // namespace
-
-// A test version of DownloadsListTracker.
-class TestDownloadsListTracker : public DownloadsListTracker {
- public:
- TestDownloadsListTracker(content::DownloadManager* manager,
- content::WebUI* web_ui)
- : DownloadsListTracker(manager, web_ui, base::Bind(&ShouldShowItem)) {}
- ~TestDownloadsListTracker() override {}
-
- using DownloadsListTracker::GetItemForTesting;
-
- protected:
- scoped_ptr<base::DictionaryValue> CreateDownloadItemValue(
- content::DownloadItem* item) const override {
- scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue);
- CHECK_LE(item->GetId(), static_cast<uint64>(INT_MAX));
- dict->SetInteger("id", item->GetId());
- return dict.Pass();
- }
-};
-
-// A fixture to test DownloadsListTracker.
-class DownloadsListTrackerTest : public testing::Test {
- public:
- DownloadsListTrackerTest()
- : ui_thread_(content::BrowserThread::UI, &message_loop_) {}
- ~DownloadsListTrackerTest() override {
- for (auto* mock_item : mock_items_)
- testing::Mock::VerifyAndClear(mock_item);
- STLDeleteElements(&mock_items_);
- }
-
- // testing::Test:
- void SetUp() override {
- ON_CALL(manager_, GetBrowserContext()).WillByDefault(Return(&profile_));
- ON_CALL(manager_, GetAllDownloads(_)).WillByDefault(
- testing::Invoke(this, &DownloadsListTrackerTest::GetAllDownloads));
- }
-
- MockDownloadItem* CreateMock(uint64 id, const base::Time& started) {
- MockDownloadItem* new_item = new testing::NiceMock<MockDownloadItem>();
- mock_items_.push_back(new_item);
-
- ON_CALL(*new_item, GetId()).WillByDefault(Return(id));
- ON_CALL(*new_item, GetStartTime()).WillByDefault(Return(started));
-
- return new_item;
- }
-
- MockDownloadItem* CreateNextItem() {
- return CreateMock(mock_items_.size(), base::Time::UnixEpoch() +
- base::TimeDelta::FromHours(mock_items_.size()));
- }
-
- void CreateTracker() {
- tracker_.reset(new TestDownloadsListTracker(manager(), web_ui()));
- }
-
- content::DownloadManager* manager() { return &manager_; }
- content::TestWebUI* web_ui() { return &web_ui_; }
- TestDownloadsListTracker* tracker() { return tracker_.get(); }
-
- private:
- void GetAllDownloads(DownloadVector* result) {
- for (auto* mock_item : mock_items_)
- result->push_back(mock_item);
- }
-
- // NOTE: The initialization order of these members matters.
- base::MessageLoopForUI message_loop_;
- content::TestBrowserThread ui_thread_;
- TestingProfile profile_;
-
- testing::NiceMock<content::MockDownloadManager> manager_;
- content::TestWebUI web_ui_;
- scoped_ptr<TestDownloadsListTracker> tracker_;
-
- std::vector<MockDownloadItem*> mock_items_;
-};
-
-TEST_F(DownloadsListTrackerTest, SetSearchTerms) {
- CreateTracker();
-
- const base::ListValue empty_terms;
- EXPECT_FALSE(tracker()->SetSearchTerms(empty_terms));
-
- base::ListValue search_terms;
- search_terms.AppendString("search");
- EXPECT_TRUE(tracker()->SetSearchTerms(search_terms));
-
- EXPECT_FALSE(tracker()->SetSearchTerms(search_terms));
-
- EXPECT_TRUE(tracker()->SetSearchTerms(empty_terms));
-
- // Notifying the page is left up to the handler in this case.
- EXPECT_TRUE(web_ui()->call_data().empty());
-}
-
-TEST_F(DownloadsListTrackerTest, StartCallsInsertItems) {
- DownloadItem* first_item = CreateNextItem();
-
- CreateTracker();
- ASSERT_TRUE(tracker()->GetItemForTesting(0));
- EXPECT_TRUE(web_ui()->call_data().empty());
-
- tracker()->Start();
- ASSERT_FALSE(web_ui()->call_data().empty());
-
- EXPECT_EQ("downloads.Manager.insertItems",
- web_ui()->call_data()[0]->function_name());
- EXPECT_EQ(0, GetIndex(web_ui()->call_data()[0]->arg1()));
-
- std::vector<uint64> ids = GetIds(web_ui()->call_data()[0]->arg2());
- ASSERT_FALSE(ids.empty());
- EXPECT_EQ(first_item->GetId(), ids[0]);
-}
-
-// The page is in a loading state until it gets an insertItems call. Ensure that
-// happens even without downloads.
-TEST_F(DownloadsListTrackerTest, EmptyGetAllItemsStillCallsInsertItems) {
- CreateTracker();
-
- ASSERT_FALSE(tracker()->GetItemForTesting(0));
- ASSERT_TRUE(web_ui()->call_data().empty());
-
- tracker()->Start();
-
- ASSERT_FALSE(web_ui()->call_data().empty());
- EXPECT_EQ("downloads.Manager.insertItems",
- web_ui()->call_data()[0]->function_name());
- ASSERT_TRUE(web_ui()->call_data()[0]->arg2());
- EXPECT_TRUE(GetIds(web_ui()->call_data()[0]->arg2()).empty());
-}
-
-TEST_F(DownloadsListTrackerTest, OnDownloadCreatedCallsInsertItems) {
- CreateTracker();
- tracker()->Start();
- web_ui()->ClearTrackedCalls();
-
- ASSERT_FALSE(tracker()->GetItemForTesting(0));
- DownloadItem* first_item = CreateNextItem();
- tracker()->OnDownloadCreated(manager(), first_item);
-
- ASSERT_FALSE(web_ui()->call_data().empty());
- EXPECT_EQ("downloads.Manager.insertItems",
- web_ui()->call_data()[0]->function_name());
- EXPECT_EQ(0, GetIndex(web_ui()->call_data()[0]->arg1()));
-
- std::vector<uint64> ids = GetIds(web_ui()->call_data()[0]->arg2());
- ASSERT_FALSE(ids.empty());
- EXPECT_EQ(first_item->GetId(), ids[0]);
-}
-
-TEST_F(DownloadsListTrackerTest, OnDownloadRemovedCallsRemoveItem) {
- DownloadItem* first_item = CreateNextItem();
-
- CreateTracker();
- tracker()->Start();
- web_ui()->ClearTrackedCalls();
-
- EXPECT_TRUE(tracker()->GetItemForTesting(0));
- tracker()->OnDownloadRemoved(manager(), first_item);
- EXPECT_FALSE(tracker()->GetItemForTesting(0));
-
- ASSERT_FALSE(web_ui()->call_data().empty());
-
- EXPECT_EQ("downloads.Manager.removeItem",
- web_ui()->call_data()[0]->function_name());
- EXPECT_EQ(0, GetIndex(web_ui()->call_data()[0]->arg1()));
-}
-
-TEST_F(DownloadsListTrackerTest, OnDownloadUpdatedCallsRemoveItem) {
- DownloadItem* first_item = CreateNextItem();
-
- CreateTracker();
- tracker()->Start();
- web_ui()->ClearTrackedCalls();
-
- EXPECT_TRUE(tracker()->GetItemForTesting(0));
-
- DownloadItemModel(first_item).SetShouldShowInShelf(false);
- tracker()->OnDownloadUpdated(manager(), first_item);
-
- EXPECT_FALSE(tracker()->GetItemForTesting(0));
-
- ASSERT_FALSE(web_ui()->call_data().empty());
-
- EXPECT_EQ("downloads.Manager.removeItem",
- web_ui()->call_data()[0]->function_name());
- EXPECT_EQ(0, GetIndex(web_ui()->call_data()[0]->arg1()));
-}
-
-TEST_F(DownloadsListTrackerTest, StartExcludesHiddenItems) {
- DownloadItem* first_item = CreateNextItem();
- DownloadItemModel(first_item).SetShouldShowInShelf(false);
-
- CreateTracker();
- tracker()->Start();
-
- ASSERT_FALSE(web_ui()->call_data().empty());
-
- EXPECT_EQ("downloads.Manager.insertItems",
- web_ui()->call_data()[0]->function_name());
- EXPECT_TRUE(GetIds(web_ui()->call_data()[0]->arg2()).empty());
-}

Powered by Google App Engine
This is Rietveld 408576698