Commit 50e8b9c8 authored by Robert Liao's avatar Robert Liao Committed by Commit Bot

Redirect Views Interactive Test Utils to Cocoa When Using the Cocoa Browser

BUG=817419

Change-Id: I27a6cbcd664f9de0a3f1c05cdb6b682c4ad9e64f
Reviewed-on: https://chromium-review.googlesource.com/963299Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543407}
parent 4ea99e0a
...@@ -4909,6 +4909,11 @@ if (!is_android) { ...@@ -4909,6 +4909,11 @@ if (!is_android) {
} }
if (is_mac) { if (is_mac) {
sources += [
"base/interactive_test_utils_cocoa.h",
"base/interactive_test_utils_cocoa.mm",
]
data_deps += [ data_deps += [
"//chrome", "//chrome",
"//chrome:chrome_framework", "//chrome:chrome_framework",
...@@ -4923,7 +4928,6 @@ if (!is_android) { ...@@ -4923,7 +4928,6 @@ if (!is_android) {
"../browser/ui/cocoa/extensions/browser_action_button_interactive_uitest.mm", "../browser/ui/cocoa/extensions/browser_action_button_interactive_uitest.mm",
"../browser/ui/cocoa/permission_bubble/permission_bubble_cocoa_interactive_uitest.mm", "../browser/ui/cocoa/permission_bubble/permission_bubble_cocoa_interactive_uitest.mm",
"../browser/ui/cocoa/translate/translate_bubble_test_utils_views_cocoa.mm", "../browser/ui/cocoa/translate/translate_bubble_test_utils_views_cocoa.mm",
"base/interactive_test_utils_cocoa.mm",
] ]
} }
} }
......
// Copyright 2018 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.
#ifndef CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_COCOA_H_
#define CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_COCOA_H_
#include "chrome/browser/ui/view_ids.h"
class Browser;
namespace ui_test_utils {
namespace internal {
// Returns true of |vid| in |browser| is focused.
bool IsViewFocusedCocoa(const Browser* browser, ViewID vid);
// Simulates a mouse click on |vid| in |browser|.
void ClickOnViewCocoa(const Browser* browser, ViewID vid);
// Moves focus to |vid| in |browser|
void FocusViewCocoa(const Browser* browser, ViewID vid);
} // namespace internal
} // namespace ui_test_utils
#endif // CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_COCOA_H_
...@@ -2,21 +2,26 @@ ...@@ -2,21 +2,26 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/interactive_test_utils_cocoa.h"
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#include "base/bind.h" #include "base/bind.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "build/buildflag.h"
#include "chrome/app/chrome_command_ids.h" #include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#import "chrome/browser/ui/cocoa/view_id_util.h" #import "chrome/browser/ui/cocoa/view_id_util.h"
#include "chrome/test/base/interactive_test_utils.h"
#include "ui/base/cocoa/cocoa_base_utils.h" #include "ui/base/cocoa/cocoa_base_utils.h"
#include "ui/base/ui_features.h"
namespace ui_test_utils { namespace ui_test_utils {
namespace internal {
namespace { namespace {
void MoveMouseToNSViewCenterAndPress( void MoveMouseToNSViewCenterAndPress(
...@@ -43,7 +48,7 @@ void MoveMouseToNSViewCenterAndPress( ...@@ -43,7 +48,7 @@ void MoveMouseToNSViewCenterAndPress(
} // namespace } // namespace
bool IsViewFocused(const Browser* browser, ViewID vid) { bool IsViewFocusedCocoa(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow(); NSWindow* window = browser->window()->GetNativeWindow();
DCHECK(window); DCHECK(window);
NSView* view = view_id_util::GetView(window, vid); NSView* view = view_id_util::GetView(window, vid);
...@@ -72,7 +77,7 @@ bool IsViewFocused(const Browser* browser, ViewID vid) { ...@@ -72,7 +77,7 @@ bool IsViewFocused(const Browser* browser, ViewID vid) {
return false; return false;
} }
void ClickOnView(const Browser* browser, ViewID vid) { void ClickOnViewCocoa(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow(); NSWindow* window = browser->window()->GetNativeWindow();
DCHECK(window); DCHECK(window);
NSView* view = view_id_util::GetView(window, vid); NSView* view = view_id_util::GetView(window, vid);
...@@ -85,12 +90,28 @@ void ClickOnView(const Browser* browser, ViewID vid) { ...@@ -85,12 +90,28 @@ void ClickOnView(const Browser* browser, ViewID vid) {
content::RunMessageLoop(); content::RunMessageLoop();
} }
void FocusViewCocoa(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow();
DCHECK(window);
NSView* view = view_id_util::GetView(window, vid);
DCHECK(view);
[window makeFirstResponder:view];
}
} // namespace internal
#if !BUILDFLAG(MAC_VIEWS_BROWSER)
bool IsViewFocused(const Browser* browser, ViewID vid) {
return internal::IsViewFocusedCocoa(browser, vid);
}
void ClickOnView(const Browser* browser, ViewID vid) {
internal::ClickOnViewCocoa(browser, vid);
}
void FocusView(const Browser* browser, ViewID vid) { void FocusView(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow(); internal::FocusViewCocoa(browser, vid);
DCHECK(window); }
NSView* view = view_id_util::GetView(window, vid); #endif // !BUILDFLAG(MAC_VIEWS_BROWSER)
DCHECK(view);
[window makeFirstResponder:view];
}
} // namespace ui_test_utils } // namespace ui_test_utils
...@@ -5,13 +5,25 @@ ...@@ -5,13 +5,25 @@
#include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/interactive_test_utils.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "build/buildflag.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views_mode_controller.h"
#include "ui/base/ui_features.h"
#include "ui/views/focus/focus_manager.h" #include "ui/views/focus/focus_manager.h"
#if BUILDFLAG(MAC_VIEWS_BROWSER)
#include "chrome/test/base/interactive_test_utils_cocoa.h"
#endif
namespace ui_test_utils { namespace ui_test_utils {
bool IsViewFocused(const Browser* browser, ViewID vid) { bool IsViewFocused(const Browser* browser, ViewID vid) {
#if BUILDFLAG(MAC_VIEWS_BROWSER)
if (views_mode_controller::IsViewsBrowserCocoa())
return internal::IsViewFocusedCocoa(browser, vid);
#endif
BrowserWindow* browser_window = browser->window(); BrowserWindow* browser_window = browser->window();
DCHECK(browser_window); DCHECK(browser_window);
gfx::NativeWindow window = browser_window->GetNativeWindow(); gfx::NativeWindow window = browser_window->GetNativeWindow();
...@@ -25,6 +37,11 @@ bool IsViewFocused(const Browser* browser, ViewID vid) { ...@@ -25,6 +37,11 @@ bool IsViewFocused(const Browser* browser, ViewID vid) {
} }
void ClickOnView(const Browser* browser, ViewID vid) { void ClickOnView(const Browser* browser, ViewID vid) {
#if BUILDFLAG(MAC_VIEWS_BROWSER)
if (views_mode_controller::IsViewsBrowserCocoa())
return internal::ClickOnViewCocoa(browser, vid);
#endif
views::View* view = views::View* view =
BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid); BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid);
DCHECK(view); DCHECK(view);
...@@ -35,6 +52,11 @@ void ClickOnView(const Browser* browser, ViewID vid) { ...@@ -35,6 +52,11 @@ void ClickOnView(const Browser* browser, ViewID vid) {
} }
void FocusView(const Browser* browser, ViewID vid) { void FocusView(const Browser* browser, ViewID vid) {
#if BUILDFLAG(MAC_VIEWS_BROWSER)
if (views_mode_controller::IsViewsBrowserCocoa())
return internal::FocusViewCocoa(browser, vid);
#endif
views::View* view = views::View* view =
BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid); BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid);
DCHECK(view); DCHECK(view);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment