Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/strings/string_number_conversions.h" | 5 #include "base/strings/string_number_conversions.h" |
| 6 #include "base/strings/stringprintf.h" | 6 #include "base/strings/stringprintf.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "base/test/scoped_feature_list.h" | 8 #include "base/test/scoped_feature_list.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "chrome/browser/apps/app_browsertest_util.h" | 10 #include "chrome/browser/apps/app_browsertest_util.h" |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 #include "extensions/browser/app_window/native_app_window.h" | 32 #include "extensions/browser/app_window/native_app_window.h" |
| 33 #include "extensions/browser/notification_types.h" | 33 #include "extensions/browser/notification_types.h" |
| 34 #include "extensions/common/features/feature.h" | 34 #include "extensions/common/features/feature.h" |
| 35 #include "extensions/common/test_util.h" | 35 #include "extensions/common/test_util.h" |
| 36 #include "extensions/test/extension_test_message_listener.h" | 36 #include "extensions/test/extension_test_message_listener.h" |
| 37 #include "extensions/test/result_catcher.h" | 37 #include "extensions/test/result_catcher.h" |
| 38 #include "ui/message_center/notifier_settings.h" | 38 #include "ui/message_center/notifier_settings.h" |
| 39 | 39 |
| 40 #if defined(OS_MACOSX) | 40 #if defined(OS_MACOSX) |
| 41 #include "base/mac/mac_util.h" | 41 #include "base/mac/mac_util.h" |
| 42 #include "ui/base/test/scoped_fake_nswindow_fullscreen.h" | |
| 43 #endif | 42 #endif |
| 44 | 43 |
| 45 using extensions::AppWindow; | 44 using extensions::AppWindow; |
| 46 using extensions::AppWindowRegistry; | 45 using extensions::AppWindowRegistry; |
| 47 using extensions::Extension; | 46 using extensions::Extension; |
| 48 using extensions::ExtensionNotificationDisplayHelper; | 47 using extensions::ExtensionNotificationDisplayHelper; |
| 49 using extensions::ExtensionNotificationDisplayHelperFactory; | 48 using extensions::ExtensionNotificationDisplayHelperFactory; |
| 50 using extensions::ResultCatcher; | 49 using extensions::ResultCatcher; |
| 51 | 50 |
| 52 namespace utils = extension_function_test_utils; | 51 namespace utils = extension_function_test_utils; |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 237 } | 236 } |
| 238 | 237 |
| 239 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestEvents) { | 238 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestEvents) { |
| 240 ASSERT_TRUE(RunExtensionTest("notifications/api/events")) << message_; | 239 ASSERT_TRUE(RunExtensionTest("notifications/api/events")) << message_; |
| 241 } | 240 } |
| 242 | 241 |
| 243 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestCSP) { | 242 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestCSP) { |
| 244 ASSERT_TRUE(RunExtensionTest("notifications/api/csp")) << message_; | 243 ASSERT_TRUE(RunExtensionTest("notifications/api/csp")) << message_; |
| 245 } | 244 } |
| 246 | 245 |
| 246 // Native notifications don't support (nor use) observers. | |
| 247 #if !defined(OS_MACOSX) | |
|
dewittj
2017/05/16 22:07:17
should this be BUILDFLAG rather than OS?
Miguel Garcia
2017/05/20 07:04:10
We have BUILDFLAG(ENABLE_NATIVE_NOTIFICATIONS) bu
| |
| 247 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestByUser) { | 248 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestByUser) { |
| 248 const extensions::Extension* extension = | 249 const extensions::Extension* extension = |
| 249 LoadExtensionAndWait("notifications/api/by_user"); | 250 LoadExtensionAndWait("notifications/api/by_user"); |
| 250 ASSERT_TRUE(extension) << message_; | 251 ASSERT_TRUE(extension) << message_; |
| 251 | 252 |
| 252 { | 253 { |
| 253 ResultCatcher catcher; | 254 ResultCatcher catcher; |
| 254 const std::string notification_id = | 255 const std::string notification_id = |
| 255 GetNotificationIdFromDelegateId(extension->id() + "-FOO"); | 256 GetNotificationIdFromDelegateId(extension->id() + "-FOO"); |
| 256 GetDisplayService()->RemoveNotification( | 257 GetDisplayService()->RemoveNotification( |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 273 false /* by_user */); | 274 false /* by_user */); |
| 274 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 275 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 275 } | 276 } |
| 276 { | 277 { |
| 277 ResultCatcher catcher; | 278 ResultCatcher catcher; |
| 278 GetDisplayService()->RemoveAllNotifications(NotificationCommon::EXTENSION, | 279 GetDisplayService()->RemoveAllNotifications(NotificationCommon::EXTENSION, |
| 279 true /* by_user */); | 280 true /* by_user */); |
| 280 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 281 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 281 } | 282 } |
| 282 } | 283 } |
| 284 #endif // !defined(OS_MACOSX) | |
| 283 | 285 |
| 284 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestPartialUpdate) { | 286 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestPartialUpdate) { |
| 285 ASSERT_TRUE(RunExtensionTest("notifications/api/partial_update")) << message_; | 287 ASSERT_TRUE(RunExtensionTest("notifications/api/partial_update")) << message_; |
| 286 const extensions::Extension* extension = GetSingleLoadedExtension(); | 288 const extensions::Extension* extension = GetSingleLoadedExtension(); |
| 287 ASSERT_TRUE(extension) << message_; | 289 ASSERT_TRUE(extension) << message_; |
| 288 | 290 |
| 289 const char kNewTitle[] = "Changed!"; | 291 const char kNewTitle[] = "Changed!"; |
| 290 const char kNewMessage[] = "Too late! The show ended yesterday"; | 292 const char kNewMessage[] = "Too late! The show ended yesterday"; |
| 291 int kNewPriority = 2; | 293 int kNewPriority = 2; |
| 292 const char kButtonTitle[] = "NewButton"; | 294 const char kButtonTitle[] = "NewButton"; |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 372 | 374 |
| 373 message_center::NotifierId notifier_id( | 375 message_center::NotifierId notifier_id( |
| 374 message_center::NotifierId::APPLICATION, | 376 message_center::NotifierId::APPLICATION, |
| 375 extension->id()); | 377 extension->id()); |
| 376 GetNotifierStateTracker()->SetNotifierEnabled(notifier_id, true); | 378 GetNotifierStateTracker()->SetNotifierEnabled(notifier_id, true); |
| 377 | 379 |
| 378 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 380 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 379 } | 381 } |
| 380 } | 382 } |
| 381 | 383 |
| 384 // Native notifications don't support (nor use) observers. | |
| 385 #if !defined(OS_MACOSX) | |
| 382 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestUserGesture) { | 386 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestUserGesture) { |
| 383 const extensions::Extension* extension = | 387 const extensions::Extension* extension = |
| 384 LoadExtensionAndWait("notifications/api/user_gesture"); | 388 LoadExtensionAndWait("notifications/api/user_gesture"); |
| 385 ASSERT_TRUE(extension) << message_; | 389 ASSERT_TRUE(extension) << message_; |
| 386 | 390 |
| 387 Notification* notification = GetNotificationForExtension(extension); | 391 Notification* notification = GetNotificationForExtension(extension); |
| 388 ASSERT_TRUE(notification); | 392 ASSERT_TRUE(notification); |
| 389 | 393 |
| 390 { | 394 { |
| 391 UserGestureCatcher catcher; | 395 UserGestureCatcher catcher; |
| 392 notification->ButtonClick(0); | 396 notification->ButtonClick(0); |
| 393 EXPECT_TRUE(catcher.GetNextResult()); | 397 EXPECT_TRUE(catcher.GetNextResult()); |
| 394 notification->Click(); | 398 notification->Click(); |
| 395 EXPECT_TRUE(catcher.GetNextResult()); | 399 EXPECT_TRUE(catcher.GetNextResult()); |
| 396 notification->Close(true /* by_user */); | 400 notification->Close(true /* by_user */); |
| 397 EXPECT_TRUE(catcher.GetNextResult()); | 401 EXPECT_TRUE(catcher.GetNextResult()); |
| 398 | 402 |
| 399 // Note that |notification| no longer points to valid memory. | 403 // Note that |notification| no longer points to valid memory. |
| 400 } | 404 } |
| 401 | 405 |
| 402 ASSERT_FALSE(GetNotificationForExtension(extension)); | 406 ASSERT_FALSE(GetNotificationForExtension(extension)); |
| 403 } | 407 } |
| 408 #endif // !defined(OS_MACOSX) | |
| 404 | 409 |
| 405 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestRequireInteraction) { | 410 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestRequireInteraction) { |
| 406 const extensions::Extension* extension = | 411 const extensions::Extension* extension = |
| 407 LoadExtensionAndWait("notifications/api/require_interaction"); | 412 LoadExtensionAndWait("notifications/api/require_interaction"); |
| 408 ASSERT_TRUE(extension) << message_; | 413 ASSERT_TRUE(extension) << message_; |
| 409 | 414 |
| 410 Notification* notification = GetNotificationForExtension(extension); | 415 Notification* notification = GetNotificationForExtension(extension); |
| 411 ASSERT_TRUE(notification); | 416 ASSERT_TRUE(notification); |
| 412 | 417 |
| 413 EXPECT_TRUE(notification->never_timeout()); | 418 EXPECT_TRUE(notification->never_timeout()); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 426 GetFirstAppWindow(extension->id())->GetNativeWindow())); | 431 GetFirstAppWindow(extension->id())->GetNativeWindow())); |
| 427 | 432 |
| 428 Notification* notification = GetNotificationForExtension(extension); | 433 Notification* notification = GetNotificationForExtension(extension); |
| 429 ASSERT_TRUE(notification); | 434 ASSERT_TRUE(notification); |
| 430 | 435 |
| 431 // If the app hasn't created a fullscreen window, then its notifications | 436 // If the app hasn't created a fullscreen window, then its notifications |
| 432 // shouldn't be displayed when a window is fullscreen. | 437 // shouldn't be displayed when a window is fullscreen. |
| 433 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); | 438 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); |
| 434 } | 439 } |
| 435 | 440 |
| 441 // Full screen related tests don't run on Mac as native notifications full | |
| 442 // screen decisions are done by the OS directly. | |
| 443 #if !defined(OS_MACOSX) | |
| 436 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayFullscreen) { | 444 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayFullscreen) { |
| 437 #if defined(OS_MACOSX) | |
| 438 ui::test::ScopedFakeNSWindowFullscreen fake_fullscreen; | |
| 439 #endif | |
| 440 EnableFullscreenNotifications(); | 445 EnableFullscreenNotifications(); |
| 441 ExtensionTestMessageListener notification_created_listener("created", false); | 446 ExtensionTestMessageListener notification_created_listener("created", false); |
| 442 const Extension* extension = LoadAppWithWindowState( | 447 const Extension* extension = LoadAppWithWindowState( |
| 443 "notifications/api/basic_app", WindowState::FULLSCREEN); | 448 "notifications/api/basic_app", WindowState::FULLSCREEN); |
| 444 ASSERT_TRUE(extension) << message_; | 449 ASSERT_TRUE(extension) << message_; |
| 445 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); | 450 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); |
| 446 | 451 |
| 447 // We start by making sure the window is actually focused. | 452 // We start by making sure the window is actually focused. |
| 448 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( | 453 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| 449 GetFirstAppWindow(extension->id())->GetNativeWindow())); | 454 GetFirstAppWindow(extension->id())->GetNativeWindow())); |
| 450 | 455 |
| 451 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) | 456 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) |
| 452 << "Not Fullscreen"; | 457 << "Not Fullscreen"; |
| 453 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) | 458 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) |
| 454 << "Not Active"; | 459 << "Not Active"; |
| 455 | 460 |
| 456 Notification* notification = GetNotificationForExtension(extension); | 461 Notification* notification = GetNotificationForExtension(extension); |
| 457 ASSERT_TRUE(notification); | 462 ASSERT_TRUE(notification); |
| 458 | 463 |
| 459 // If the app has created a fullscreen window, then its notifications should | 464 // If the app has created a fullscreen window, then its notifications should |
| 460 // be displayed when a window is fullscreen. | 465 // be displayed when a window is fullscreen. |
| 461 ASSERT_TRUE(notification->delegate()->ShouldDisplayOverFullscreen()); | 466 ASSERT_TRUE(notification->delegate()->ShouldDisplayOverFullscreen()); |
| 462 } | 467 } |
| 463 | 468 |
| 464 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayFullscreenOff) { | 469 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayFullscreenOff) { |
| 465 #if defined(OS_MACOSX) | |
| 466 ui::test::ScopedFakeNSWindowFullscreen fake_fullscreen; | |
| 467 #endif | |
| 468 DisableFullscreenNotifications(); | 470 DisableFullscreenNotifications(); |
| 469 ExtensionTestMessageListener notification_created_listener("created", false); | 471 ExtensionTestMessageListener notification_created_listener("created", false); |
| 470 const Extension* extension = LoadAppWithWindowState( | 472 const Extension* extension = LoadAppWithWindowState( |
| 471 "notifications/api/basic_app", WindowState::FULLSCREEN); | 473 "notifications/api/basic_app", WindowState::FULLSCREEN); |
| 472 ASSERT_TRUE(extension) << message_; | 474 ASSERT_TRUE(extension) << message_; |
| 473 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); | 475 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); |
| 474 | 476 |
| 475 // We start by making sure the window is actually focused. | 477 // We start by making sure the window is actually focused. |
| 476 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( | 478 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| 477 GetFirstAppWindow(extension->id())->GetNativeWindow())); | 479 GetFirstAppWindow(extension->id())->GetNativeWindow())); |
| 478 | 480 |
| 479 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) | 481 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) |
| 480 << "Not Fullscreen"; | 482 << "Not Fullscreen"; |
| 481 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) | 483 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) |
| 482 << "Not Active"; | 484 << "Not Active"; |
| 483 | 485 |
| 484 Notification* notification = GetNotificationForExtension(extension); | 486 Notification* notification = GetNotificationForExtension(extension); |
| 485 ASSERT_TRUE(notification); | 487 ASSERT_TRUE(notification); |
| 486 | 488 |
| 487 // When the experiment flag is off, then ShouldDisplayOverFullscreen should | 489 // When the experiment flag is off, then ShouldDisplayOverFullscreen should |
| 488 // return false. | 490 // return false. |
| 489 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); | 491 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); |
| 490 } | 492 } |
| 491 | 493 |
| 492 // The Fake OSX fullscreen window doesn't like drawing a second fullscreen | 494 // The Fake OSX fullscreen window doesn't like drawing a second fullscreen |
| 493 // window when another is visible. | 495 // window when another is visible. |
| 494 #if !defined(OS_MACOSX) | |
| 495 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayMultiFullscreen) { | 496 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, TestShouldDisplayMultiFullscreen) { |
| 496 // Start a fullscreen app, and then start another fullscreen app on top of the | 497 // Start a fullscreen app, and then start another fullscreen app on top of the |
| 497 // first. Notifications from the first should not be displayed because it is | 498 // first. Notifications from the first should not be displayed because it is |
| 498 // not the app actually displaying on the screen. | 499 // not the app actually displaying on the screen. |
| 499 EnableFullscreenNotifications(); | 500 EnableFullscreenNotifications(); |
| 500 ExtensionTestMessageListener notification_created_listener("created", false); | 501 ExtensionTestMessageListener notification_created_listener("created", false); |
| 501 const Extension* extension1 = LoadAppWithWindowState( | 502 const Extension* extension1 = LoadAppWithWindowState( |
| 502 "notifications/api/basic_app", WindowState::FULLSCREEN); | 503 "notifications/api/basic_app", WindowState::FULLSCREEN); |
| 503 ASSERT_TRUE(extension1) << message_; | 504 ASSERT_TRUE(extension1) << message_; |
| 504 | 505 |
| 505 ExtensionTestMessageListener window_visible_listener("visible", false); | 506 ExtensionTestMessageListener window_visible_listener("visible", false); |
| 506 const Extension* extension2 = LoadAppWithWindowState( | 507 const Extension* extension2 = LoadAppWithWindowState( |
| 507 "notifications/api/other_app", WindowState::FULLSCREEN); | 508 "notifications/api/other_app", WindowState::FULLSCREEN); |
| 508 ASSERT_TRUE(extension2) << message_; | 509 ASSERT_TRUE(extension2) << message_; |
| 509 | 510 |
| 510 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); | 511 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); |
| 511 ASSERT_TRUE(window_visible_listener.WaitUntilSatisfied()); | 512 ASSERT_TRUE(window_visible_listener.WaitUntilSatisfied()); |
| 512 | 513 |
| 513 // We start by making sure the window is actually focused. | 514 // We start by making sure the window is actually focused. |
| 514 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( | 515 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| 515 GetFirstAppWindow(extension2->id())->GetNativeWindow())); | 516 GetFirstAppWindow(extension2->id())->GetNativeWindow())); |
| 516 | 517 |
| 517 Notification* notification = GetNotificationForExtension(extension1); | 518 Notification* notification = GetNotificationForExtension(extension1); |
| 518 ASSERT_TRUE(notification); | 519 ASSERT_TRUE(notification); |
| 519 | 520 |
| 520 // The first app window is superseded by the second window, so its | 521 // The first app window is superseded by the second window, so its |
| 521 // notification shouldn't be displayed. | 522 // notification shouldn't be displayed. |
| 522 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); | 523 ASSERT_FALSE(notification->delegate()->ShouldDisplayOverFullscreen()); |
| 523 } | 524 } |
| 524 #endif | |
| 525 | 525 |
| 526 // Verify that a notification is actually displayed when the app window that | 526 // Verify that a notification is actually displayed when the app window that |
| 527 // creates it is fullscreen with the fullscreen notification flag turned on. | 527 // creates it is fullscreen with the fullscreen notification flag turned on. |
| 528 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, | 528 IN_PROC_BROWSER_TEST_F(NotificationsApiTest, |
| 529 TestShouldDisplayPopupNotification) { | 529 TestShouldDisplayPopupNotification) { |
| 530 #if defined(OS_MACOSX) | |
| 531 ui::test::ScopedFakeNSWindowFullscreen fake_fullscreen; | |
| 532 #endif | |
| 533 EnableFullscreenNotifications(); | 530 EnableFullscreenNotifications(); |
| 534 ExtensionTestMessageListener notification_created_listener("created", false); | 531 ExtensionTestMessageListener notification_created_listener("created", false); |
| 535 const Extension* extension = LoadAppWithWindowState( | 532 const Extension* extension = LoadAppWithWindowState( |
| 536 "notifications/api/basic_app", WindowState::FULLSCREEN); | 533 "notifications/api/basic_app", WindowState::FULLSCREEN); |
| 537 ASSERT_TRUE(extension) << message_; | 534 ASSERT_TRUE(extension) << message_; |
| 538 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); | 535 ASSERT_TRUE(notification_created_listener.WaitUntilSatisfied()); |
| 539 | 536 |
| 540 // We start by making sure the window is actually focused. | 537 // We start by making sure the window is actually focused. |
| 541 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( | 538 ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| 542 GetFirstAppWindow(extension->id())->GetNativeWindow())); | 539 GetFirstAppWindow(extension->id())->GetNativeWindow())); |
| 543 | 540 |
| 544 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) | 541 ASSERT_TRUE(GetFirstAppWindow(extension->id())->IsFullscreen()) |
| 545 << "Not Fullscreen"; | 542 << "Not Fullscreen"; |
| 546 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) | 543 ASSERT_TRUE(GetFirstAppWindow(extension->id())->GetBaseWindow()->IsActive()) |
| 547 << "Not Active"; | 544 << "Not Active"; |
| 548 | 545 |
| 549 Notification* notification = GetNotificationForExtension(extension); | 546 Notification* notification = GetNotificationForExtension(extension); |
| 550 ASSERT_TRUE(notification); | 547 ASSERT_TRUE(notification); |
| 551 | 548 |
| 552 // The extension's window is being shown and focused, so its expected that | 549 // The extension's window is being shown and focused, so its expected that |
| 553 // the notification displays on top of it. | 550 // the notification displays on top of it. |
| 554 ASSERT_TRUE(notification->delegate()->ShouldDisplayOverFullscreen()); | 551 ASSERT_TRUE(notification->delegate()->ShouldDisplayOverFullscreen()); |
| 555 } | 552 } |
| 553 #endif // !defined(OS_MACOSX) | |
| OLD | NEW |