Chromium Code Reviews| Index: chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_browser_test.mm |
| diff --git a/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_browser_test.mm b/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_browser_test.mm |
| index ba507dd710b9faa6366fdf8b3adc6fa043eacba3..561dfbbc6008a458a1efb2180a363fabb11bb6d1 100644 |
| --- a/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_browser_test.mm |
| +++ b/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_browser_test.mm |
| @@ -3,36 +3,84 @@ |
| // found in the LICENSE file. |
| #include "chrome/browser/ui/browser.h" |
| -#include "chrome/browser/ui/browser_window.h" |
| -#import "chrome/browser/ui/cocoa/browser_window_controller.h" |
| +#include "chrome/browser/ui/browser_commands_mac.h" |
| #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa.h" |
| #import "chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.h" |
| +#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h" |
| +#include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/browser/ui/website_settings/permission_bubble_browser_test_util.h" |
| +#include "chrome/common/pref_names.h" |
| +#include "components/prefs/pref_service.h" |
| +#include "content/public/test/test_utils.h" |
| #import "testing/gtest_mac.h" |
| -#import "ui/base/cocoa/fullscreen_window_manager.h" |
| +#include "ui/base/test/scoped_fake_nswindow_fullscreen.h" |
| IN_PROC_BROWSER_TEST_F(PermissionBubbleBrowserTest, HasLocationBarByDefault) { |
| PermissionBubbleCocoa bubble(browser()); |
| bubble.SetDelegate(test_delegate()); |
| bubble.Show(requests(), accept_states()); |
| - EXPECT_TRUE([bubble.bubbleController_ hasLocationBar]); |
| + EXPECT_TRUE([bubble.bubbleController_ hasVisibleLocationBar]); |
| bubble.Hide(); |
| } |
| -IN_PROC_BROWSER_TEST_F(PermissionBubbleBrowserTest, FullscreenHasLocationBar) { |
| +IN_PROC_BROWSER_TEST_F(PermissionBubbleBrowserTest, |
| + BrowserFullscreenHasLocationBar) { |
| + ui::test::ScopedFakeNSWindowFullscreen faker; |
| + |
| PermissionBubbleCocoa bubble(browser()); |
| bubble.SetDelegate(test_delegate()); |
| bubble.Show(requests(), accept_states()); |
| + EXPECT_TRUE([bubble.bubbleController_ hasVisibleLocationBar]); |
| + |
| + FullscreenController* controller = |
| + browser()->exclusive_access_manager()->fullscreen_controller(); |
| + controller->ToggleBrowserFullscreenMode(); |
| + while (faker.IsInTransition()) |
|
tapted
2016/04/22 05:27:40
This looks like it would spin on the CPU - I don't
benwells
2016/04/28 07:32:43
Done.
|
| + content::RunAllPendingInMessageLoop(); |
| + |
| + // The location bar should be visible if the toolbar is set to be visible in |
| + // fullscreen mode. |
| + PrefService* prefs = browser()->profile()->GetPrefs(); |
| + bool show_toolbar = prefs->GetBoolean(prefs::kShowFullscreenToolbar); |
| + EXPECT_EQ(show_toolbar, [bubble.bubbleController_ hasVisibleLocationBar]); |
| + |
| + // Toggle the value of the preference. |
| + chrome::ToggleFullscreenToolbar(browser()); |
| + EXPECT_EQ(!show_toolbar, [bubble.bubbleController_ hasVisibleLocationBar]); |
| + |
| + // Put the setting back the way it started. |
| + chrome::ToggleFullscreenToolbar(browser()); |
| + controller->ToggleBrowserFullscreenMode(); |
| + while (faker.IsInTransition()) |
| + content::RunAllPendingInMessageLoop(); |
| + |
| + EXPECT_TRUE([bubble.bubbleController_ hasVisibleLocationBar]); |
| + bubble.Hide(); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(PermissionBubbleBrowserTest, |
| + TabFullscreenHasLocationBar) { |
| + ui::test::ScopedFakeNSWindowFullscreen faker; |
| + |
| + PermissionBubbleCocoa bubble(browser()); |
| + bubble.SetDelegate(test_delegate()); |
| + bubble.Show(requests(), accept_states()); |
| + EXPECT_TRUE([bubble.bubbleController_ hasVisibleLocationBar]); |
| + |
| + FullscreenController* controller = |
| + browser()->exclusive_access_manager()->fullscreen_controller(); |
| + controller->EnterFullscreenModeForTab( |
| + browser()->tab_strip_model()->GetActiveWebContents(), GURL()); |
| + while (faker.IsInTransition()) |
| + content::RunAllPendingInMessageLoop(); |
| + |
| + EXPECT_FALSE([bubble.bubbleController_ hasVisibleLocationBar]); |
| + controller->ExitFullscreenModeForTab( |
| + browser()->tab_strip_model()->GetActiveWebContents()); |
| + while (faker.IsInTransition()) |
| + content::RunAllPendingInMessageLoop(); |
| - NSWindow* window = browser()->window()->GetNativeWindow(); |
| - base::scoped_nsobject<FullscreenWindowManager> manager( |
| - [[FullscreenWindowManager alloc] initWithWindow:window |
| - desiredScreen:[NSScreen mainScreen]]); |
| - EXPECT_TRUE([bubble.bubbleController_ hasLocationBar]); |
| - [manager enterFullscreenMode]; |
| - EXPECT_TRUE([bubble.bubbleController_ hasLocationBar]); |
| - [manager exitFullscreenMode]; |
| - EXPECT_TRUE([bubble.bubbleController_ hasLocationBar]); |
| + EXPECT_TRUE([bubble.bubbleController_ hasVisibleLocationBar]); |
| bubble.Hide(); |
| } |
| @@ -41,7 +89,7 @@ IN_PROC_BROWSER_TEST_F(PermissionBubbleBrowserTest, AppHasNoLocationBar) { |
| PermissionBubbleCocoa bubble(app_browser); |
| bubble.SetDelegate(test_delegate()); |
| bubble.Show(requests(), accept_states()); |
| - EXPECT_FALSE([bubble.bubbleController_ hasLocationBar]); |
| + EXPECT_FALSE([bubble.bubbleController_ hasVisibleLocationBar]); |
| bubble.Hide(); |
| } |
| @@ -52,6 +100,6 @@ IN_PROC_BROWSER_TEST_F(PermissionBubbleKioskBrowserTest, |
| PermissionBubbleCocoa bubble(browser()); |
| bubble.SetDelegate(test_delegate()); |
| bubble.Show(requests(), accept_states()); |
| - EXPECT_FALSE([bubble.bubbleController_ hasLocationBar]); |
| + EXPECT_FALSE([bubble.bubbleController_ hasVisibleLocationBar]); |
| bubble.Hide(); |
| } |