Index: ash/host/ash_window_tree_host_x11_unittest.cc |
diff --git a/ui/aura/window_tree_host_x11_unittest.cc b/ash/host/ash_window_tree_host_x11_unittest.cc |
similarity index 84% |
rename from ui/aura/window_tree_host_x11_unittest.cc |
rename to ash/host/ash_window_tree_host_x11_unittest.cc |
index 8df6d244703deafce6bd2f9d71e15027419037fb..f9e2f07669022aaac9630284c6ef85a36c340e34 100644 |
--- a/ui/aura/window_tree_host_x11_unittest.cc |
+++ b/ash/host/ash_window_tree_host_x11_unittest.cc |
@@ -2,13 +2,16 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "ash/host/ash_window_tree_host_x11.h" |
+ |
+#undef None |
+#undef Bool |
#include "base/sys_info.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/aura/test/aura_test_base.h" |
#include "ui/aura/window.h" |
#include "ui/aura/window_event_dispatcher.h" |
-#include "ui/aura/window_tree_host_x11.h" |
#include "ui/events/event_processor.h" |
#include "ui/events/event_target.h" |
#include "ui/events/event_target_iterator.h" |
@@ -18,11 +21,14 @@ namespace { |
class RootWindowEventHandler : public ui::EventHandler { |
public: |
- RootWindowEventHandler() : last_touch_type_(ui::ET_UNKNOWN), |
- last_touch_id_(-1), |
- last_touch_location_(0, 0) { |
+ explicit RootWindowEventHandler(aura::WindowTreeHost* host) |
+ : target_(host->window()), |
+ last_touch_type_(ui::ET_UNKNOWN), |
+ last_touch_id_(-1), |
+ last_touch_location_(0, 0) { |
+ target_->AddPreTargetHandler(this); |
} |
- virtual ~RootWindowEventHandler () {} |
+ virtual ~RootWindowEventHandler() { target_->RemovePreTargetHandler(this); } |
// ui::EventHandler: |
virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE { |
@@ -31,19 +37,14 @@ class RootWindowEventHandler : public ui::EventHandler { |
last_touch_location_ = event->location(); |
} |
- ui::EventType last_touch_type() { |
- return last_touch_type_; |
- } |
+ ui::EventType last_touch_type() { return last_touch_type_; } |
- int last_touch_id() { |
- return last_touch_id_; |
- } |
+ int last_touch_id() { return last_touch_id_; } |
- gfx::Point last_touch_location() { |
- return last_touch_location_; |
- } |
+ gfx::Point last_touch_location() { return last_touch_location_; } |
private: |
+ ui::EventTarget* target_; |
ui::EventType last_touch_type_; |
int last_touch_id_; |
gfx::Point last_touch_location_; |
@@ -53,25 +54,23 @@ class RootWindowEventHandler : public ui::EventHandler { |
} // namespace |
-namespace aura { |
+namespace ash { |
-typedef test::AuraTestBase WindowTreeHostX11Test; |
+typedef aura::test::AuraTestBase WindowTreeHostX11Test; |
// Send X touch events to one WindowTreeHost. The WindowTreeHost's |
// delegate will get corresponding ui::TouchEvent if the touch events |
// are winthin the bound of the WindowTreeHost. |
TEST_F(WindowTreeHostX11Test, DispatchTouchEventToOneRootWindow) { |
-#if defined(OS_CHROMEOS) |
// Fake a ChromeOS running env. |
const char* kLsbRelease = "CHROMEOS_RELEASE_NAME=Chromium OS\n"; |
base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time()); |
-#endif // defined(OS_CHROMEOS) |
- scoped_ptr<WindowTreeHostX11> window_tree_host( |
- new WindowTreeHostX11(gfx::Rect(0, 0, 2560, 1700))); |
+ scoped_ptr<AshWindowTreeHostX11> window_tree_host( |
+ new AshWindowTreeHostX11(gfx::Rect(0, 0, 2560, 1700))); |
window_tree_host->InitHost(); |
- scoped_ptr<RootWindowEventHandler> handler(new RootWindowEventHandler()); |
- window_tree_host->window()->AddPreTargetHandler(handler.get()); |
+ scoped_ptr<RootWindowEventHandler> handler( |
+ new RootWindowEventHandler(window_tree_host.get())); |
std::vector<unsigned int> devices; |
devices.push_back(0); |
@@ -82,7 +81,6 @@ TEST_F(WindowTreeHostX11Test, DispatchTouchEventToOneRootWindow) { |
EXPECT_EQ(-1, handler->last_touch_id()); |
ui::ScopedXI2Event scoped_xevent; |
-#if defined(OS_CHROMEOS) |
// This touch is out of bounds. |
scoped_xevent.InitTouchEvent( |
0, XI_TouchBegin, 5, gfx::Point(1500, 2500), valuators); |
@@ -90,7 +88,6 @@ TEST_F(WindowTreeHostX11Test, DispatchTouchEventToOneRootWindow) { |
EXPECT_EQ(ui::ET_UNKNOWN, handler->last_touch_type()); |
EXPECT_EQ(-1, handler->last_touch_id()); |
EXPECT_EQ(gfx::Point(0, 0), handler->last_touch_location()); |
-#endif // defined(OS_CHROMEOS) |
// Following touchs are within bounds and are passed to delegate. |
scoped_xevent.InitTouchEvent( |
@@ -114,36 +111,35 @@ TEST_F(WindowTreeHostX11Test, DispatchTouchEventToOneRootWindow) { |
EXPECT_EQ(0, handler->last_touch_id()); |
EXPECT_EQ(gfx::Point(1500, 1600), handler->last_touch_location()); |
+ handler.reset(); |
+ |
// Revert the CrOS testing env otherwise the following non-CrOS aura |
// tests will fail. |
-#if defined(OS_CHROMEOS) |
// Fake a ChromeOS running env. |
kLsbRelease = ""; |
base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time()); |
-#endif // defined(OS_CHROMEOS) |
} |
// Send X touch events to two WindowTreeHost. The WindowTreeHost which is |
// the event target of the X touch events should generate the corresponding |
// ui::TouchEvent for its delegate. |
-#if defined(OS_CHROMEOS) |
TEST_F(WindowTreeHostX11Test, DispatchTouchEventToTwoRootWindow) { |
// Fake a ChromeOS running env. |
const char* kLsbRelease = "CHROMEOS_RELEASE_NAME=Chromium OS\n"; |
base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time()); |
- scoped_ptr<WindowTreeHostX11> window_tree_host1( |
- new WindowTreeHostX11(gfx::Rect(0, 0, 2560, 1700))); |
+ scoped_ptr<AshWindowTreeHostX11> window_tree_host1( |
+ new AshWindowTreeHostX11(gfx::Rect(0, 0, 2560, 1700))); |
window_tree_host1->InitHost(); |
- scoped_ptr<RootWindowEventHandler> handler1(new RootWindowEventHandler()); |
- window_tree_host1->window()->AddPreTargetHandler(handler1.get()); |
+ scoped_ptr<RootWindowEventHandler> handler1( |
+ new RootWindowEventHandler(window_tree_host1.get())); |
int host2_y_offset = 1700; |
- scoped_ptr<WindowTreeHostX11> window_tree_host2( |
- new WindowTreeHostX11(gfx::Rect(0, host2_y_offset, 1920, 1080))); |
+ scoped_ptr<AshWindowTreeHostX11> window_tree_host2( |
+ new AshWindowTreeHostX11(gfx::Rect(0, host2_y_offset, 1920, 1080))); |
window_tree_host2->InitHost(); |
- scoped_ptr<RootWindowEventHandler> handler2(new RootWindowEventHandler()); |
- window_tree_host2->window()->AddPreTargetHandler(handler2.get()); |
+ scoped_ptr<RootWindowEventHandler> handler2( |
+ new RootWindowEventHandler(window_tree_host2.get())); |
std::vector<unsigned int> devices; |
devices.push_back(0); |
@@ -216,7 +212,6 @@ TEST_F(WindowTreeHostX11Test, DispatchTouchEventToTwoRootWindow) { |
EXPECT_EQ(0, handler2->last_touch_id()); |
EXPECT_EQ(gfx::Point(1500, 2550 - host2_y_offset), |
handler2->last_touch_location()); |
- |
scoped_xevent.InitTouchEvent( |
0, XI_TouchEnd, 6, gfx::Point(1600, 2650), valuators); |
window_tree_host1->DispatchEvent(scoped_xevent); |
@@ -229,12 +224,14 @@ TEST_F(WindowTreeHostX11Test, DispatchTouchEventToTwoRootWindow) { |
EXPECT_EQ(gfx::Point(1600, 2650 - host2_y_offset), |
handler2->last_touch_location()); |
+ handler1.reset(); |
+ handler2.reset(); |
+ |
// Revert the CrOS testing env otherwise the following non-CrOS aura |
// tests will fail. |
// Fake a ChromeOS running env. |
kLsbRelease = ""; |
base::SysInfo::SetChromeOSVersionInfoForTest(kLsbRelease, base::Time()); |
} |
-#endif // defined(OS_CHROMEOS) |
} // namespace aura |