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 #include "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/callback.h" | 6 #include "base/callback.h" |
7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 #include "ui/aura/window.h" | 46 #include "ui/aura/window.h" |
47 #include "ui/base/clipboard/clipboard.h" | 47 #include "ui/base/clipboard/clipboard.h" |
48 #include "ui/base/test/ui_controls.h" | 48 #include "ui/base/test/ui_controls.h" |
49 #include "ui/events/keycodes/keyboard_codes.h" | 49 #include "ui/events/keycodes/keyboard_codes.h" |
50 #include "ui/views/controls/button/menu_button.h" | 50 #include "ui/views/controls/button/menu_button.h" |
51 #include "ui/views/controls/menu/menu_controller.h" | 51 #include "ui/views/controls/menu/menu_controller.h" |
52 #include "ui/views/controls/menu/menu_item_view.h" | 52 #include "ui/views/controls/menu/menu_item_view.h" |
53 #include "ui/views/controls/menu/submenu_view.h" | 53 #include "ui/views/controls/menu/submenu_view.h" |
54 #include "ui/views/widget/widget.h" | 54 #include "ui/views/widget/widget.h" |
55 | 55 |
| 56 #if defined(OS_WIN) |
| 57 #include "ui/aura/window_tree_host.h" |
| 58 #endif |
| 59 |
56 using base::ASCIIToUTF16; | 60 using base::ASCIIToUTF16; |
57 using bookmarks::BookmarkModel; | 61 using bookmarks::BookmarkModel; |
58 using bookmarks::BookmarkNode; | 62 using bookmarks::BookmarkNode; |
59 using content::BrowserThread; | 63 using content::BrowserThread; |
60 using content::OpenURLParams; | 64 using content::OpenURLParams; |
61 using content::PageNavigator; | 65 using content::PageNavigator; |
62 using content::WebContents; | 66 using content::WebContents; |
63 | 67 |
64 namespace { | 68 namespace { |
65 | 69 |
(...skipping 2170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2236 }; | 2240 }; |
2237 | 2241 |
2238 #if defined(USE_OZONE) | 2242 #if defined(USE_OZONE) |
2239 // ozone bringup - http://crbug.com/401304 | 2243 // ozone bringup - http://crbug.com/401304 |
2240 #define MAYBE_ContextMenusKeyboardEscape DISABLED_ContextMenusKeyboardEscape | 2244 #define MAYBE_ContextMenusKeyboardEscape DISABLED_ContextMenusKeyboardEscape |
2241 #else | 2245 #else |
2242 #define MAYBE_ContextMenusKeyboardEscape ContextMenusKeyboardEscape | 2246 #define MAYBE_ContextMenusKeyboardEscape ContextMenusKeyboardEscape |
2243 #endif | 2247 #endif |
2244 VIEW_TEST(BookmarkBarViewTest24, MAYBE_ContextMenusKeyboardEscape) | 2248 VIEW_TEST(BookmarkBarViewTest24, MAYBE_ContextMenusKeyboardEscape) |
2245 | 2249 |
| 2250 #if defined(OS_WIN) |
| 2251 // Tests that pressing the key KEYCODE closes the menu. |
| 2252 template <ui::KeyboardCode KEYCODE> |
| 2253 class BookmarkBarViewTest25 : public BookmarkBarViewEventTestBase { |
| 2254 protected: |
| 2255 void DoTestOnMessageLoop() override { |
| 2256 // Move the mouse to the first folder on the bookmark bar and press the |
| 2257 // mouse. |
| 2258 views::LabelButton* button = GetBookmarkButton(0); |
| 2259 ui_test_utils::MoveMouseToCenterAndPress( |
| 2260 button, ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, |
| 2261 CreateEventTask(this, &BookmarkBarViewTest25::Step2)); |
| 2262 base::MessageLoop::current()->RunUntilIdle(); |
| 2263 } |
| 2264 |
| 2265 private: |
| 2266 void Step2() { |
| 2267 // Menu should be showing. |
| 2268 views::MenuItemView* menu = bb_view_->GetMenu(); |
| 2269 ASSERT_TRUE(menu != nullptr); |
| 2270 ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); |
| 2271 |
| 2272 // Send KEYCODE key event, which should close the menu. |
| 2273 ASSERT_TRUE(ui_controls::SendKeyPressNotifyWhenDone( |
| 2274 window_->GetNativeWindow(), KEYCODE, false, false, false, false, |
| 2275 CreateEventTask(this, &BookmarkBarViewTest25::Step3))); |
| 2276 } |
| 2277 |
| 2278 void Step3() { |
| 2279 // Make sure menu is not showing. |
| 2280 views::MenuItemView* menu = bb_view_->GetMenu(); |
| 2281 ASSERT_TRUE(menu == nullptr); |
| 2282 |
| 2283 Done(); |
| 2284 } |
| 2285 }; |
| 2286 |
| 2287 // Tests that pressing F10 system key closes the menu. |
| 2288 using BookmarkBarViewTest25F10 = BookmarkBarViewTest25<ui::VKEY_F10>; |
| 2289 VIEW_TEST(BookmarkBarViewTest25F10, F10ClosesMenu); |
| 2290 |
| 2291 // Tests that pressing Alt system key closes the menu. |
| 2292 using BookmarkBarViewTest25Alt = BookmarkBarViewTest25<ui::VKEY_MENU>; |
| 2293 VIEW_TEST(BookmarkBarViewTest25Alt, AltClosesMenu); |
| 2294 |
| 2295 // Tests that WM_CANCELMODE closes the menu. |
| 2296 class BookmarkBarViewTest26 : public BookmarkBarViewEventTestBase { |
| 2297 protected: |
| 2298 void DoTestOnMessageLoop() override { |
| 2299 // Move the mouse to the first folder on the bookmark bar and press the |
| 2300 // mouse. |
| 2301 views::LabelButton* button = GetBookmarkButton(0); |
| 2302 ui_test_utils::MoveMouseToCenterAndPress( |
| 2303 button, ui_controls::LEFT, ui_controls::DOWN | ui_controls::UP, |
| 2304 CreateEventTask(this, &BookmarkBarViewTest26::Step2)); |
| 2305 base::MessageLoop::current()->RunUntilIdle(); |
| 2306 } |
| 2307 |
| 2308 private: |
| 2309 void Step2() { |
| 2310 // Menu should be showing. |
| 2311 views::MenuItemView* menu = bb_view_->GetMenu(); |
| 2312 ASSERT_TRUE(menu != nullptr); |
| 2313 ASSERT_TRUE(menu->GetSubmenu()->IsShowing()); |
| 2314 |
| 2315 // Send WM_CANCELMODE, which should close the menu. The message is sent |
| 2316 // synchronously, however, we post a task to make sure that the message is |
| 2317 // processed completely before finishing the test. |
| 2318 ::SendMessage( |
| 2319 GetWidget()->GetNativeView()->GetHost()->GetAcceleratedWidget(), |
| 2320 WM_CANCELMODE, 0, 0); |
| 2321 |
| 2322 base::MessageLoop::current()->PostTask( |
| 2323 FROM_HERE, base::Bind(&BookmarkBarViewTest26::Step3, this)); |
| 2324 } |
| 2325 |
| 2326 void Step3() { |
| 2327 // Menu should not be showing anymore. |
| 2328 views::MenuItemView* menu = bb_view_->GetMenu(); |
| 2329 ASSERT_TRUE(menu == nullptr); |
| 2330 |
| 2331 Done(); |
| 2332 } |
| 2333 }; |
| 2334 |
| 2335 VIEW_TEST(BookmarkBarViewTest26, CancelModeClosesMenu); |
| 2336 #endif |
OLD | NEW |