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

Unified Diff: chrome/browser/ui/cocoa/panels/panel_cocoa_browsertest.mm

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 4 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/panels/panel_cocoa_browsertest.mm
diff --git a/chrome/browser/ui/cocoa/panels/panel_cocoa_browsertest.mm b/chrome/browser/ui/cocoa/panels/panel_cocoa_browsertest.mm
deleted file mode 100644
index 8b60cf1f9c7cd8b80f4070e1ed3e170e13979db0..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/cocoa/panels/panel_cocoa_browsertest.mm
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import <Cocoa/Cocoa.h>
-
-#include "base/location.h"
-#import "base/mac/scoped_nsobject.h"
-#include "base/run_loop.h"
-#include "base/single_thread_task_runner.h"
-#include "base/test/test_timeouts.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "chrome/app/chrome_command_ids.h"
-#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/panels/base_panel_browser_test.h"
-#include "chrome/browser/ui/panels/panel.h"
-#include "content/public/test/test_utils.h"
-
-// Class that spins a run loop until an NSWindow gains key status.
-@interface CocoaActivationWaiter : NSObject {
- @private
- base::RunLoop* runLoop_;
- BOOL observed_;
-}
-
-- (id)initWithWindow:(NSWindow*)window;
-- (void)windowDidBecomeKey:(NSNotification*)notification;
-- (BOOL)waitUntilActive;
-
-@end
-
-@implementation CocoaActivationWaiter
-
-- (id)initWithWindow:(NSWindow*)window {
- EXPECT_FALSE([window isKeyWindow]);
- if ((self = [super init])) {
- [[NSNotificationCenter defaultCenter]
- addObserver:self
- selector:@selector(windowDidBecomeKey:)
- name:NSWindowDidBecomeKeyNotification
- object:window];
- }
- return self;
-}
-
-- (void)dealloc {
- [[NSNotificationCenter defaultCenter] removeObserver:self];
- [super dealloc];
-}
-
-- (void)windowDidBecomeKey:(NSNotification*)notification {
- observed_ = YES;
- if (runLoop_)
- runLoop_->Quit();
-}
-
-- (BOOL)waitUntilActive {
- if (observed_)
- return YES;
-
- base::RunLoop runLoop;
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE, runLoop.QuitClosure(), TestTimeouts::action_timeout());
- runLoop_ = &runLoop;
- runLoop.Run();
- runLoop_ = nullptr;
- return observed_;
-}
-
-@end
-
-typedef BasePanelBrowserTest PanelCocoaBrowserTest;
-
-IN_PROC_BROWSER_TEST_F(PanelCocoaBrowserTest, MenuItems) {
- Panel* panel = CreatePanel("Panel");
-
- // Close main tabbed window.
- content::WindowedNotificationObserver signal(
- chrome::NOTIFICATION_BROWSER_CLOSED,
- content::Source<Browser>(browser()));
- chrome::CloseWindow(browser());
- signal.Wait();
-
- // There should be no browser windows.
- EXPECT_EQ(0u, chrome::GetTotalBrowserCount());
-
- // There should be one panel.
- EXPECT_EQ(1, PanelManager::GetInstance()->num_panels());
-
- NSMenu* mainMenu = [NSApp mainMenu];
- EXPECT_TRUE(mainMenu);
-
- // Chrome(0) File(1) ....
- // Get File submenu. It doesn't have a command id, fetch it by index.
- NSMenu* fileSubmenu = [[[mainMenu itemArray] objectAtIndex:1] submenu];
- EXPECT_TRUE(fileSubmenu);
- [fileSubmenu update];
-
- // Verify the items normally enabled for "all windows closed" case are
- // also enabled when there is a panel but no browser windows on the screen.
- NSMenuItem* item = [fileSubmenu itemWithTag:IDC_NEW_TAB];
- EXPECT_TRUE(item);
- EXPECT_TRUE([item isEnabled]);
-
- item = [fileSubmenu itemWithTag:IDC_NEW_WINDOW];
- EXPECT_TRUE(item);
- EXPECT_TRUE([item isEnabled]);
-
- item = [fileSubmenu itemWithTag:IDC_NEW_INCOGNITO_WINDOW];
- EXPECT_TRUE(item);
- EXPECT_TRUE([item isEnabled]);
-
- NSMenu* historySubmenu = [[mainMenu itemWithTag:IDC_HISTORY_MENU] submenu];
- EXPECT_TRUE(historySubmenu);
- [historySubmenu update];
-
- // These should be disabled.
- item = [historySubmenu itemWithTag:IDC_HOME];
- EXPECT_TRUE(item);
- EXPECT_FALSE([item isEnabled]);
-
- item = [historySubmenu itemWithTag:IDC_BACK];
- EXPECT_TRUE(item);
- EXPECT_FALSE([item isEnabled]);
-
- item = [historySubmenu itemWithTag:IDC_FORWARD];
- EXPECT_TRUE(item);
- EXPECT_FALSE([item isEnabled]);
-
- // 'Close Window' should be enabled because the remaining Panel is a Responder
- // which implements performClose:, the 'action' of 'Close Window'.
- for (NSMenuItem *i in [fileSubmenu itemArray]) {
- if ([i action] == @selector(performClose:)) {
- item = i;
- break;
- }
- }
- EXPECT_TRUE(item);
- EXPECT_TRUE([item isEnabled]);
-
- panel->Close();
-}
-
-// Test that panels do not become active when closing a window, even when a
-// panel is otherwise the topmost window.
-IN_PROC_BROWSER_TEST_F(PanelCocoaBrowserTest, InactivePanelsNotActivated) {
- // Note CreateDockedPanel() sets wait_for_fully_created and SHOW_AS_ACTIVE,
- // so the following spins a run loop until the respective panel is activated.
- Panel* docked_panel_1 = CreateDockedPanel("Panel1", gfx::Rect());
- EXPECT_TRUE([docked_panel_1->GetNativeWindow() isKeyWindow]);
-
- // Activate the browser. Otherwise closing the second panel will correctly
- // raise the first panel since panels are allowed to become key if they were
- // actually the most recently focused window (as opposed to being merely the
- // topmost window on the z-order stack).
- NSWindow* browser_window = browser()->window()->GetNativeWindow();
- base::scoped_nsobject<CocoaActivationWaiter> waiter(
- [[CocoaActivationWaiter alloc] initWithWindow:browser_window]);
- browser()->window()->Activate();
- EXPECT_TRUE([waiter waitUntilActive]);
-
- // Creating a second panel will activate it (and make it topmost).
- Panel* docked_panel_2 = CreateDockedPanel("Panel2", gfx::Rect());
- EXPECT_TRUE([docked_panel_2->GetNativeWindow() isKeyWindow]);
-
- // Verify the assumptions that the panels are actually topmost.
- EXPECT_EQ(docked_panel_2->GetNativeWindow(),
- [[NSApp orderedWindows] objectAtIndex:0]);
- EXPECT_EQ(docked_panel_1->GetNativeWindow(),
- [[NSApp orderedWindows] objectAtIndex:1]);
-
- // Close the second panel and wait for the browser to become active.
- waiter.reset([[CocoaActivationWaiter alloc] initWithWindow:browser_window]);
- docked_panel_2->Close();
-
- EXPECT_TRUE([waiter waitUntilActive]);
- EXPECT_TRUE([browser_window isKeyWindow]);
-}
« no previous file with comments | « chrome/browser/ui/cocoa/panels/panel_cocoa.mm ('k') | chrome/browser/ui/cocoa/panels/panel_cocoa_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698