| 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
|
|
|