diff options
Diffstat (limited to 'chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm')
-rw-r--r-- | chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm | 59 |
1 files changed, 54 insertions, 5 deletions
diff --git a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm index 6a293e2..65e3e93 100644 --- a/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm @@ -4,7 +4,14 @@ #import "chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller.h" -#include "chrome/browser/ui/cocoa/cocoa_test_helper.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/cocoa/browser_window_controller.h" +#include "chrome/browser/ui/cocoa/cocoa_profile_test.h" +#include "chrome/browser/tabs/tab_strip_model.h" +#include "chrome/common/chrome_notification_types.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/browser/site_instance.h" #include "testing/gtest_mac.h" #include "ui/base/models/accelerator_cocoa.h" @@ -29,14 +36,16 @@ } @end -class FullscreenExitBubbleControllerTest : public CocoaTest { +class FullscreenExitBubbleControllerTest : public CocoaProfileTest { public: virtual void SetUp() { - CocoaTest::SetUp(); + CocoaProfileTest::SetUp(); + ASSERT_TRUE(profile()); + site_instance_ = SiteInstance::CreateSiteInstance(profile()); controller_.reset( [[FullscreenExitBubbleController alloc] initWithOwner:nil - browser:nil + browser:browser() url:GURL() bubbleType:FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION]); EXPECT_TRUE([controller_ window]); @@ -45,12 +54,52 @@ class FullscreenExitBubbleControllerTest : public CocoaTest { virtual void TearDown() { [controller_ close]; controller_.reset(); - CocoaTest::TearDown(); + CocoaProfileTest::TearDown(); } + void AppendTabToStrip() { + TabContentsWrapper* tab_contents = Browser::TabContentsFactory( + profile(), site_instance_, MSG_ROUTING_NONE, + NULL, NULL); + browser()->tabstrip_model()->AppendTabContents( + tab_contents, /*foreground=*/true); + } + + scoped_refptr<SiteInstance> site_instance_; scoped_nsobject<FullscreenExitBubbleController> controller_; }; +TEST_F(FullscreenExitBubbleControllerTest, DenyExitsFullscreen) { + CreateBrowserWindow(); + AppendTabToStrip(); + TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); + { + base::mac::ScopedNSAutoreleasePool pool; + ui_test_utils::WindowedNotificationObserver fullscreen_observer( + chrome::NOTIFICATION_FULLSCREEN_CHANGED, + content::NotificationService::AllSources()); + browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); + fullscreen_observer.Wait(); + ASSERT_TRUE(browser()->window()->IsFullscreen()); + } + + NSWindow* window = browser()->window()->GetNativeHandle(); + BrowserWindowController* bwc = [BrowserWindowController + browserWindowControllerForWindow:window]; + FullscreenExitBubbleController* bubble = [bwc fullscreenExitBubbleController]; + ASSERT_TRUE(bubble); + { + ui_test_utils::WindowedNotificationObserver fullscreen_observer( + chrome::NOTIFICATION_FULLSCREEN_CHANGED, + content::NotificationService::AllSources()); + [bubble deny:nil]; + fullscreen_observer.Wait(); + } + EXPECT_FALSE([bwc fullscreenExitBubbleController]); + EXPECT_FALSE(browser()->window()->IsFullscreen()); + CloseBrowserWindow(); +} + TEST_F(FullscreenExitBubbleControllerTest, LabelWasReplaced) { EXPECT_FALSE([controller_ exitLabelPlaceholder]); EXPECT_TRUE([controller_ exitLabel]); |