summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm
diff options
context:
space:
mode:
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.mm59
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]);