OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ | 5 #ifndef CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ |
6 #define CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ | 6 #define CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ |
7 | 7 |
8 #include "chrome/browser/ui/view_ids.h" | 8 #include "chrome/browser/ui/view_ids.h" |
9 #include "chrome/test/base/ui_test_utils.h" | 9 #include "chrome/test/base/ui_test_utils.h" |
10 #include "ui/base/test/ui_controls.h" | 10 #include "ui/base/test/ui_controls.h" |
11 | 11 #include "ui/gfx/geometry/point.h" |
12 namespace gfx { | |
13 class Point; | |
14 } | |
15 | 12 |
16 #if defined(TOOLKIT_VIEWS) | 13 #if defined(TOOLKIT_VIEWS) |
17 namespace views { | 14 namespace views { |
18 class View; | 15 class View; |
19 } | 16 } |
20 #endif | 17 #endif |
21 | 18 |
22 namespace ui_test_utils { | 19 namespace ui_test_utils { |
23 | 20 |
| 21 #if defined(OS_MACOSX) |
| 22 // Represents an operation in a sequence of simulated drag and drop events |
| 23 // executed asynchronously by DragAndDropSequence. |
| 24 class DragAndDropOperation { |
| 25 public: |
| 26 enum class Type { |
| 27 Move, |
| 28 MouseDown, |
| 29 MouseUp |
| 30 }; |
| 31 |
| 32 static DragAndDropOperation Move(const gfx::Point& p); |
| 33 static DragAndDropOperation MouseDown(); |
| 34 static DragAndDropOperation MouseUp(); |
| 35 |
| 36 Type type() const { return type_; } |
| 37 const gfx::Point& point() const { return point_; } |
| 38 |
| 39 private: |
| 40 DragAndDropOperation(Type type, const gfx::Point& p) |
| 41 : type_(type), point_(p) {} |
| 42 |
| 43 Type type_; |
| 44 gfx::Point point_; |
| 45 }; |
| 46 |
| 47 // Performs a series of drag and drop operations while spinning a RunLoop on the |
| 48 // main thread. |
| 49 // BridgedNativeWidget::RunMoveLoop() creates a RunLoop, so we need to ensure |
| 50 // that sequence is finished before trying to return from the function. |
| 51 void DragAndDropSequence(const std::list<DragAndDropOperation>& operations); |
| 52 |
| 53 // Moves the mouse to the |from| position, presses left mouse button, |
| 54 // then moves mouse to the |to| position and releases left mouse button. |
| 55 // |steps| indicates number of intermediate points that are interpolated between |
| 56 // |from| and |to|. |
| 57 void DragAndDrop(const gfx::Point& from, const gfx::Point& to, int steps = 1); |
| 58 #endif // OS_MACOSX |
| 59 |
24 // Brings the native window for |browser| to the foreground. Returns true on | 60 // Brings the native window for |browser| to the foreground. Returns true on |
25 // success. | 61 // success. |
26 bool BringBrowserWindowToFront(const Browser* browser) WARN_UNUSED_RESULT; | 62 bool BringBrowserWindowToFront(const Browser* browser) WARN_UNUSED_RESULT; |
27 | 63 |
28 // Returns true if the View is focused. | 64 // Returns true if the View is focused. |
29 bool IsViewFocused(const Browser* browser, ViewID vid); | 65 bool IsViewFocused(const Browser* browser, ViewID vid); |
30 | 66 |
31 // Simulates a mouse click on a View in the browser. | 67 // Simulates a mouse click on a View in the browser. |
32 void ClickOnView(const Browser* browser, ViewID vid); | 68 void ClickOnView(const Browser* browser, ViewID vid); |
33 | 69 |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 // ui_controls_linux.cc and ui_controls_mac.cc | 179 // ui_controls_linux.cc and ui_controls_mac.cc |
144 void ClickTask(ui_controls::MouseButton button, | 180 void ClickTask(ui_controls::MouseButton button, |
145 int state, | 181 int state, |
146 const base::Closure& followup); | 182 const base::Closure& followup); |
147 | 183 |
148 } // namespace internal | 184 } // namespace internal |
149 | 185 |
150 } // namespace ui_test_utils | 186 } // namespace ui_test_utils |
151 | 187 |
152 #endif // CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ | 188 #endif // CHROME_TEST_BASE_INTERACTIVE_TEST_UTILS_H_ |
OLD | NEW |