| Index: chrome/test/ui_test_utils_linux.cc
|
| ===================================================================
|
| --- chrome/test/ui_test_utils_linux.cc (revision 0)
|
| +++ chrome/test/ui_test_utils_linux.cc (revision 0)
|
| @@ -0,0 +1,72 @@
|
| +// Copyright (c) 2009 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.
|
| +
|
| +#include "chrome/test/ui_test_utils.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "base/message_loop.h"
|
| +#include "chrome/browser/browser.h"
|
| +#include "chrome/browser/browser_window.h"
|
| +#include "chrome/browser/automation/ui_controls.h"
|
| +#if defined(TOOLKIT_VIEWS)
|
| +#include "chrome/browser/views/frame/browser_view.h"
|
| +#endif
|
| +
|
| +#include "chrome/browser/gtk/view_id_util.h"
|
| +
|
| +namespace ui_test_utils {
|
| +
|
| +namespace {
|
| +
|
| +// Check if the focused widget for |root| is |target| or a child of |target|.
|
| +static bool IsWidgetInFocusChain(GtkWidget* root, GtkWidget* target) {
|
| + GtkWidget* iter = root;
|
| +
|
| + while (iter) {
|
| + if (iter == target)
|
| + return true;
|
| +
|
| + if (!GTK_IS_CONTAINER(iter))
|
| + return false;
|
| +
|
| + iter = GTK_CONTAINER(iter)->focus_child;
|
| + }
|
| +
|
| + return false;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +bool IsViewFocused(const Browser* browser, ViewID vid) {
|
| + BrowserWindow* browser_window = browser->window();
|
| + DCHECK(browser_window);
|
| + gfx::NativeWindow window = browser_window->GetNativeHandle();
|
| + DCHECK(window);
|
| + GtkWidget* widget = ViewIDUtil::GetWidget(GTK_WIDGET(window), vid);
|
| + DCHECK(widget);
|
| + return IsWidgetInFocusChain(GTK_WIDGET(window), widget);
|
| +}
|
| +
|
| +void ClickOnView(const Browser* browser, ViewID vid) {
|
| + BrowserWindow* browser_window = browser->window();
|
| + DCHECK(browser_window);
|
| +#if defined(TOOLKIT_VIEWS)
|
| + views::View* view =
|
| + reinterpret_cast<BrowserView*>(browser_window)->GetViewByID(vid);
|
| +#else
|
| + gfx::NativeWindow window = browser_window->GetNativeHandle();
|
| + DCHECK(window);
|
| + GtkWidget* view = ViewIDUtil::GetWidget(GTK_WIDGET(window), vid);
|
| +#endif
|
| +
|
| + DCHECK(view);
|
| + ui_controls::MoveMouseToCenterAndPress(
|
| + view,
|
| + ui_controls::LEFT,
|
| + ui_controls::DOWN | ui_controls::UP,
|
| + new MessageLoop::QuitTask());
|
| + RunMessageLoop();
|
| +}
|
| +
|
| +} // namespace ui_test_utils
|
|
|
| Property changes on: chrome/test/ui_test_utils_linux.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|