Chromium Code Reviews| Index: chrome/browser/ui/cocoa/fullscreen_exit_bubble_controller_unittest.mm |
| 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 6a293e2c1e079501adf1324fdda53486f9784512..353d528ef43ad1c8ea4a1477300e5cd5e7290eb7 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) { |
|
(unused - use chromium)
2011/10/28 04:46:34
Nice test!
|
| + 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* fseb = [bwc fullscreenExitBubbleController]; |
|
(unused - use chromium)
2011/10/28 04:46:34
no abbreviations; maybe just `bubble`. (`bwc` abov
jeremya
2011/10/28 06:43:37
Done.
|
| + ASSERT_TRUE(fseb); |
| + { |
| + ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| + chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| + content::NotificationService::AllSources()); |
| + [fseb 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]); |