| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/mac/mac_util.h" | 5 #include "base/mac/mac_util.h" |
| 6 #include "base/memory/scoped_nsobject.h" | 6 #include "base/memory/scoped_nsobject.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "chrome/app/chrome_command_ids.h" | 8 #include "chrome/app/chrome_command_ids.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/sync/sync_ui_util.h" | 10 #include "chrome/browser/sync/sync_ui_util.h" |
| (...skipping 671 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 // Check if the window is front most or if one of its child windows (such | 682 // Check if the window is front most or if one of its child windows (such |
| 683 // as a status bubble) is front most. | 683 // as a status bubble) is front most. |
| 684 static bool IsFrontWindow(NSWindow *window) { | 684 static bool IsFrontWindow(NSWindow *window) { |
| 685 NSWindow* frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0]; | 685 NSWindow* frontmostWindow = [[NSApp orderedWindows] objectAtIndex:0]; |
| 686 return [frontmostWindow isEqual:window] || | 686 return [frontmostWindow isEqual:window] || |
| 687 [[frontmostWindow parentWindow] isEqual:window]; | 687 [[frontmostWindow parentWindow] isEqual:window]; |
| 688 } | 688 } |
| 689 | 689 |
| 690 TEST_F(BrowserWindowFullScreenControllerTest, TestFullscreenNotLion) { | 690 TEST_F(BrowserWindowFullScreenControllerTest, TestFullscreenNotLion) { |
| 691 EXPECT_FALSE([controller_ isFullscreen]); | 691 EXPECT_FALSE([controller_ isFullscreen]); |
| 692 [controller_ setFullscreen:YES]; | 692 [controller_ setFullscreen:YES url:GURL() askPermission:NO]; |
| 693 EXPECT_TRUE([controller_ isFullscreen]); | 693 EXPECT_TRUE([controller_ isFullscreen]); |
| 694 [controller_ setFullscreen:NO]; | 694 [controller_ setFullscreen:NO url:GURL() askPermission:NO]; |
| 695 EXPECT_FALSE([controller_ isFullscreen]); | 695 EXPECT_FALSE([controller_ isFullscreen]); |
| 696 } | 696 } |
| 697 | 697 |
| 698 // If this test fails, it is usually a sign that the bots have some sort of | 698 // If this test fails, it is usually a sign that the bots have some sort of |
| 699 // problem (such as a modal dialog up). This tests is a very useful canary, so | 699 // problem (such as a modal dialog up). This tests is a very useful canary, so |
| 700 // please do not mark it as flaky without first verifying that there are no bot | 700 // please do not mark it as flaky without first verifying that there are no bot |
| 701 // problems. | 701 // problems. |
| 702 TEST_F(BrowserWindowFullScreenControllerTest, TestActivateNotLion) { | 702 TEST_F(BrowserWindowFullScreenControllerTest, TestActivateNotLion) { |
| 703 EXPECT_FALSE([controller_ isFullscreen]); | 703 EXPECT_FALSE([controller_ isFullscreen]); |
| 704 | 704 |
| 705 [controller_ activate]; | 705 [controller_ activate]; |
| 706 EXPECT_TRUE(IsFrontWindow([controller_ window])); | 706 EXPECT_TRUE(IsFrontWindow([controller_ window])); |
| 707 | 707 |
| 708 [controller_ setFullscreen:YES]; | 708 [controller_ setFullscreen:YES url:GURL() askPermission:NO]; |
| 709 [controller_ activate]; | 709 [controller_ activate]; |
| 710 EXPECT_TRUE(IsFrontWindow([controller_ createFullscreenWindow])); | 710 EXPECT_TRUE(IsFrontWindow([controller_ createFullscreenWindow])); |
| 711 | 711 |
| 712 // We have to cleanup after ourselves by unfullscreening. | 712 // We have to cleanup after ourselves by unfullscreening. |
| 713 [controller_ setFullscreen:NO]; | 713 [controller_ setFullscreen:NO url:GURL() askPermission:NO]; |
| 714 } | 714 } |
| 715 | 715 |
| 716 @implementation BrowserWindowControllerFakeFullscreen | 716 @implementation BrowserWindowControllerFakeFullscreen |
| 717 // Override |-createFullscreenWindow| to return a dummy window. This isn't | 717 // Override |-createFullscreenWindow| to return a dummy window. This isn't |
| 718 // needed to pass the test, but because the dummy window is only 100x100, it | 718 // needed to pass the test, but because the dummy window is only 100x100, it |
| 719 // prevents the real fullscreen window from flashing up and taking over the | 719 // prevents the real fullscreen window from flashing up and taking over the |
| 720 // whole screen. We have to return an actual window because |-layoutSubviews| | 720 // whole screen. We have to return an actual window because |-layoutSubviews| |
| 721 // looks at the window's frame. | 721 // looks at the window's frame. |
| 722 - (NSWindow*)createFullscreenWindow { | 722 - (NSWindow*)createFullscreenWindow { |
| 723 if (testFullscreenWindow_.get()) | 723 if (testFullscreenWindow_.get()) |
| 724 return testFullscreenWindow_.get(); | 724 return testFullscreenWindow_.get(); |
| 725 | 725 |
| 726 testFullscreenWindow_.reset( | 726 testFullscreenWindow_.reset( |
| 727 [[NSWindow alloc] initWithContentRect:NSMakeRect(0,0,400,400) | 727 [[NSWindow alloc] initWithContentRect:NSMakeRect(0,0,400,400) |
| 728 styleMask:NSBorderlessWindowMask | 728 styleMask:NSBorderlessWindowMask |
| 729 backing:NSBackingStoreBuffered | 729 backing:NSBackingStoreBuffered |
| 730 defer:NO]); | 730 defer:NO]); |
| 731 return testFullscreenWindow_.get(); | 731 return testFullscreenWindow_.get(); |
| 732 } | 732 } |
| 733 @end | 733 @end |
| 734 | 734 |
| 735 /* TODO(???): test other methods of BrowserWindowController */ | 735 /* TODO(???): test other methods of BrowserWindowController */ |
| OLD | NEW |