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

Unified Diff: chrome/browser/download/notification/download_notification_browsertest.cc

Issue 1271693006: Don't show the group notification when there is only one in-progress download (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comment Created 5 years, 4 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/download/notification/download_group_notification.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/download/notification/download_notification_browsertest.cc
diff --git a/chrome/browser/download/notification/download_notification_browsertest.cc b/chrome/browser/download/notification/download_notification_browsertest.cc
index e8045b8a8a95c9b4a9fb843a44074b6d60a0ba65..4270dc3df76c837f295ff747aca56d02de85135c 100644
--- a/chrome/browser/download/notification/download_notification_browsertest.cc
+++ b/chrome/browser/download/notification/download_notification_browsertest.cc
@@ -784,6 +784,79 @@ IN_PROC_BROWSER_TEST_F(DownloadNotificationTest, DownloadMultipleFiles) {
EXPECT_EQ(2u, GetNotification(notification_id_group)->items().size());
}
+IN_PROC_BROWSER_TEST_F(DownloadNotificationTest,
+ DownloadMultipleFilesOneByOne) {
+ CreateDownload();
+ content::DownloadItem* first_download_item = download_item();
+ content::DownloadItem* second_download_item = nullptr;
+ std::string first_notification_id = notification_id();
+ std::string second_notification_id;
+
+ // Requests to complete the first download.
+ ui_test_utils::NavigateToURL(
+ browser(), GURL(net::URLRequestSlowDownloadJob::kFinishDownloadUrl));
+
+ // Waits for completion of the first download.
+ while (first_download_item->GetState() != content::DownloadItem::COMPLETE) {
+ NotificationUpdateObserver download_change_notification_observer;
+ download_change_notification_observer.Wait();
+ }
+ EXPECT_EQ(content::DownloadItem::COMPLETE, first_download_item->GetState());
+
+ // Checks the message center.
+ EXPECT_EQ(1u, GetMessageCenter()->GetVisibleNotifications().size());
+
+ // Starts the second download.
+ GURL url(net::URLRequestSlowDownloadJob::kKnownSizeUrl);
+ NotificationAddObserver download_start_notification_observer;
+ ui_test_utils::NavigateToURL(browser(), url);
+ EXPECT_TRUE(download_start_notification_observer.Wait());
+
+ // Confirms that the second notification is created.
+ second_notification_id =
+ download_start_notification_observer.notification_id();
+ EXPECT_FALSE(second_notification_id.empty());
+ ASSERT_TRUE(GetNotification(second_notification_id));
+
+ // Confirms that there are two notifications, including the second
+ // notification.
+ message_center::NotificationList::Notifications
+ visible_notifications = GetMessageCenter()->GetVisibleNotifications();
+ EXPECT_EQ(2u, visible_notifications.size());
+ EXPECT_TRUE(IsInNotifications(visible_notifications, first_notification_id));
+ EXPECT_TRUE(IsInNotifications(visible_notifications, second_notification_id));
+
+ // Confirms that the second download is also started.
+ std::vector<content::DownloadItem*> downloads;
+ GetDownloadManager(browser())->GetAllDownloads(&downloads);
+ EXPECT_EQ(2u, downloads.size());
+ EXPECT_TRUE(first_download_item == downloads[0] ||
+ first_download_item == downloads[1]);
+ // Stores the second download.
+ if (first_download_item == downloads[0])
+ second_download_item = downloads[1];
+ else
+ second_download_item = downloads[0];
+
+ EXPECT_EQ(content::DownloadItem::IN_PROGRESS,
+ second_download_item->GetState());
+
+ // Requests to complete the second download.
+ ui_test_utils::NavigateToURL(
+ browser(), GURL(net::URLRequestSlowDownloadJob::kFinishDownloadUrl));
+
+ // Waits for completion of the second download.
+ while (second_download_item->GetState() != content::DownloadItem::COMPLETE) {
+ NotificationUpdateObserver download_change_notification_observer;
+ download_change_notification_observer.Wait();
+ }
+
+ // Opens the message center.
+ GetMessageCenter()->SetVisibility(message_center::VISIBILITY_MESSAGE_CENTER);
+ // Checks the message center.
+ EXPECT_EQ(2u, GetMessageCenter()->GetVisibleNotifications().size());
+}
+
IN_PROC_BROWSER_TEST_F(DownloadNotificationTest, CancelDownload) {
CreateDownload();
« no previous file with comments | « chrome/browser/download/notification/download_group_notification.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698