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

Side by Side Diff: chrome/browser/download/notification/download_item_notification_unittest.cc

Issue 1389273004: Update first download notification correctly if there are multiple notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update the download manually in the test Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/notification/download_item_notification.h" 5 #include "chrome/browser/download/notification/download_item_notification.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/test/test_simple_task_runner.h" 9 #include "base/test/test_simple_task_runner.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 17 matching lines...) Expand all
28 28
29 namespace { 29 namespace {
30 30
31 const base::FilePath::CharType kDownloadItemTargetPathString[] = 31 const base::FilePath::CharType kDownloadItemTargetPathString[] =
32 FILE_PATH_LITERAL("/tmp/TITLE.bin"); 32 FILE_PATH_LITERAL("/tmp/TITLE.bin");
33 33
34 } // anonymouse namespace 34 } // anonymouse namespace
35 35
36 namespace test { 36 namespace test {
37 37
38 class MockMessageCenter : public message_center::FakeMessageCenter {
39 public:
40 MockMessageCenter() {}
41 ~MockMessageCenter() override {}
42
43 void AddVisibleNotification(message_center::Notification* notification) {
44 visible_notifications_.insert(notification);
45 }
46
47 const message_center::NotificationList::Notifications&
48 GetVisibleNotifications() override {
49 return visible_notifications_;
50 }
51
52 private:
53 message_center::NotificationList::Notifications visible_notifications_;
54
55 DISALLOW_COPY_AND_ASSIGN(MockMessageCenter);
56 };
57
38 class DownloadItemNotificationTest : public testing::Test { 58 class DownloadItemNotificationTest : public testing::Test {
39 public: 59 public:
40 DownloadItemNotificationTest() 60 DownloadItemNotificationTest()
41 : ui_thread_(content::BrowserThread::UI, &message_loop_), 61 : ui_thread_(content::BrowserThread::UI, &message_loop_),
42 profile_(nullptr) {} 62 profile_(nullptr) {}
43 63
44 void SetUp() override { 64 void SetUp() override {
45 testing::Test::SetUp(); 65 testing::Test::SetUp();
46 message_center::MessageCenter::Initialize(); 66 message_center::MessageCenter::Initialize();
47 67
48 profile_manager_.reset( 68 profile_manager_.reset(
49 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 69 new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
50 ASSERT_TRUE(profile_manager_->SetUp()); 70 ASSERT_TRUE(profile_manager_->SetUp());
51 profile_ = profile_manager_->CreateTestingProfile("test-user"); 71 profile_ = profile_manager_->CreateTestingProfile("test-user");
52 72
53 scoped_ptr<NotificationUIManager> ui_manager(new StubNotificationUIManager); 73 scoped_ptr<NotificationUIManager> ui_manager(new StubNotificationUIManager);
54 TestingBrowserProcess::GetGlobal()-> 74 TestingBrowserProcess::GetGlobal()->
55 SetNotificationUIManager(ui_manager.Pass()); 75 SetNotificationUIManager(ui_manager.Pass());
56 76
57 download_notification_manager_.reset( 77 download_notification_manager_.reset(
58 new DownloadNotificationManagerForProfile(profile_, nullptr)); 78 new DownloadNotificationManagerForProfile(profile_, nullptr));
59 79
80 message_center_.reset(new MockMessageCenter());
81 download_notification_manager_->OverrideMessageCenterForTest(
82 message_center_.get());
83
60 base::FilePath download_item_target_path(kDownloadItemTargetPathString); 84 base::FilePath download_item_target_path(kDownloadItemTargetPathString);
61 download_item_.reset(new NiceMock<content::MockDownloadItem>()); 85 download_item_.reset(new NiceMock<content::MockDownloadItem>());
62 ON_CALL(*download_item_, GetId()).WillByDefault(Return(12345)); 86 ON_CALL(*download_item_, GetId()).WillByDefault(Return(12345));
63 ON_CALL(*download_item_, GetState()) 87 ON_CALL(*download_item_, GetState())
64 .WillByDefault(Return(content::DownloadItem::IN_PROGRESS)); 88 .WillByDefault(Return(content::DownloadItem::IN_PROGRESS));
65 ON_CALL(*download_item_, IsDangerous()).WillByDefault(Return(false)); 89 ON_CALL(*download_item_, IsDangerous()).WillByDefault(Return(false));
66 ON_CALL(*download_item_, GetFileNameToReportUser()) 90 ON_CALL(*download_item_, GetFileNameToReportUser())
67 .WillByDefault(Return(base::FilePath("TITLE.bin"))); 91 .WillByDefault(Return(base::FilePath("TITLE.bin")));
68 ON_CALL(*download_item_, GetTargetFilePath()) 92 ON_CALL(*download_item_, GetTargetFilePath())
69 .WillByDefault(ReturnRefOfCopy(download_item_target_path)); 93 .WillByDefault(ReturnRefOfCopy(download_item_target_path));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 } 152 }
129 153
130 bool ShownAsPopUp() { 154 bool ShownAsPopUp() {
131 return !notification()->shown_as_popup(); 155 return !notification()->shown_as_popup();
132 } 156 }
133 157
134 void CreateDownloadItemNotification() { 158 void CreateDownloadItemNotification() {
135 download_notification_manager_->OnNewDownloadReady(download_item_.get()); 159 download_notification_manager_->OnNewDownloadReady(download_item_.get());
136 download_item_notification_ = 160 download_item_notification_ =
137 download_notification_manager_->items_[download_item_.get()]; 161 download_notification_manager_->items_[download_item_.get()];
162 message_center_->AddVisibleNotification(
163 download_item_notification_->notification_.get());
138 } 164 }
139 165
140 base::MessageLoopForUI message_loop_; 166 base::MessageLoopForUI message_loop_;
141 content::TestBrowserThread ui_thread_; 167 content::TestBrowserThread ui_thread_;
142 168
143 scoped_ptr<TestingProfileManager> profile_manager_; 169 scoped_ptr<TestingProfileManager> profile_manager_;
144 Profile* profile_; 170 Profile* profile_;
145 171
146 scoped_ptr<NiceMock<content::MockDownloadItem>> download_item_; 172 scoped_ptr<NiceMock<content::MockDownloadItem>> download_item_;
147 scoped_ptr<DownloadNotificationManagerForProfile> 173 scoped_ptr<DownloadNotificationManagerForProfile>
148 download_notification_manager_; 174 download_notification_manager_;
175 scoped_ptr<MockMessageCenter> message_center_;
149 DownloadItemNotification* download_item_notification_; 176 DownloadItemNotification* download_item_notification_;
150 }; 177 };
151 178
152 TEST_F(DownloadItemNotificationTest, ShowAndCloseNotification) { 179 TEST_F(DownloadItemNotificationTest, ShowAndCloseNotification) {
153 EXPECT_EQ(0u, NotificationCount()); 180 EXPECT_EQ(0u, NotificationCount());
154 181
155 // Shows a notification 182 // Shows a notification
156 CreateDownloadItemNotification(); 183 CreateDownloadItemNotification();
157 download_item_->NotifyObserversDownloadOpened(); 184 download_item_->NotifyObserversDownloadOpened();
158 185
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 CreateDownloadItemNotification(); 281 CreateDownloadItemNotification();
255 download_item_->NotifyObserversDownloadOpened(); 282 download_item_->NotifyObserversDownloadOpened();
256 283
257 EXPECT_EQ(message_center::DEFAULT_PRIORITY, notification()->priority()); 284 EXPECT_EQ(message_center::DEFAULT_PRIORITY, notification()->priority());
258 285
259 download_item_notification_->DisablePopup(); 286 download_item_notification_->DisablePopup();
260 EXPECT_EQ(message_center::LOW_PRIORITY, notification()->priority()); 287 EXPECT_EQ(message_center::LOW_PRIORITY, notification()->priority());
261 } 288 }
262 289
263 } // namespace test 290 } // namespace test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698