Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(269)

Unified Diff: ui/aura/window_targeter_unittest.cc

Issue 851853002: It is time. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Trying to reup because the last upload failed. Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura/window_targeter.cc ('k') | ui/aura/window_tracker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/window_targeter_unittest.cc
diff --git a/ui/aura/window_targeter_unittest.cc b/ui/aura/window_targeter_unittest.cc
deleted file mode 100644
index 847f56778035105e4ac80593de1d67479c7c548b..0000000000000000000000000000000000000000
--- a/ui/aura/window_targeter_unittest.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/aura/window_targeter.h"
-
-#include "ui/aura/scoped_window_targeter.h"
-#include "ui/aura/test/aura_test_base.h"
-#include "ui/aura/test/test_window_delegate.h"
-#include "ui/aura/window.h"
-#include "ui/events/test/test_event_handler.h"
-
-namespace aura {
-
-// Always returns the same window.
-class StaticWindowTargeter : public ui::EventTargeter {
- public:
- explicit StaticWindowTargeter(aura::Window* window)
- : window_(window) {}
- virtual ~StaticWindowTargeter() {}
-
- private:
- // ui::EventTargeter:
- virtual ui::EventTarget* FindTargetForLocatedEvent(
- ui::EventTarget* root,
- ui::LocatedEvent* event) override {
- return window_;
- }
-
- Window* window_;
-
- DISALLOW_COPY_AND_ASSIGN(StaticWindowTargeter);
-};
-
-class WindowTargeterTest : public test::AuraTestBase {
- public:
- WindowTargeterTest() {}
- virtual ~WindowTargeterTest() {}
-
- Window* root_window() { return AuraTestBase::root_window(); }
-};
-
-gfx::RectF GetEffectiveVisibleBoundsInRootWindow(Window* window) {
- gfx::RectF bounds = gfx::Rect(window->bounds().size());
- Window* root = window->GetRootWindow();
- CHECK(window->layer());
- CHECK(root->layer());
- gfx::Transform transform;
- if (!window->layer()->GetTargetTransformRelativeTo(root->layer(), &transform))
- return gfx::RectF();
- transform.TransformRect(&bounds);
- return bounds;
-}
-
-TEST_F(WindowTargeterTest, Basic) {
- test::TestWindowDelegate delegate;
- scoped_ptr<Window> window(CreateNormalWindow(1, root_window(), &delegate));
- Window* one = CreateNormalWindow(2, window.get(), &delegate);
- Window* two = CreateNormalWindow(3, window.get(), &delegate);
-
- window->SetBounds(gfx::Rect(0, 0, 100, 100));
- one->SetBounds(gfx::Rect(0, 0, 500, 100));
- two->SetBounds(gfx::Rect(501, 0, 500, 1000));
-
- root_window()->Show();
-
- ui::test::TestEventHandler handler;
- one->AddPreTargetHandler(&handler);
-
- ui::MouseEvent press(ui::ET_MOUSE_PRESSED,
- gfx::Point(20, 20),
- gfx::Point(20, 20),
- ui::EF_NONE,
- ui::EF_NONE);
- DispatchEventUsingWindowDispatcher(&press);
- EXPECT_EQ(1, handler.num_mouse_events());
-
- handler.Reset();
- DispatchEventUsingWindowDispatcher(&press);
- EXPECT_EQ(1, handler.num_mouse_events());
-
- one->RemovePreTargetHandler(&handler);
-}
-
-TEST_F(WindowTargeterTest, ScopedWindowTargeter) {
- test::TestWindowDelegate delegate;
- scoped_ptr<Window> window(CreateNormalWindow(1, root_window(), &delegate));
- Window* child = CreateNormalWindow(2, window.get(), &delegate);
-
- window->SetBounds(gfx::Rect(30, 30, 100, 100));
- child->SetBounds(gfx::Rect(20, 20, 50, 50));
- root_window()->Show();
-
- ui::EventTarget* root = root_window();
- ui::EventTargeter* targeter = root->GetEventTargeter();
-
- gfx::Point event_location(60, 60);
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(child, targeter->FindTargetForEvent(root, &mouse));
- }
-
- // Install a targeter on |window| so that the events never reach the child.
- scoped_ptr<ScopedWindowTargeter> scoped_targeter(
- new ScopedWindowTargeter(window.get(), scoped_ptr<ui::EventTargeter>(
- new StaticWindowTargeter(window.get()))));
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(window.get(), targeter->FindTargetForEvent(root, &mouse));
- }
- scoped_targeter.reset();
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(child, targeter->FindTargetForEvent(root, &mouse));
- }
-}
-
-// Test that ScopedWindowTargeter does not crash if the window for which it
-// replaces the targeter gets destroyed before it does.
-TEST_F(WindowTargeterTest, ScopedWindowTargeterWindowDestroyed) {
- test::TestWindowDelegate delegate;
- scoped_ptr<Window> window(CreateNormalWindow(1, root_window(), &delegate));
- scoped_ptr<ScopedWindowTargeter> scoped_targeter(
- new ScopedWindowTargeter(window.get(), scoped_ptr<ui::EventTargeter>(
- new StaticWindowTargeter(window.get()))));
-
- window.reset();
- scoped_targeter.reset();
-
- // We did not crash!
-}
-
-TEST_F(WindowTargeterTest, TargetTransformedWindow) {
- root_window()->Show();
-
- test::TestWindowDelegate delegate;
- scoped_ptr<Window> window(CreateNormalWindow(2, root_window(), &delegate));
-
- const gfx::Rect window_bounds(100, 20, 400, 80);
- window->SetBounds(window_bounds);
-
- ui::EventTarget* root_target = root_window();
- ui::EventTargeter* targeter = root_target->GetEventTargeter();
- gfx::Point event_location(490, 50);
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(window.get(), targeter->FindTargetForEvent(root_target, &mouse));
- }
-
- // Scale |window| by 50%. This should move it away from underneath
- // |event_location|, so an event in that location will not be targeted to it.
- gfx::Transform transform;
- transform.Scale(0.5, 0.5);
- window->SetTransform(transform);
- EXPECT_EQ(gfx::RectF(100, 20, 200, 40).ToString(),
- GetEffectiveVisibleBoundsInRootWindow(window.get()).ToString());
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(root_window(), targeter->FindTargetForEvent(root_target, &mouse));
- }
-
- transform = gfx::Transform();
- transform.Translate(200, 10);
- transform.Scale(0.5, 0.5);
- window->SetTransform(transform);
- EXPECT_EQ(gfx::RectF(300, 30, 200, 40).ToString(),
- GetEffectiveVisibleBoundsInRootWindow(window.get()).ToString());
- {
- ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_location,
- ui::EF_NONE, ui::EF_NONE);
- EXPECT_EQ(window.get(), targeter->FindTargetForEvent(root_target, &mouse));
- }
-}
-
-} // namespace aura
« no previous file with comments | « ui/aura/window_targeter.cc ('k') | ui/aura/window_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698