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

Unified Diff: chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm

Issue 12018007: Refactor BrowserWindow fullscreen and presentation on Mac to be consistent with other platforms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge TOT Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm b/chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm
index 402aa79ada477528e553a584254df890fef5564d..77d8b0d2c3414ddcbae04d02cb7eeb3e17d244f7 100644
--- a/chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm
+++ b/chrome/browser/ui/cocoa/browser_window_cocoa_unittest.mm
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/mac/mac_util.h"
#include "base/memory/scoped_nsobject.h"
#include "base/memory/scoped_ptr.h"
#include "base/string_util.h"
@@ -48,20 +49,29 @@ TEST_F(BrowserWindowCocoaTest, TestBookmarkBarVisible) {
}
@interface FakeController : NSWindowController {
- BOOL fullscreen_;
+ enum { kNormal, kFullscreen, kPresentation } windowState_;
}
@end
@implementation FakeController
-- (void)enterFullscreenForURL:(const GURL&)url
- bubbleType:(FullscreenExitBubbleType)bubbleType {
- fullscreen_ = YES;
+- (void)enterFullscreen {
+ windowState_ = kFullscreen;
}
- (void)exitFullscreen {
- fullscreen_ = NO;
+ windowState_ = kNormal;
}
- (BOOL)isFullscreen {
- return fullscreen_;
+ return windowState_ != kNormal;
+}
+- (void)enterPresentationModeForURL:(const GURL&)url
+ bubbleType:(FullscreenExitBubbleType)bubbleType {
+ windowState_ = kPresentation;
+}
+- (void)exitPresentationMode {
+ windowState_ = kNormal;
+}
+- (BOOL)inPresentationMode {
+ return windowState_ == kPresentation;
}
@end
@@ -76,7 +86,28 @@ TEST_F(BrowserWindowCocoaTest, TestFullscreen) {
EXPECT_FALSE(bwc->IsFullscreen());
bwc->EnterFullscreen(GURL(), FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION);
- EXPECT_TRUE(bwc->IsFullscreen());
+ EXPECT_FALSE(bwc->IsFullscreenWithChrome());
+ EXPECT_TRUE(bwc->IsFullscreenWithoutChrome());
+ bwc->ExitFullscreen();
+ EXPECT_FALSE(bwc->IsFullscreen());
+ [fake_controller close];
+}
+
+TEST_F(BrowserWindowCocoaTest, TestFullscreenWithChrome) {
+ if (!base::mac::IsOSLionOrLater())
+ return;
+ // Wrap the FakeController in a scoped_nsobject instead of autoreleasing in
+ // windowWillClose: because we never actually open a window in this test (so
+ // windowWillClose: never gets called).
+ scoped_nsobject<FakeController> fake_controller(
+ [[FakeController alloc] init]);
+ scoped_ptr<BrowserWindowCocoa> bwc(new BrowserWindowCocoa(
+ browser(), static_cast<BrowserWindowController*>(fake_controller.get())));
+
+ EXPECT_FALSE(bwc->IsFullscreen());
+ bwc->EnterFullscreenWithChrome();
+ EXPECT_TRUE(bwc->IsFullscreenWithChrome());
+ EXPECT_FALSE(bwc->IsFullscreenWithoutChrome());
bwc->ExitFullscreen();
EXPECT_FALSE(bwc->IsFullscreen());
[fake_controller close];
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_cocoa.mm ('k') | chrome/browser/ui/cocoa/browser_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698