| Index: chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac_browsertest.mm
|
| diff --git a/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac_browsertest.mm b/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac_browsertest.mm
|
| index e0960092993c68f73b642a26e2288e69ce8fea60..261032155b8c51fa3a8b93ae11549a46f5521a05 100644
|
| --- a/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac_browsertest.mm
|
| +++ b/chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac_browsertest.mm
|
| @@ -19,6 +19,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser_iterator.h"
|
| #include "chrome/browser/ui/browser_window.h"
|
| +#import "chrome/browser/ui/test/scoped_fake_nswindow_main_status.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "extensions/browser/app_window/app_window_registry.h"
|
| #include "extensions/browser/app_window/native_app_window.h"
|
| @@ -26,38 +27,8 @@
|
| #include "extensions/common/extension.h"
|
| #include "extensions/test/extension_test_message_listener.h"
|
|
|
| -// Donates a testing implementation of [NSWindow isMainWindow].
|
| -@interface IsMainWindowDonorForWindow : NSObject
|
| -@end
|
| -
|
| namespace {
|
|
|
| -// Simulates a particular NSWindow to report YES for [NSWindow isMainWindow].
|
| -// This allows test coverage of code relying on window focus changes without
|
| -// resorting to an interactive_ui_test.
|
| -class ScopedFakeWindowMainStatus {
|
| - public:
|
| - ScopedFakeWindowMainStatus(NSWindow* window)
|
| - : swizzler_([NSWindow class],
|
| - [IsMainWindowDonorForWindow class],
|
| - @selector(isMainWindow)) {
|
| - DCHECK(!window_);
|
| - window_ = window;
|
| - }
|
| -
|
| - ~ScopedFakeWindowMainStatus() { window_ = nil; }
|
| -
|
| - static NSWindow* GetMainWindow() { return window_; }
|
| -
|
| - private:
|
| - static NSWindow* window_;
|
| - base::mac::ScopedObjCClassSwizzler swizzler_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedFakeWindowMainStatus);
|
| -};
|
| -
|
| -NSWindow* ScopedFakeWindowMainStatus::window_ = nil;
|
| -
|
| class AppShimMenuControllerBrowserTest
|
| : public extensions::PlatformAppBrowserTest {
|
| protected:
|
| @@ -208,7 +179,8 @@ IN_PROC_BROWSER_TEST_F(AppShimMenuControllerBrowserTest,
|
| // Start with app1 active.
|
| SetUpApps(PACKAGED_1);
|
| extensions::AppWindow* app_1_app_window = FirstWindowForApp(app_1_);
|
| - ScopedFakeWindowMainStatus app_1_is_main(app_1_app_window->GetNativeWindow());
|
| + ScopedFakeNSWindowMainStatus app_1_is_main(
|
| + app_1_app_window->GetNativeWindow());
|
|
|
| [[NSNotificationCenter defaultCenter]
|
| postNotificationName:NSWindowDidBecomeMainNotification
|
| @@ -275,7 +247,7 @@ IN_PROC_BROWSER_TEST_F(AppShimMenuControllerBrowserTest,
|
| [[NSNotificationCenter defaultCenter]
|
| postNotificationName:NSWindowDidBecomeMainNotification
|
| object:app_1_window];
|
| - ScopedFakeWindowMainStatus app_1_is_main(app_1_window);
|
| + ScopedFakeNSWindowMainStatus app_1_is_main(app_1_window);
|
|
|
| CheckHasAppMenus(app_1_);
|
| ExtensionService::UninstallExtensionHelper(
|
| @@ -286,10 +258,3 @@ IN_PROC_BROWSER_TEST_F(AppShimMenuControllerBrowserTest,
|
| }
|
|
|
| } // namespace
|
| -
|
| -@implementation IsMainWindowDonorForWindow
|
| -- (BOOL)isMainWindow {
|
| - NSWindow* selfAsWindow = base::mac::ObjCCastStrict<NSWindow>(self);
|
| - return selfAsWindow == ScopedFakeWindowMainStatus::GetMainWindow();
|
| -}
|
| -@end
|
|
|