OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ui/views/controls/menu/menu_controller.h" | 5 #include "ui/views/controls/menu/menu_controller.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "ui/aura/scoped_window_targeter.h" | 8 #include "ui/aura/scoped_window_targeter.h" |
9 #include "ui/aura/window.h" | 9 #include "ui/aura/window.h" |
10 #include "ui/events/event_targeter.h" | 10 #include "ui/events/event_targeter.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 #include "ui/events/event.h" | 25 #include "ui/events/event.h" |
26 #endif | 26 #endif |
27 | 27 |
28 namespace views { | 28 namespace views { |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 class TestMenuItemView : public MenuItemView { | 32 class TestMenuItemView : public MenuItemView { |
33 public: | 33 public: |
34 TestMenuItemView() : MenuItemView(NULL) {} | 34 TestMenuItemView() : MenuItemView(NULL) {} |
35 virtual ~TestMenuItemView() {} | 35 ~TestMenuItemView() override {} |
36 | 36 |
37 private: | 37 private: |
38 DISALLOW_COPY_AND_ASSIGN(TestMenuItemView); | 38 DISALLOW_COPY_AND_ASSIGN(TestMenuItemView); |
39 }; | 39 }; |
40 | 40 |
41 class TestPlatformEventSource : public ui::PlatformEventSource { | 41 class TestPlatformEventSource : public ui::PlatformEventSource { |
42 public: | 42 public: |
43 TestPlatformEventSource() { | 43 TestPlatformEventSource() { |
44 #if defined(USE_X11) | 44 #if defined(USE_X11) |
45 ui::DeviceDataManagerX11::CreateInstance(); | 45 ui::DeviceDataManagerX11::CreateInstance(); |
46 #endif | 46 #endif |
47 } | 47 } |
48 virtual ~TestPlatformEventSource() {} | 48 ~TestPlatformEventSource() override {} |
49 | 49 |
50 uint32_t Dispatch(const ui::PlatformEvent& event) { | 50 uint32_t Dispatch(const ui::PlatformEvent& event) { |
51 return DispatchEvent(event); | 51 return DispatchEvent(event); |
52 } | 52 } |
53 | 53 |
54 private: | 54 private: |
55 DISALLOW_COPY_AND_ASSIGN(TestPlatformEventSource); | 55 DISALLOW_COPY_AND_ASSIGN(TestPlatformEventSource); |
56 }; | 56 }; |
57 | 57 |
58 class TestNullTargeter : public ui::EventTargeter { | 58 class TestNullTargeter : public ui::EventTargeter { |
59 public: | 59 public: |
60 TestNullTargeter() {} | 60 TestNullTargeter() {} |
61 virtual ~TestNullTargeter() {} | 61 ~TestNullTargeter() override {} |
62 | 62 |
63 virtual ui::EventTarget* FindTargetForEvent(ui::EventTarget* root, | 63 ui::EventTarget* FindTargetForEvent(ui::EventTarget* root, |
64 ui::Event* event) override { | 64 ui::Event* event) override { |
65 return NULL; | 65 return NULL; |
66 } | 66 } |
67 | 67 |
68 private: | 68 private: |
69 DISALLOW_COPY_AND_ASSIGN(TestNullTargeter); | 69 DISALLOW_COPY_AND_ASSIGN(TestNullTargeter); |
70 }; | 70 }; |
71 | 71 |
72 class TestDispatcherClient : public aura::client::DispatcherClient { | 72 class TestDispatcherClient : public aura::client::DispatcherClient { |
73 public: | 73 public: |
74 TestDispatcherClient() : dispatcher_(NULL) {} | 74 TestDispatcherClient() : dispatcher_(NULL) {} |
75 virtual ~TestDispatcherClient() {} | 75 ~TestDispatcherClient() override {} |
76 | 76 |
77 base::MessagePumpDispatcher* dispatcher() { | 77 base::MessagePumpDispatcher* dispatcher() { |
78 return dispatcher_; | 78 return dispatcher_; |
79 } | 79 } |
80 | 80 |
81 // aura::client::DispatcherClient: | 81 // aura::client::DispatcherClient: |
82 virtual void PrepareNestedLoopClosures( | 82 void PrepareNestedLoopClosures(base::MessagePumpDispatcher* dispatcher, |
83 base::MessagePumpDispatcher* dispatcher, | 83 base::Closure* run_closure, |
84 base::Closure* run_closure, | 84 base::Closure* quit_closure) override { |
85 base::Closure* quit_closure) override { | |
86 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop()); | 85 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop()); |
87 *quit_closure = run_loop->QuitClosure(); | 86 *quit_closure = run_loop->QuitClosure(); |
88 *run_closure = base::Bind(&TestDispatcherClient::RunNestedDispatcher, | 87 *run_closure = base::Bind(&TestDispatcherClient::RunNestedDispatcher, |
89 base::Unretained(this), | 88 base::Unretained(this), |
90 base::Passed(&run_loop), | 89 base::Passed(&run_loop), |
91 dispatcher); | 90 dispatcher); |
92 } | 91 } |
93 | 92 |
94 private: | 93 private: |
95 void RunNestedDispatcher(scoped_ptr<base::RunLoop> run_loop, | 94 void RunNestedDispatcher(scoped_ptr<base::RunLoop> run_loop, |
96 base::MessagePumpDispatcher* dispatcher) { | 95 base::MessagePumpDispatcher* dispatcher) { |
97 base::AutoReset<base::MessagePumpDispatcher*> reset_dispatcher(&dispatcher_, | 96 base::AutoReset<base::MessagePumpDispatcher*> reset_dispatcher(&dispatcher_, |
98 dispatcher); | 97 dispatcher); |
99 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); | 98 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); |
100 base::MessageLoop::ScopedNestableTaskAllower allow(loop); | 99 base::MessageLoop::ScopedNestableTaskAllower allow(loop); |
101 run_loop->Run(); | 100 run_loop->Run(); |
102 } | 101 } |
103 | 102 |
104 base::MessagePumpDispatcher* dispatcher_; | 103 base::MessagePumpDispatcher* dispatcher_; |
105 | 104 |
106 DISALLOW_COPY_AND_ASSIGN(TestDispatcherClient); | 105 DISALLOW_COPY_AND_ASSIGN(TestDispatcherClient); |
107 }; | 106 }; |
108 | 107 |
109 } // namespace | 108 } // namespace |
110 | 109 |
111 class MenuControllerTest : public ViewsTestBase { | 110 class MenuControllerTest : public ViewsTestBase { |
112 public: | 111 public: |
113 MenuControllerTest() : controller_(NULL) {} | 112 MenuControllerTest() : controller_(NULL) {} |
114 virtual ~MenuControllerTest() { | 113 ~MenuControllerTest() override { ResetMenuController(); } |
115 ResetMenuController(); | |
116 } | |
117 | 114 |
118 // Dispatches |count| number of items, each in a separate iteration of the | 115 // Dispatches |count| number of items, each in a separate iteration of the |
119 // message-loop, by posting a task. | 116 // message-loop, by posting a task. |
120 void Step3_DispatchEvents(int count) { | 117 void Step3_DispatchEvents(int count) { |
121 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); | 118 base::MessageLoopForUI* loop = base::MessageLoopForUI::current(); |
122 base::MessageLoop::ScopedNestableTaskAllower allow(loop); | 119 base::MessageLoop::ScopedNestableTaskAllower allow(loop); |
123 controller_->exit_type_ = MenuController::EXIT_ALL; | 120 controller_->exit_type_ = MenuController::EXIT_ALL; |
124 | 121 |
125 DispatchEvent(); | 122 DispatchEvent(); |
126 if (count) { | 123 if (count) { |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 FROM_HERE, | 260 FROM_HERE, |
264 base::Bind(&MenuControllerTest::DispatchEscapeAndExpect, | 261 base::Bind(&MenuControllerTest::DispatchEscapeAndExpect, |
265 base::Unretained(this), | 262 base::Unretained(this), |
266 MenuController::EXIT_NONE)); | 263 MenuController::EXIT_NONE)); |
267 RunMenu(owner.get()); | 264 RunMenu(owner.get()); |
268 } | 265 } |
269 } | 266 } |
270 #endif | 267 #endif |
271 | 268 |
272 } // namespace views | 269 } // namespace views |
OLD | NEW |