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) {
}
if (is_mac) {
sources += [
"base/interactive_test_utils_cocoa.h",
"base/interactive_test_utils_cocoa.mm",
]
data_deps += [
"//chrome",
"//chrome:chrome_framework",
......@@ -4923,7 +4928,6 @@ if (!is_android) {
"../browser/ui/cocoa/extensions/browser_action_button_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",
"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 @@
// Use of this source code is governed by a BSD-style license that can be
// 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>
#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
#include "build/buildflag.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.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/ui_features.h"
namespace ui_test_utils {
namespace internal {
namespace {
void MoveMouseToNSViewCenterAndPress(
......@@ -43,7 +48,7 @@ void MoveMouseToNSViewCenterAndPress(
} // namespace
bool IsViewFocused(const Browser* browser, ViewID vid) {
bool IsViewFocusedCocoa(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow();
DCHECK(window);
NSView* view = view_id_util::GetView(window, vid);
......@@ -72,7 +77,7 @@ bool IsViewFocused(const Browser* browser, ViewID vid) {
return false;
}
void ClickOnView(const Browser* browser, ViewID vid) {
void ClickOnViewCocoa(const Browser* browser, ViewID vid) {
NSWindow* window = browser->window()->GetNativeWindow();
DCHECK(window);
NSView* view = view_id_util::GetView(window, vid);
......@@ -85,12 +90,28 @@ void ClickOnView(const Browser* browser, ViewID vid) {
content::RunMessageLoop();
}
void FocusView(const Browser* browser, ViewID vid) {
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) {
internal::FocusViewCocoa(browser, vid);
}
#endif // !BUILDFLAG(MAC_VIEWS_BROWSER)
} // namespace ui_test_utils
......@@ -5,13 +5,25 @@
#include "chrome/test/base/interactive_test_utils.h"
#include "base/message_loop/message_loop.h"
#include "build/buildflag.h"
#include "chrome/browser/ui/browser.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"
#if BUILDFLAG(MAC_VIEWS_BROWSER)
#include "chrome/test/base/interactive_test_utils_cocoa.h"
#endif
namespace ui_test_utils {
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();
DCHECK(browser_window);
gfx::NativeWindow window = browser_window->GetNativeWindow();
......@@ -25,6 +37,11 @@ bool IsViewFocused(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 =
BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid);
DCHECK(view);
......@@ -35,6 +52,11 @@ void ClickOnView(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 =
BrowserView::GetBrowserViewForBrowser(browser)->GetViewByID(vid);
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