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

Side by Side Diff: chrome/browser/notifications/notification_browsertest.cc

Issue 16268017: GTTF: convert some tests in chrome to use EmbeddedTestServer patch nr 1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <deque> 5 #include <deque>
6 #include <string> 6 #include <string>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 24 matching lines...) Expand all
35 #include "chrome/test/base/ui_test_utils.h" 35 #include "chrome/test/base/ui_test_utils.h"
36 #include "content/public/browser/notification_service.h" 36 #include "content/public/browser/notification_service.h"
37 #include "content/public/browser/notification_source.h" 37 #include "content/public/browser/notification_source.h"
38 #include "content/public/browser/notification_types.h" 38 #include "content/public/browser/notification_types.h"
39 #include "content/public/browser/render_view_host.h" 39 #include "content/public/browser/render_view_host.h"
40 #include "content/public/browser/web_contents.h" 40 #include "content/public/browser/web_contents.h"
41 #include "content/public/test/browser_test_utils.h" 41 #include "content/public/test/browser_test_utils.h"
42 #include "content/public/test/test_utils.h" 42 #include "content/public/test/test_utils.h"
43 #include "googleurl/src/gurl.h" 43 #include "googleurl/src/gurl.h"
44 #include "net/base/net_util.h" 44 #include "net/base/net_util.h"
45 #include "net/test/spawned_test_server/spawned_test_server.h" 45 #include "net/test/embedded_test_server/embedded_test_server.h"
46 #include "testing/gtest/include/gtest/gtest.h" 46 #include "testing/gtest/include/gtest/gtest.h"
47 #include "ui/base/window_open_disposition.h" 47 #include "ui/base/window_open_disposition.h"
48 #include "ui/message_center/message_center.h" 48 #include "ui/message_center/message_center.h"
49 #include "ui/message_center/message_center_observer.h" 49 #include "ui/message_center/message_center_observer.h"
50 #include "ui/message_center/message_center_switches.h" 50 #include "ui/message_center/message_center_switches.h"
51 #include "ui/message_center/message_center_util.h" 51 #include "ui/message_center/message_center_util.h"
52 52
53 // TODO(kbr): remove: http://crbug.com/222296 53 // TODO(kbr): remove: http://crbug.com/222296
54 #if defined(OS_MACOSX) 54 #if defined(OS_MACOSX)
55 #import "base/mac/mac_util.h" 55 #import "base/mac/mac_util.h"
56 #endif 56 #endif
57 57
58 namespace { 58 namespace {
59 59
60 const char kExpectedIconUrl[] = "files/notifications/no_such_file.png"; 60 const char kExpectedIconUrl[] = "/notifications/no_such_file.png";
61 61
62 enum InfobarAction { 62 enum InfobarAction {
63 DISMISS = 0, 63 DISMISS = 0,
64 ALLOW, 64 ALLOW,
65 DENY, 65 DENY,
66 }; 66 };
67 67
68 class NotificationChangeObserver { 68 class NotificationChangeObserver {
69 public: 69 public:
70 virtual ~NotificationChangeObserver() {} 70 virtual ~NotificationChangeObserver() {}
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver); 199 DISALLOW_COPY_AND_ASSIGN(NotificationBalloonChangeObserver);
200 }; 200 };
201 201
202 } // namespace 202 } // namespace
203 203
204 class NotificationsTest : public InProcessBrowserTest { 204 class NotificationsTest : public InProcessBrowserTest {
205 public: 205 public:
206 NotificationsTest() {} 206 NotificationsTest() {}
207 207
208 protected: 208 protected:
209 // Overriden from InProcessBrowserTest:
210 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
211
212 int GetNotificationCount(); 209 int GetNotificationCount();
213 210
214 NotificationChangeObserver* CreateObserver(); 211 NotificationChangeObserver* CreateObserver();
215 212
216 void CloseBrowserWindow(Browser* browser); 213 void CloseBrowserWindow(Browser* browser);
217 void CrashTab(Browser* browser, int index); 214 void CrashTab(Browser* browser, int index);
218 const std::deque<Balloon*>& GetActiveBalloons(); 215 const std::deque<Balloon*>& GetActiveBalloons();
219 void CrashNotification(Balloon* balloon); 216 void CrashNotification(Balloon* balloon);
220 bool CloseNotificationAndWait(const Notification& notification); 217 bool CloseNotificationAndWait(const Notification& notification);
221 218
(...skipping 15 matching lines...) Expand all
237 bool CancelNotification(const char* notification_id, Browser* browser); 234 bool CancelNotification(const char* notification_id, Browser* browser);
238 bool PerformActionOnInfobar(Browser* browser, 235 bool PerformActionOnInfobar(Browser* browser,
239 InfobarAction action, 236 InfobarAction action,
240 int infobar_index, 237 int infobar_index,
241 int tab_index); 238 int tab_index);
242 void GetPrefsByContentSetting(ContentSetting setting, 239 void GetPrefsByContentSetting(ContentSetting setting,
243 ContentSettingsForOneType* settings); 240 ContentSettingsForOneType* settings);
244 bool CheckOriginInSetting(const ContentSettingsForOneType& settings, 241 bool CheckOriginInSetting(const ContentSettingsForOneType& settings,
245 const GURL& origin); 242 const GURL& origin);
246 243
247 GURL empty_page_url_; 244 GURL GetTestPageURL() const {
248 GURL test_page_url_; 245 return embedded_test_server()->GetURL(
246 "/notifications/notification_tester.html");
247 }
249 248
250 private: 249 private:
251 void DropOriginPreference(const GURL& origin); 250 void DropOriginPreference(const GURL& origin);
252 DesktopNotificationService* GetDesktopNotificationService(); 251 DesktopNotificationService* GetDesktopNotificationService();
253 }; 252 };
254 253
255 void NotificationsTest::SetUpInProcessBrowserTestFixture() {
256 InProcessBrowserTest::SetUpInProcessBrowserTestFixture();
257
258 ASSERT_TRUE(test_server()->Start());
259 empty_page_url_ = test_server()->GetURL("files/empty.html");
260 test_page_url_ = test_server()->GetURL(
261 "files/notifications/notification_tester.html");
262 }
263
264 int NotificationsTest::GetNotificationCount() { 254 int NotificationsTest::GetNotificationCount() {
265 if (message_center::IsRichNotificationEnabled()) { 255 if (message_center::IsRichNotificationEnabled()) {
266 return message_center::MessageCenter::Get()->NotificationCount(); 256 return message_center::MessageCenter::Get()->NotificationCount();
267 } else { 257 } else {
268 return BalloonNotificationUIManager::GetInstanceForTesting()-> 258 return BalloonNotificationUIManager::GetInstanceForTesting()->
269 balloon_collection()->GetActiveBalloons().size(); 259 balloon_collection()->GetActiveBalloons().size();
270 } 260 }
271 } 261 }
272 262
273 NotificationChangeObserver* NotificationsTest::CreateObserver() { 263 NotificationChangeObserver* NotificationsTest::CreateObserver() {
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 ContentSettingsPattern::FromURLNoWildcard(origin)); 466 ContentSettingsPattern::FromURLNoWildcard(origin));
477 } 467 }
478 468
479 DesktopNotificationService* NotificationsTest::GetDesktopNotificationService() { 469 DesktopNotificationService* NotificationsTest::GetDesktopNotificationService() {
480 Profile* profile = browser()->profile(); 470 Profile* profile = browser()->profile();
481 return DesktopNotificationServiceFactory::GetForProfile(profile); 471 return DesktopNotificationServiceFactory::GetForProfile(profile);
482 } 472 }
483 473
484 // If this flakes, use http://crbug.com/62311 and http://crbug.com/74428. 474 // If this flakes, use http://crbug.com/62311 and http://crbug.com/74428.
485 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestUserGestureInfobar) { 475 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestUserGestureInfobar) {
476 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
477
486 ui_test_utils::NavigateToURL( 478 ui_test_utils::NavigateToURL(
487 browser(), 479 browser(),
488 test_server()->GetURL( 480 embedded_test_server()->GetURL(
489 "files/notifications/notifications_request_function.html")); 481 "/notifications/notifications_request_function.html"));
490 482
491 // Request permission by calling request() while eval'ing an inline script; 483 // Request permission by calling request() while eval'ing an inline script;
492 // That's considered a user gesture to webkit, and should produce an infobar. 484 // That's considered a user gesture to webkit, and should produce an infobar.
493 bool result; 485 bool result;
494 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 486 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
495 browser()->tab_strip_model()->GetActiveWebContents(), 487 browser()->tab_strip_model()->GetActiveWebContents(),
496 "window.domAutomationController.send(request());", 488 "window.domAutomationController.send(request());",
497 &result)); 489 &result));
498 EXPECT_TRUE(result); 490 EXPECT_TRUE(result);
499 491
500 EXPECT_EQ(1U, InfoBarService::FromWebContents( 492 EXPECT_EQ(1U, InfoBarService::FromWebContents(
501 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count()); 493 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count());
502 } 494 }
503 495
504 // If this flakes, use http://crbug.com/62311. 496 // If this flakes, use http://crbug.com/62311.
505 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNoUserGestureInfobar) { 497 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNoUserGestureInfobar) {
498 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
499
506 // Load a page which just does a request; no user gesture should result 500 // Load a page which just does a request; no user gesture should result
507 // in no infobar. 501 // in no infobar.
508 ui_test_utils::NavigateToURL( 502 ui_test_utils::NavigateToURL(
509 browser(), 503 browser(),
510 test_server()->GetURL( 504 embedded_test_server()->GetURL(
511 "files/notifications/notifications_request_inline.html")); 505 "/notifications/notifications_request_inline.html"));
512 506
513 EXPECT_EQ(0U, InfoBarService::FromWebContents( 507 EXPECT_EQ(0U, InfoBarService::FromWebContents(
514 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count()); 508 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count());
515 } 509 }
516 510
517 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) { 511 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateSimpleNotification) {
518 #if defined(OS_MACOSX) 512 #if defined(OS_MACOSX)
519 // TODO(kbr): re-enable: http://crbug.com/222296 513 // TODO(kbr): re-enable: http://crbug.com/222296
520 if (base::mac::IsOSMountainLionOrLater()) 514 if (base::mac::IsOSMountainLionOrLater())
521 return; 515 return;
522 #endif 516 #endif
523 517
518 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
519
524 // Creates a simple notification. 520 // Creates a simple notification.
525 AllowAllOrigins(); 521 AllowAllOrigins();
526 ui_test_utils::NavigateToURL(browser(), test_page_url_); 522 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
527 523
528 std::string result = CreateSimpleNotification(browser(), true); 524 std::string result = CreateSimpleNotification(browser(), true);
529 EXPECT_NE("-1", result); 525 EXPECT_NE("-1", result);
530 526
531 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); 527 GURL EXPECTED_ICON_URL = embedded_test_server()->GetURL(kExpectedIconUrl);
532 ASSERT_EQ(1, GetNotificationCount()); 528 ASSERT_EQ(1, GetNotificationCount());
533 if (message_center::IsRichNotificationEnabled()) { 529 if (message_center::IsRichNotificationEnabled()) {
534 message_center::NotificationList::Notifications notifications = 530 message_center::NotificationList::Notifications notifications =
535 message_center::MessageCenter::Get()->GetNotifications(); 531 message_center::MessageCenter::Get()->GetNotifications();
536 EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title()); 532 EXPECT_EQ(ASCIIToUTF16("My Title"), (*notifications.rbegin())->title());
537 EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message()); 533 EXPECT_EQ(ASCIIToUTF16("My Body"), (*notifications.rbegin())->message());
538 } else { 534 } else {
539 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 535 const std::deque<Balloon*>& balloons = GetActiveBalloons();
540 ASSERT_EQ(1U, balloons.size()); 536 ASSERT_EQ(1U, balloons.size());
541 Balloon* balloon = balloons[0]; 537 Balloon* balloon = balloons[0];
542 const Notification& notification = balloon->notification(); 538 const Notification& notification = balloon->notification();
543 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); 539 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
544 EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title()); 540 EXPECT_EQ(ASCIIToUTF16("My Title"), notification.title());
545 EXPECT_EQ(ASCIIToUTF16("My Body"), notification.message()); 541 EXPECT_EQ(ASCIIToUTF16("My Body"), notification.message());
546 } 542 }
547 } 543 }
548 544
549 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) { 545 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseNotification) {
550 #if defined(OS_MACOSX) 546 #if defined(OS_MACOSX)
551 // TODO(kbr): re-enable: http://crbug.com/222296 547 // TODO(kbr): re-enable: http://crbug.com/222296
552 if (base::mac::IsOSMountainLionOrLater()) 548 if (base::mac::IsOSMountainLionOrLater())
553 return; 549 return;
554 #endif 550 #endif
555 551
552 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
553
556 // Creates a notification and closes it. 554 // Creates a notification and closes it.
557 AllowAllOrigins(); 555 AllowAllOrigins();
558 ui_test_utils::NavigateToURL(browser(), test_page_url_); 556 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
559 557
560 std::string result = CreateSimpleNotification(browser(), true); 558 std::string result = CreateSimpleNotification(browser(), true);
561 EXPECT_NE("-1", result); 559 EXPECT_NE("-1", result);
562 ASSERT_EQ(1, GetNotificationCount()); 560 ASSERT_EQ(1, GetNotificationCount());
563 561
564 if (message_center::IsRichNotificationEnabled()) { 562 if (message_center::IsRichNotificationEnabled()) {
565 message_center::NotificationList::Notifications notifications = 563 message_center::NotificationList::Notifications notifications =
566 message_center::MessageCenter::Get()->GetNotifications(); 564 message_center::MessageCenter::Get()->GetNotifications();
567 message_center::MessageCenter::Get()->RemoveNotification( 565 message_center::MessageCenter::Get()->RemoveNotification(
568 (*notifications.rbegin())->id(), 566 (*notifications.rbegin())->id(),
569 true); // by_user 567 true); // by_user
570 } else { 568 } else {
571 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 569 const std::deque<Balloon*>& balloons = GetActiveBalloons();
572 EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); 570 EXPECT_TRUE(CloseNotificationAndWait(balloons[0]->notification()));
573 } 571 }
574 572
575 ASSERT_EQ(0, GetNotificationCount()); 573 ASSERT_EQ(0, GetNotificationCount());
576 } 574 }
577 575
578 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCancelNotification) { 576 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCancelNotification) {
579 #if defined(OS_MACOSX) 577 #if defined(OS_MACOSX)
580 // TODO(kbr): re-enable: http://crbug.com/222296 578 // TODO(kbr): re-enable: http://crbug.com/222296
581 if (base::mac::IsOSMountainLionOrLater()) 579 if (base::mac::IsOSMountainLionOrLater())
582 return; 580 return;
583 #endif 581 #endif
584 582
583 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
584
585 // Creates a notification and cancels it in the origin page. 585 // Creates a notification and cancels it in the origin page.
586 AllowAllOrigins(); 586 AllowAllOrigins();
587 ui_test_utils::NavigateToURL(browser(), test_page_url_); 587 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
588 588
589 std::string note_id = CreateSimpleNotification(browser(), true); 589 std::string note_id = CreateSimpleNotification(browser(), true);
590 EXPECT_NE(note_id, "-1"); 590 EXPECT_NE(note_id, "-1");
591 591
592 ASSERT_EQ(1, GetNotificationCount()); 592 ASSERT_EQ(1, GetNotificationCount());
593 ASSERT_TRUE(CancelNotification(note_id.c_str(), browser())); 593 ASSERT_TRUE(CancelNotification(note_id.c_str(), browser()));
594 ASSERT_EQ(0, GetNotificationCount()); 594 ASSERT_EQ(0, GetNotificationCount());
595 } 595 }
596 596
597 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionInfobarAppears) { 597 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestPermissionInfobarAppears) {
598 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
599
598 // Requests notification privileges and verifies the infobar appears. 600 // Requests notification privileges and verifies the infobar appears.
599 ui_test_utils::NavigateToURL(browser(), test_page_url_); 601 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
600 ASSERT_TRUE(RequestPermissionAndWait(browser())); 602 ASSERT_TRUE(RequestPermissionAndWait(browser()));
601 603
602 ASSERT_EQ(0, GetNotificationCount()); 604 ASSERT_EQ(0, GetNotificationCount());
603 VerifyInfobar(browser(), 0); 605 VerifyInfobar(browser(), 0);
604 } 606 }
605 607
606 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowOnPermissionInfobar) { 608 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowOnPermissionInfobar) {
607 #if defined(OS_MACOSX) 609 #if defined(OS_MACOSX)
608 // TODO(kbr): re-enable: http://crbug.com/222296 610 // TODO(kbr): re-enable: http://crbug.com/222296
609 if (base::mac::IsOSMountainLionOrLater()) 611 if (base::mac::IsOSMountainLionOrLater())
610 return; 612 return;
611 #endif 613 #endif
612 614
615 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
616
613 // Tries to create a notification and clicks allow on the infobar. 617 // Tries to create a notification and clicks allow on the infobar.
614 ui_test_utils::NavigateToURL(browser(), test_page_url_); 618 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
615 // This notification should not be shown because we do not have permission. 619 // This notification should not be shown because we do not have permission.
616 CreateSimpleNotification(browser(), false); 620 CreateSimpleNotification(browser(), false);
617 ASSERT_EQ(0, GetNotificationCount()); 621 ASSERT_EQ(0, GetNotificationCount());
618 622
619 ASSERT_TRUE(RequestPermissionAndWait(browser())); 623 ASSERT_TRUE(RequestPermissionAndWait(browser()));
620 ASSERT_TRUE(PerformActionOnInfobar(browser(), ALLOW, 0, 0)); 624 ASSERT_TRUE(PerformActionOnInfobar(browser(), ALLOW, 0, 0));
621 625
622 CreateSimpleNotification(browser(), true); 626 CreateSimpleNotification(browser(), true);
623 EXPECT_EQ(1, GetNotificationCount()); 627 EXPECT_EQ(1, GetNotificationCount());
624 } 628 }
625 629
626 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyOnPermissionInfobar) { 630 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyOnPermissionInfobar) {
631 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
632
627 // Test that no notification is created 633 // Test that no notification is created
628 // when Deny is chosen from permission infobar. 634 // when Deny is chosen from permission infobar.
629 ui_test_utils::NavigateToURL(browser(), test_page_url_); 635 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
630 ASSERT_TRUE(RequestPermissionAndWait(browser())); 636 ASSERT_TRUE(RequestPermissionAndWait(browser()));
631 PerformActionOnInfobar(browser(), DENY, 0, 0); 637 PerformActionOnInfobar(browser(), DENY, 0, 0);
632 CreateSimpleNotification(browser(), false); 638 CreateSimpleNotification(browser(), false);
633 ASSERT_EQ(0, GetNotificationCount()); 639 ASSERT_EQ(0, GetNotificationCount());
634 ContentSettingsForOneType settings; 640 ContentSettingsForOneType settings;
635 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); 641 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
636 EXPECT_TRUE(CheckOriginInSetting(settings, test_page_url_)); 642 EXPECT_TRUE(CheckOriginInSetting(settings, GetTestPageURL()));
637 } 643 }
638 644
639 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermissionInfobar) { 645 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestClosePermissionInfobar) {
646 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
647
640 // Test that no notification is created when permission infobar is dismissed. 648 // Test that no notification is created when permission infobar is dismissed.
641 ui_test_utils::NavigateToURL(browser(), test_page_url_); 649 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
642 ASSERT_TRUE(RequestPermissionAndWait(browser())); 650 ASSERT_TRUE(RequestPermissionAndWait(browser()));
643 PerformActionOnInfobar(browser(), DISMISS, 0, 0); 651 PerformActionOnInfobar(browser(), DISMISS, 0, 0);
644 CreateSimpleNotification(browser(), false); 652 CreateSimpleNotification(browser(), false);
645 ASSERT_EQ(0, GetNotificationCount()); 653 ASSERT_EQ(0, GetNotificationCount());
646 ContentSettingsForOneType settings; 654 ContentSettingsForOneType settings;
647 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); 655 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
648 EXPECT_EQ(0U, settings.size()); 656 EXPECT_EQ(0U, settings.size());
649 } 657 }
650 658
651 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) { 659 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowNotificationsFromAllSites) {
652 #if defined(OS_MACOSX) 660 #if defined(OS_MACOSX)
653 // TODO(kbr): re-enable: http://crbug.com/222296 661 // TODO(kbr): re-enable: http://crbug.com/222296
654 if (base::mac::IsOSMountainLionOrLater()) 662 if (base::mac::IsOSMountainLionOrLater())
655 return; 663 return;
656 #endif 664 #endif
665
666 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
667
657 // Verify that all domains can be allowed to show notifications. 668 // Verify that all domains can be allowed to show notifications.
658 SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW); 669 SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW);
659 ui_test_utils::NavigateToURL(browser(), test_page_url_); 670 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
660 671
661 std::string result = CreateSimpleNotification(browser(), true); 672 std::string result = CreateSimpleNotification(browser(), true);
662 EXPECT_NE("-1", result); 673 EXPECT_NE("-1", result);
663 674
664 ASSERT_EQ(1, GetNotificationCount()); 675 ASSERT_EQ(1, GetNotificationCount());
665 EXPECT_EQ(0U, InfoBarService::FromWebContents( 676 EXPECT_EQ(0U, InfoBarService::FromWebContents(
666 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count()); 677 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count());
667 } 678 }
668 679
669 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyNotificationsFromAllSites) { 680 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyNotificationsFromAllSites) {
681 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
682
670 // Verify that no domain can show notifications. 683 // Verify that no domain can show notifications.
671 SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK); 684 SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK);
672 ui_test_utils::NavigateToURL(browser(), test_page_url_); 685 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
673 686
674 std::string result = CreateSimpleNotification(browser(), false); 687 std::string result = CreateSimpleNotification(browser(), false);
675 EXPECT_EQ("-1", result); 688 EXPECT_EQ("-1", result);
676 689
677 ASSERT_EQ(0, GetNotificationCount()); 690 ASSERT_EQ(0, GetNotificationCount());
678 } 691 }
679 692
680 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyDomainAndAllowAll) { 693 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyDomainAndAllowAll) {
694 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
695
681 // Verify that denying a domain and allowing all shouldn't show 696 // Verify that denying a domain and allowing all shouldn't show
682 // notifications from the denied domain. 697 // notifications from the denied domain.
683 DenyOrigin(test_page_url_.GetOrigin()); 698 DenyOrigin(GetTestPageURL().GetOrigin());
684 SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW); 699 SetDefaultPermissionSetting(CONTENT_SETTING_ALLOW);
685 700
686 ui_test_utils::NavigateToURL(browser(), test_page_url_); 701 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
687 702
688 std::string result = CreateSimpleNotification(browser(), false); 703 std::string result = CreateSimpleNotification(browser(), false);
689 EXPECT_EQ("-1", result); 704 EXPECT_EQ("-1", result);
690 705
691 ASSERT_EQ(0, GetNotificationCount()); 706 ASSERT_EQ(0, GetNotificationCount());
692 } 707 }
693 708
694 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowDomainAndDenyAll) { 709 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestAllowDomainAndDenyAll) {
695 #if defined(OS_MACOSX) 710 #if defined(OS_MACOSX)
696 // TODO(kbr): re-enable: http://crbug.com/222296 711 // TODO(kbr): re-enable: http://crbug.com/222296
697 if (base::mac::IsOSMountainLionOrLater()) 712 if (base::mac::IsOSMountainLionOrLater())
698 return; 713 return;
699 #endif 714 #endif
715
716 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
717
700 // Verify that allowing a domain and denying all others should show 718 // Verify that allowing a domain and denying all others should show
701 // notifications from the allowed domain. 719 // notifications from the allowed domain.
702 AllowOrigin(test_page_url_.GetOrigin()); 720 AllowOrigin(GetTestPageURL().GetOrigin());
703 SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK); 721 SetDefaultPermissionSetting(CONTENT_SETTING_BLOCK);
704 722
705 ui_test_utils::NavigateToURL(browser(), test_page_url_); 723 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
706 724
707 std::string result = CreateSimpleNotification(browser(), true); 725 std::string result = CreateSimpleNotification(browser(), true);
708 EXPECT_NE("-1", result); 726 EXPECT_NE("-1", result);
709 727
710 ASSERT_EQ(1, GetNotificationCount()); 728 ASSERT_EQ(1, GetNotificationCount());
711 } 729 }
712 730
713 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyAndThenAllowDomain) { 731 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestDenyAndThenAllowDomain) {
714 #if defined(OS_MACOSX) 732 #if defined(OS_MACOSX)
715 // TODO(kbr): re-enable: http://crbug.com/222296 733 // TODO(kbr): re-enable: http://crbug.com/222296
716 if (base::mac::IsOSMountainLionOrLater()) 734 if (base::mac::IsOSMountainLionOrLater())
717 return; 735 return;
718 #endif 736 #endif
737
738 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
739
719 // Verify that denying and again allowing should show notifications. 740 // Verify that denying and again allowing should show notifications.
720 DenyOrigin(test_page_url_.GetOrigin()); 741 DenyOrigin(GetTestPageURL().GetOrigin());
721 742
722 ui_test_utils::NavigateToURL(browser(), test_page_url_); 743 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
723 744
724 std::string result = CreateSimpleNotification(browser(), false); 745 std::string result = CreateSimpleNotification(browser(), false);
725 EXPECT_EQ("-1", result); 746 EXPECT_EQ("-1", result);
726 747
727 ASSERT_EQ(0, GetNotificationCount()); 748 ASSERT_EQ(0, GetNotificationCount());
728 749
729 AllowOrigin(test_page_url_.GetOrigin()); 750 AllowOrigin(GetTestPageURL().GetOrigin());
730 result = CreateSimpleNotification(browser(), true); 751 result = CreateSimpleNotification(browser(), true);
731 EXPECT_NE("-1", result); 752 EXPECT_NE("-1", result);
732 753
733 ASSERT_EQ(1, GetNotificationCount()); 754 ASSERT_EQ(1, GetNotificationCount());
734 EXPECT_EQ(0U, InfoBarService::FromWebContents( 755 EXPECT_EQ(0U, InfoBarService::FromWebContents(
735 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count()); 756 browser()->tab_strip_model()->GetWebContentsAt(0))->infobar_count());
736 } 757 }
737 758
738 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateDenyCloseNotifications) { 759 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCreateDenyCloseNotifications) {
739 #if defined(OS_MACOSX) 760 #if defined(OS_MACOSX)
740 // TODO(kbr): re-enable: http://crbug.com/222296 761 // TODO(kbr): re-enable: http://crbug.com/222296
741 if (base::mac::IsOSMountainLionOrLater()) 762 if (base::mac::IsOSMountainLionOrLater())
742 return; 763 return;
743 #endif 764 #endif
765
766 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
767
744 // Verify able to create, deny, and close the notification. 768 // Verify able to create, deny, and close the notification.
745 AllowAllOrigins(); 769 AllowAllOrigins();
746 ui_test_utils::NavigateToURL(browser(), test_page_url_); 770 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
747 CreateSimpleNotification(browser(), true); 771 CreateSimpleNotification(browser(), true);
748 ASSERT_EQ(1, GetNotificationCount()); 772 ASSERT_EQ(1, GetNotificationCount());
749 773
750 DenyOrigin(test_page_url_.GetOrigin()); 774 DenyOrigin(GetTestPageURL().GetOrigin());
751 ContentSettingsForOneType settings; 775 ContentSettingsForOneType settings;
752 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); 776 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
753 ASSERT_TRUE(CheckOriginInSetting(settings, test_page_url_.GetOrigin())); 777 ASSERT_TRUE(CheckOriginInSetting(settings, GetTestPageURL().GetOrigin()));
754 778
755 EXPECT_EQ(1, GetNotificationCount()); 779 EXPECT_EQ(1, GetNotificationCount());
756 if (message_center::IsRichNotificationEnabled()) { 780 if (message_center::IsRichNotificationEnabled()) {
757 message_center::NotificationList::Notifications notifications = 781 message_center::NotificationList::Notifications notifications =
758 message_center::MessageCenter::Get()->GetNotifications(); 782 message_center::MessageCenter::Get()->GetNotifications();
759 message_center::MessageCenter::Get()->RemoveNotification( 783 message_center::MessageCenter::Get()->RemoveNotification(
760 (*notifications.rbegin())->id(), 784 (*notifications.rbegin())->id(),
761 true); // by_user 785 true); // by_user
762 } else { 786 } else {
763 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 787 const std::deque<Balloon*>& balloons = GetActiveBalloons();
764 ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification())); 788 ASSERT_TRUE(CloseNotificationAndWait(balloons[0]->notification()));
765 } 789 }
766 ASSERT_EQ(0, GetNotificationCount()); 790 ASSERT_EQ(0, GetNotificationCount());
767 } 791 }
768 792
769 // Crashes on Linux/Win. See http://crbug.com/160657. 793 // Crashes on Linux/Win. See http://crbug.com/160657.
770 IN_PROC_BROWSER_TEST_F( 794 IN_PROC_BROWSER_TEST_F(
771 NotificationsTest, 795 NotificationsTest,
772 DISABLED_TestOriginPrefsNotSavedInIncognito) { 796 DISABLED_TestOriginPrefsNotSavedInIncognito) {
797 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
798
773 // Verify that allow/deny origin preferences are not saved in incognito. 799 // Verify that allow/deny origin preferences are not saved in incognito.
774 Browser* incognito = CreateIncognitoBrowser(); 800 Browser* incognito = CreateIncognitoBrowser();
775 ui_test_utils::NavigateToURL(incognito, test_page_url_); 801 ui_test_utils::NavigateToURL(incognito, GetTestPageURL());
776 ASSERT_TRUE(RequestPermissionAndWait(incognito)); 802 ASSERT_TRUE(RequestPermissionAndWait(incognito));
777 PerformActionOnInfobar(incognito, DENY, 0, 0); 803 PerformActionOnInfobar(incognito, DENY, 0, 0);
778 CloseBrowserWindow(incognito); 804 CloseBrowserWindow(incognito);
779 805
780 incognito = CreateIncognitoBrowser(); 806 incognito = CreateIncognitoBrowser();
781 ui_test_utils::NavigateToURL(incognito, test_page_url_); 807 ui_test_utils::NavigateToURL(incognito, GetTestPageURL());
782 ASSERT_TRUE(RequestPermissionAndWait(incognito)); 808 ASSERT_TRUE(RequestPermissionAndWait(incognito));
783 PerformActionOnInfobar(incognito, ALLOW, 0, 0); 809 PerformActionOnInfobar(incognito, ALLOW, 0, 0);
784 CreateSimpleNotification(incognito, true); 810 CreateSimpleNotification(incognito, true);
785 ASSERT_EQ(1, GetNotificationCount()); 811 ASSERT_EQ(1, GetNotificationCount());
786 CloseBrowserWindow(incognito); 812 CloseBrowserWindow(incognito);
787 813
788 incognito = CreateIncognitoBrowser(); 814 incognito = CreateIncognitoBrowser();
789 ui_test_utils::NavigateToURL(incognito, test_page_url_); 815 ui_test_utils::NavigateToURL(incognito, GetTestPageURL());
790 ASSERT_TRUE(RequestPermissionAndWait(incognito)); 816 ASSERT_TRUE(RequestPermissionAndWait(incognito));
791 817
792 ContentSettingsForOneType settings; 818 ContentSettingsForOneType settings;
793 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings); 819 GetPrefsByContentSetting(CONTENT_SETTING_BLOCK, &settings);
794 EXPECT_EQ(0U, settings.size()); 820 EXPECT_EQ(0U, settings.size());
795 GetPrefsByContentSetting(CONTENT_SETTING_ALLOW, &settings); 821 GetPrefsByContentSetting(CONTENT_SETTING_ALLOW, &settings);
796 EXPECT_EQ(0U, settings.size()); 822 EXPECT_EQ(0U, settings.size());
797 } 823 }
798 824
799 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestExitBrowserWithInfobar) { 825 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestExitBrowserWithInfobar) {
826 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
827
800 // Exit the browser window, when the infobar appears. 828 // Exit the browser window, when the infobar appears.
801 ui_test_utils::NavigateToURL(browser(), test_page_url_); 829 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
802 ASSERT_TRUE(RequestPermissionAndWait(browser())); 830 ASSERT_TRUE(RequestPermissionAndWait(browser()));
803 } 831 }
804 832
805 // Times out on Windows and Linux. http://crbug.com/168976 833 // Times out on Windows and Linux. http://crbug.com/168976
806 #if defined(OS_WIN) || defined(OS_LINUX) 834 #if defined(OS_WIN) || defined(OS_LINUX)
807 #define MAYBE_TestCrashTabWithPermissionInfobar \ 835 #define MAYBE_TestCrashTabWithPermissionInfobar \
808 DISABLED_TestCrashTabWithPermissionInfobar 836 DISABLED_TestCrashTabWithPermissionInfobar
809 #else 837 #else
810 #define MAYBE_TestCrashTabWithPermissionInfobar \ 838 #define MAYBE_TestCrashTabWithPermissionInfobar \
811 TestCrashTabWithPermissionInfobar 839 TestCrashTabWithPermissionInfobar
812 #endif 840 #endif
813 IN_PROC_BROWSER_TEST_F(NotificationsTest, 841 IN_PROC_BROWSER_TEST_F(NotificationsTest,
814 MAYBE_TestCrashTabWithPermissionInfobar) { 842 MAYBE_TestCrashTabWithPermissionInfobar) {
843 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
844
815 // Test crashing the tab with permission infobar doesn't crash Chrome. 845 // Test crashing the tab with permission infobar doesn't crash Chrome.
816 ui_test_utils::NavigateToURLWithDisposition( 846 ui_test_utils::NavigateToURLWithDisposition(
817 browser(), 847 browser(),
818 empty_page_url_, 848 embedded_test_server()->GetURL("/empty.html"),
819 NEW_BACKGROUND_TAB, 849 NEW_BACKGROUND_TAB,
820 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 850 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
821 browser()->tab_strip_model()->ActivateTabAt(0, true); 851 browser()->tab_strip_model()->ActivateTabAt(0, true);
822 ui_test_utils::NavigateToURL(browser(), test_page_url_); 852 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
823 ASSERT_TRUE(RequestPermissionAndWait(browser())); 853 ASSERT_TRUE(RequestPermissionAndWait(browser()));
824 CrashTab(browser(), 0); 854 CrashTab(browser(), 0);
825 } 855 }
826 856
827 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) { 857 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestKillNotificationProcess) {
828 // Notifications don't have their own process with the message center. 858 // Notifications don't have their own process with the message center.
829 if (message_center::IsRichNotificationEnabled()) 859 if (message_center::IsRichNotificationEnabled())
830 return; 860 return;
831 861
832 #if defined(OS_MACOSX) 862 #if defined(OS_MACOSX)
833 // TODO(kbr): re-enable: http://crbug.com/222296 863 // TODO(kbr): re-enable: http://crbug.com/222296
834 if (base::mac::IsOSMountainLionOrLater()) 864 if (base::mac::IsOSMountainLionOrLater())
835 return; 865 return;
836 #endif 866 #endif
867
868 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
869
837 // Test killing a notification doesn't crash Chrome. 870 // Test killing a notification doesn't crash Chrome.
838 AllowAllOrigins(); 871 AllowAllOrigins();
839 ui_test_utils::NavigateToURL(browser(), test_page_url_); 872 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
840 CreateSimpleNotification(browser(), true); 873 CreateSimpleNotification(browser(), true);
841 ASSERT_EQ(1, GetNotificationCount()); 874 ASSERT_EQ(1, GetNotificationCount());
842 875
843 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 876 const std::deque<Balloon*>& balloons = GetActiveBalloons();
844 ASSERT_EQ(1U, balloons.size()); 877 ASSERT_EQ(1U, balloons.size());
845 CrashNotification(balloons[0]); 878 CrashNotification(balloons[0]);
846 ASSERT_EQ(0, GetNotificationCount()); 879 ASSERT_EQ(0, GetNotificationCount());
847 } 880 }
848 881
849 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) { 882 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestIncognitoNotification) {
850 #if defined(OS_MACOSX) 883 #if defined(OS_MACOSX)
851 // TODO(kbr): re-enable: http://crbug.com/222296 884 // TODO(kbr): re-enable: http://crbug.com/222296
852 if (base::mac::IsOSMountainLionOrLater()) 885 if (base::mac::IsOSMountainLionOrLater())
853 return; 886 return;
854 #endif 887 #endif
888
889 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
890
855 // Test notifications in incognito window. 891 // Test notifications in incognito window.
856 Browser* browser = CreateIncognitoBrowser(); 892 Browser* browser = CreateIncognitoBrowser();
857 ui_test_utils::NavigateToURL(browser, test_page_url_); 893 ui_test_utils::NavigateToURL(browser, GetTestPageURL());
858 browser->tab_strip_model()->ActivateTabAt(0, true); 894 browser->tab_strip_model()->ActivateTabAt(0, true);
859 ASSERT_TRUE(RequestPermissionAndWait(browser)); 895 ASSERT_TRUE(RequestPermissionAndWait(browser));
860 PerformActionOnInfobar(browser, ALLOW, 0, 0); 896 PerformActionOnInfobar(browser, ALLOW, 0, 0);
861 CreateSimpleNotification(browser, true); 897 CreateSimpleNotification(browser, true);
862 ASSERT_EQ(1, GetNotificationCount()); 898 ASSERT_EQ(1, GetNotificationCount());
863 } 899 }
864 900
865 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseTabWithPermissionInfobar) { 901 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestCloseTabWithPermissionInfobar) {
902 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
903
866 // Test that user can close tab when infobar present. 904 // Test that user can close tab when infobar present.
867 ui_test_utils::NavigateToURLWithDisposition( 905 ui_test_utils::NavigateToURLWithDisposition(
868 browser(), 906 browser(),
869 GURL("about:blank"), 907 GURL("about:blank"),
870 NEW_BACKGROUND_TAB, 908 NEW_BACKGROUND_TAB,
871 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 909 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
872 browser()->tab_strip_model()->ActivateTabAt(0, true); 910 browser()->tab_strip_model()->ActivateTabAt(0, true);
873 ui_test_utils::NavigateToURL(browser(), test_page_url_); 911 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
874 ASSERT_TRUE(RequestPermissionAndWait(browser())); 912 ASSERT_TRUE(RequestPermissionAndWait(browser()));
875 content::WindowedNotificationObserver observer( 913 content::WindowedNotificationObserver observer(
876 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, 914 content::NOTIFICATION_WEB_CONTENTS_DESTROYED,
877 content::NotificationService::AllSources()); 915 content::NotificationService::AllSources());
878 browser()->tab_strip_model()->CloseWebContentsAt(0, 916 browser()->tab_strip_model()->CloseWebContentsAt(0,
879 TabStripModel::CLOSE_NONE); 917 TabStripModel::CLOSE_NONE);
880 observer.Wait(); 918 observer.Wait();
881 } 919 }
882 920
883 IN_PROC_BROWSER_TEST_F( 921 IN_PROC_BROWSER_TEST_F(
884 NotificationsTest, 922 NotificationsTest,
885 TestNavigateAwayWithPermissionInfobar) { 923 TestNavigateAwayWithPermissionInfobar) {
886 #if defined(OS_MACOSX) 924 #if defined(OS_MACOSX)
887 // TODO(kbr): re-enable: http://crbug.com/222296 925 // TODO(kbr): re-enable: http://crbug.com/222296
888 if (base::mac::IsOSMountainLionOrLater()) 926 if (base::mac::IsOSMountainLionOrLater())
889 return; 927 return;
890 #endif 928 #endif
929
930 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
931
891 // Test navigating away when an infobar is present, 932 // Test navigating away when an infobar is present,
892 // then trying to create a notification from the same page. 933 // then trying to create a notification from the same page.
893 ui_test_utils::NavigateToURLWithDisposition( 934 ui_test_utils::NavigateToURLWithDisposition(
894 browser(), 935 browser(),
895 GURL("about:blank"), 936 GURL("about:blank"),
896 NEW_BACKGROUND_TAB, 937 NEW_BACKGROUND_TAB,
897 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 938 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
898 browser()->tab_strip_model()->ActivateTabAt(0, true); 939 browser()->tab_strip_model()->ActivateTabAt(0, true);
899 ui_test_utils::NavigateToURL(browser(), test_page_url_); 940 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
900 ASSERT_TRUE(RequestPermissionAndWait(browser())); 941 ASSERT_TRUE(RequestPermissionAndWait(browser()));
901 ui_test_utils::NavigateToURL(browser(), test_page_url_); 942 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
902 ASSERT_TRUE(RequestPermissionAndWait(browser())); 943 ASSERT_TRUE(RequestPermissionAndWait(browser()));
903 PerformActionOnInfobar(browser(), ALLOW, 0, 0); 944 PerformActionOnInfobar(browser(), ALLOW, 0, 0);
904 CreateSimpleNotification(browser(), true); 945 CreateSimpleNotification(browser(), true);
905 ASSERT_EQ(1, GetNotificationCount()); 946 ASSERT_EQ(1, GetNotificationCount());
906 } 947 }
907 948
908 // See crbug.com/248470 949 // See crbug.com/248470
909 #if defined(OS_LINUX) 950 #if defined(OS_LINUX)
910 #define MAYBE_TestCrashRendererNotificationRemain \ 951 #define MAYBE_TestCrashRendererNotificationRemain \
911 DISABLED_TestCrashRendererNotificationRemain 952 DISABLED_TestCrashRendererNotificationRemain
912 #else 953 #else
913 #define MAYBE_TestCrashRendererNotificationRemain \ 954 #define MAYBE_TestCrashRendererNotificationRemain \
914 TestCrashRendererNotificationRemain 955 TestCrashRendererNotificationRemain
915 #endif 956 #endif
916 957
917 IN_PROC_BROWSER_TEST_F(NotificationsTest, 958 IN_PROC_BROWSER_TEST_F(NotificationsTest,
918 MAYBE_TestCrashRendererNotificationRemain) { 959 MAYBE_TestCrashRendererNotificationRemain) {
919 #if defined(OS_MACOSX) 960 #if defined(OS_MACOSX)
920 // TODO(kbr): re-enable: http://crbug.com/222296 961 // TODO(kbr): re-enable: http://crbug.com/222296
921 if (base::mac::IsOSMountainLionOrLater()) 962 if (base::mac::IsOSMountainLionOrLater())
922 return; 963 return;
923 #endif 964 #endif
965
966 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
967
924 // Test crashing renderer does not close or crash notification. 968 // Test crashing renderer does not close or crash notification.
925 AllowAllOrigins(); 969 AllowAllOrigins();
926 ui_test_utils::NavigateToURLWithDisposition( 970 ui_test_utils::NavigateToURLWithDisposition(
927 browser(), 971 browser(),
928 GURL("about:blank"), 972 GURL("about:blank"),
929 NEW_BACKGROUND_TAB, 973 NEW_BACKGROUND_TAB,
930 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); 974 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
931 browser()->tab_strip_model()->ActivateTabAt(0, true); 975 browser()->tab_strip_model()->ActivateTabAt(0, true);
932 ui_test_utils::NavigateToURL(browser(), test_page_url_); 976 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
933 CreateSimpleNotification(browser(), true); 977 CreateSimpleNotification(browser(), true);
934 ASSERT_EQ(1, GetNotificationCount()); 978 ASSERT_EQ(1, GetNotificationCount());
935 CrashTab(browser(), 0); 979 CrashTab(browser(), 0);
936 ASSERT_EQ(1, GetNotificationCount()); 980 ASSERT_EQ(1, GetNotificationCount());
937 } 981 }
938 982
939 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationReplacement) { 983 IN_PROC_BROWSER_TEST_F(NotificationsTest, TestNotificationReplacement) {
940 #if defined(OS_MACOSX) 984 #if defined(OS_MACOSX)
941 // TODO(kbr): re-enable: http://crbug.com/222296 985 // TODO(kbr): re-enable: http://crbug.com/222296
942 if (base::mac::IsOSMountainLionOrLater()) 986 if (base::mac::IsOSMountainLionOrLater())
943 return; 987 return;
944 #endif 988 #endif
989
990 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
991
945 // Test that we can replace a notification using the replaceId. 992 // Test that we can replace a notification using the replaceId.
946 AllowAllOrigins(); 993 AllowAllOrigins();
947 994
948 ui_test_utils::NavigateToURL(browser(), test_page_url_); 995 ui_test_utils::NavigateToURL(browser(), GetTestPageURL());
949 996
950 std::string result = CreateNotification( 997 std::string result = CreateNotification(
951 browser(), true, "abc.png", "Title1", "Body1", "chat"); 998 browser(), true, "abc.png", "Title1", "Body1", "chat");
952 EXPECT_NE("-1", result); 999 EXPECT_NE("-1", result);
953 1000
954 ASSERT_EQ(1, GetNotificationCount()); 1001 ASSERT_EQ(1, GetNotificationCount());
955 1002
956 result = CreateNotification( 1003 result = CreateNotification(
957 browser(), false, "no_such_file.png", "Title2", "Body2", "chat"); 1004 browser(), false, "no_such_file.png", "Title2", "Body2", "chat");
958 EXPECT_NE("-1", result); 1005 EXPECT_NE("-1", result);
959 1006
960 if (message_center::IsRichNotificationEnabled()) { 1007 if (message_center::IsRichNotificationEnabled()) {
961 ASSERT_EQ(1, GetNotificationCount()); 1008 ASSERT_EQ(1, GetNotificationCount());
962 message_center::NotificationList::Notifications notifications = 1009 message_center::NotificationList::Notifications notifications =
963 message_center::MessageCenter::Get()->GetNotifications(); 1010 message_center::MessageCenter::Get()->GetNotifications();
964 EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title()); 1011 EXPECT_EQ(ASCIIToUTF16("Title2"), (*notifications.rbegin())->title());
965 EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message()); 1012 EXPECT_EQ(ASCIIToUTF16("Body2"), (*notifications.rbegin())->message());
966 } else { 1013 } else {
967 const std::deque<Balloon*>& balloons = GetActiveBalloons(); 1014 const std::deque<Balloon*>& balloons = GetActiveBalloons();
968 ASSERT_EQ(1U, balloons.size()); 1015 ASSERT_EQ(1U, balloons.size());
969 Balloon* balloon = balloons[0]; 1016 Balloon* balloon = balloons[0];
970 const Notification& notification = balloon->notification(); 1017 const Notification& notification = balloon->notification();
971 GURL EXPECTED_ICON_URL = test_server()->GetURL(kExpectedIconUrl); 1018 GURL EXPECTED_ICON_URL = embedded_test_server()->GetURL(kExpectedIconUrl);
972 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url()); 1019 EXPECT_EQ(EXPECTED_ICON_URL, notification.icon_url());
973 EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title()); 1020 EXPECT_EQ(ASCIIToUTF16("Title2"), notification.title());
974 EXPECT_EQ(ASCIIToUTF16("Body2"), notification.message()); 1021 EXPECT_EQ(ASCIIToUTF16("Body2"), notification.message());
975 } 1022 }
976 } 1023 }
OLDNEW
« no previous file with comments | « chrome/browser/media/chrome_webrtc_browsertest.cc ('k') | chrome/browser/prerender/prerender_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698