| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/test/base/view_event_test_base.h" | 5 #include "chrome/test/base/view_event_test_base.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <ole2.h> | 8 #include <ole2.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 #endif | 81 #endif |
| 82 window_ = views::Widget::CreateWindow(this); | 82 window_ = views::Widget::CreateWindow(this); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void ViewEventTestBase::TearDown() { | 85 void ViewEventTestBase::TearDown() { |
| 86 if (window_) { | 86 if (window_) { |
| 87 #if defined(OS_WIN) | 87 #if defined(OS_WIN) |
| 88 DestroyWindow(window_->GetNativeWindow()); | 88 DestroyWindow(window_->GetNativeWindow()); |
| 89 #else | 89 #else |
| 90 window_->Close(); | 90 window_->Close(); |
| 91 MessageLoop::current()->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 91 ui_test_utils::RunAllPendingInMessageLoop(); |
| 92 ui_test_utils::RunMessageLoop(); | |
| 93 #endif | 92 #endif |
| 94 window_ = NULL; | 93 window_ = NULL; |
| 95 } | 94 } |
| 96 #if defined(OS_WIN) | 95 #if defined(OS_WIN) |
| 97 OleUninitialize(); | 96 OleUninitialize(); |
| 98 #endif | 97 #endif |
| 99 } | 98 } |
| 100 | 99 |
| 101 bool ViewEventTestBase::CanResize() const { | 100 bool ViewEventTestBase::CanResize() const { |
| 102 return true; | 101 return true; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 127 | 126 |
| 128 void ViewEventTestBase::StartMessageLoopAndRunTest() { | 127 void ViewEventTestBase::StartMessageLoopAndRunTest() { |
| 129 window_->Show(); | 128 window_->Show(); |
| 130 // Make sure the window is the foreground window, otherwise none of the | 129 // Make sure the window is the foreground window, otherwise none of the |
| 131 // mouse events are going to be targeted correctly. | 130 // mouse events are going to be targeted correctly. |
| 132 #if defined(OS_WIN) | 131 #if defined(OS_WIN) |
| 133 SetForegroundWindow(window_->GetNativeWindow()); | 132 SetForegroundWindow(window_->GetNativeWindow()); |
| 134 #endif | 133 #endif |
| 135 | 134 |
| 136 // Flush any pending events to make sure we start with a clean slate. | 135 // Flush any pending events to make sure we start with a clean slate. |
| 137 MessageLoop::current()->RunAllPending(); | 136 ui_test_utils::RunAllPendingInMessageLoop(); |
| 138 | 137 |
| 139 // Schedule a task that starts the test. Need to do this as we're going to | 138 // Schedule a task that starts the test. Need to do this as we're going to |
| 140 // run the message loop. | 139 // run the message loop. |
| 141 MessageLoop::current()->PostTask( | 140 MessageLoop::current()->PostTask( |
| 142 FROM_HERE, | 141 FROM_HERE, |
| 143 base::Bind(&ViewEventTestBase::DoTestOnMessageLoop, this)); | 142 base::Bind(&ViewEventTestBase::DoTestOnMessageLoop, this)); |
| 144 | 143 |
| 145 MessageLoop::current()->Run(); | 144 ui_test_utils::RunMessageLoop(); |
| 146 } | 145 } |
| 147 | 146 |
| 148 gfx::Size ViewEventTestBase::GetPreferredSize() { | 147 gfx::Size ViewEventTestBase::GetPreferredSize() { |
| 149 return gfx::Size(); | 148 return gfx::Size(); |
| 150 } | 149 } |
| 151 | 150 |
| 152 void ViewEventTestBase::ScheduleMouseMoveInBackground(int x, int y) { | 151 void ViewEventTestBase::ScheduleMouseMoveInBackground(int x, int y) { |
| 153 if (!dnd_thread_.get()) { | 152 if (!dnd_thread_.get()) { |
| 154 dnd_thread_.reset(new base::Thread("mouse-move-thread")); | 153 dnd_thread_.reset(new base::Thread("mouse-move-thread")); |
| 155 dnd_thread_->Start(); | 154 dnd_thread_->Start(); |
| 156 } | 155 } |
| 157 dnd_thread_->message_loop()->PostDelayedTask( | 156 dnd_thread_->message_loop()->PostDelayedTask( |
| 158 FROM_HERE, | 157 FROM_HERE, |
| 159 base::IgnoreReturn<bool>(base::Bind(&ui_controls::SendMouseMove, x, y)), | 158 base::IgnoreReturn<bool>(base::Bind(&ui_controls::SendMouseMove, x, y)), |
| 160 kMouseMoveDelayMS); | 159 kMouseMoveDelayMS); |
| 161 } | 160 } |
| 162 | 161 |
| 163 void ViewEventTestBase::StopBackgroundThread() { | 162 void ViewEventTestBase::StopBackgroundThread() { |
| 164 dnd_thread_.reset(NULL); | 163 dnd_thread_.reset(NULL); |
| 165 } | 164 } |
| 166 | 165 |
| 167 void ViewEventTestBase::RunTestMethod(const base::Closure& task) { | 166 void ViewEventTestBase::RunTestMethod(const base::Closure& task) { |
| 168 StopBackgroundThread(); | 167 StopBackgroundThread(); |
| 169 | 168 |
| 170 task.Run(); | 169 task.Run(); |
| 171 if (HasFatalFailure()) | 170 if (HasFatalFailure()) |
| 172 Done(); | 171 Done(); |
| 173 } | 172 } |
| OLD | NEW |