| Index: ash/magnifier/magnification_controller_unittest.cc
|
| diff --git a/ash/magnifier/magnification_controller_unittest.cc b/ash/magnifier/magnification_controller_unittest.cc
|
| index 2060df4c738f8c1f2efca0e0be4b8b7538219caa..03a26fc1d8c77bd61615f0e5a56fcf2a473e23f7 100644
|
| --- a/ash/magnifier/magnification_controller_unittest.cc
|
| +++ b/ash/magnifier/magnification_controller_unittest.cc
|
| @@ -8,7 +8,9 @@
|
| #include "ash/test/ash_test_base.h"
|
| #include "base/stringprintf.h"
|
| #include "ui/aura/client/aura_constants.h"
|
| +#include "ui/aura/env.h"
|
| #include "ui/aura/root_window.h"
|
| +#include "ui/aura/test/event_generator.h"
|
| #include "ui/gfx/rect_conversions.h"
|
| #include "ui/gfx/screen.h"
|
|
|
| @@ -46,20 +48,37 @@ class MagnificationControllerTest: public test::AshTestBase {
|
| }
|
|
|
| protected:
|
| - aura::RootWindow* GetRootWindow() {
|
| + aura::RootWindow* GetRootWindow() const {
|
| return Shell::GetPrimaryRootWindow();
|
| }
|
|
|
| - ash::MagnificationController* GetMagnificationController() {
|
| +
|
| + void MoveCursorWithEvent(gfx::Point point) {
|
| + aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
|
| + generator.MoveMouseTo(point.x(), point.y());
|
| + }
|
| +
|
| + std::string GetHostMouseLocation() {
|
| + gfx::Point point;
|
| + GetRootWindow()->QueryMouseLocationForTest(&point);
|
| + return point.ToString();
|
| + }
|
| +
|
| + ash::MagnificationController* GetMagnificationController() const {
|
| return ash::Shell::GetInstance()->magnification_controller();
|
| }
|
|
|
| - gfx::Rect GetViewport() {
|
| + gfx::Rect GetViewport() const {
|
| gfx::RectF bounds(0, 0, kRootWidth, kRootHeight);
|
| GetRootWindow()->layer()->transform().TransformRectReverse(&bounds);
|
| return gfx::ToEnclosingRect(bounds);
|
| }
|
|
|
| + std::string CurrentPointOfInterest() const {
|
| + return GetMagnificationController()->
|
| + GetPointOfInterestForTesting().ToString();
|
| + }
|
| +
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(MagnificationControllerTest);
|
| };
|
| @@ -95,19 +114,23 @@ TEST_F(MagnificationControllerTest, MagnifyAndUnmagnify) {
|
| EXPECT_FALSE(GetRootWindow()->layer()->transform().IsIdentity());
|
| EXPECT_EQ(2.0f, GetMagnificationController()->GetScale());
|
| EXPECT_EQ("200,150 400x300", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
|
|
| // Changes the scale.
|
| GetMagnificationController()->SetScale(4.0f, false);
|
| EXPECT_EQ(4.0f, GetMagnificationController()->GetScale());
|
| EXPECT_EQ("300,225 200x150", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
|
|
| GetMagnificationController()->SetScale(1.0f, false);
|
| EXPECT_EQ(1.0f, GetMagnificationController()->GetScale());
|
| EXPECT_EQ("0,0 800x600", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
|
|
| GetMagnificationController()->SetScale(3.0f, false);
|
| EXPECT_EQ(3.0f, GetMagnificationController()->GetScale());
|
| EXPECT_EQ("266,200 268x200", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
| }
|
|
|
| TEST_F(MagnificationControllerTest, MoveWindow) {
|
| @@ -153,5 +176,267 @@ TEST_F(MagnificationControllerTest, MoveWindow) {
|
| EXPECT_EQ("400,300 400x300", GetViewport().ToString());
|
| }
|
|
|
| +TEST_F(MagnificationControllerTest, PointOfInterest) {
|
| + MoveCursorWithEvent(gfx::Point(0, 0));
|
| + EXPECT_EQ("0,0", CurrentPointOfInterest());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(799, 599));
|
| + EXPECT_EQ("799,599", CurrentPointOfInterest());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(400, 300));
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
| +
|
| + GetMagnificationController()->SetEnabled(true);
|
| + EXPECT_EQ("400,300", CurrentPointOfInterest());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(500, 400));
|
| + EXPECT_EQ("450,350", CurrentPointOfInterest());
|
| +}
|
| +
|
| +TEST_F(MagnificationControllerTest, PanWindow2xLeftToRight) {
|
| + const aura::Env* env = aura::Env::GetInstance();
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 0));
|
| + EXPECT_EQ(1.f, GetMagnificationController()->GetScale());
|
| + EXPECT_EQ("0,0 800x600", GetViewport().ToString());
|
| + EXPECT_EQ("0,0", env->last_mouse_location().ToString());
|
| +
|
| + // Enables magnifier and confirm the viewport is at center.
|
| + GetMagnificationController()->SetEnabled(true);
|
| + EXPECT_EQ(2.0f, GetMagnificationController()->GetScale());
|
| +
|
| + GetMagnificationController()->MoveWindow(0, 0, false);
|
| + MoveCursorWithEvent(gfx::Point(0, 0));
|
| + EXPECT_EQ("0,0", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(300, 150));
|
| + EXPECT_EQ("150,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(700, 150));
|
| + EXPECT_EQ("350,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(701, 150));
|
| + EXPECT_EQ("350,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(702, 150));
|
| + EXPECT_EQ("351,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("1,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(703, 150));
|
| + EXPECT_EQ("352,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("2,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(704, 150));
|
| + EXPECT_EQ("354,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("4,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(712, 150));
|
| + EXPECT_EQ("360,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("10,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(600, 150));
|
| + EXPECT_EQ("310,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("10,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(720, 150));
|
| + EXPECT_EQ("370,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("20,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("410,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("410,75", CurrentPointOfInterest());
|
| + EXPECT_EQ("60,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(799, 150));
|
| + EXPECT_EQ("459,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("109,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(702, 150));
|
| + EXPECT_EQ("460,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("110,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("500,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("150,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("540,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("190,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("580,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("230,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("620,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("270,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("660,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("310,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("700,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("350,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("740,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("390,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(780, 150));
|
| + EXPECT_EQ("780,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("400,0 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(799, 150));
|
| + EXPECT_EQ("799,75", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("400,0 400x300", GetViewport().ToString());
|
| +}
|
| +
|
| +TEST_F(MagnificationControllerTest, PanWindow2xRightToLeft) {
|
| + const aura::Env* env = aura::Env::GetInstance();
|
| +
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ(1.f, GetMagnificationController()->GetScale());
|
| + EXPECT_EQ("0,0 800x600", GetViewport().ToString());
|
| + EXPECT_EQ("799,300", env->last_mouse_location().ToString());
|
| +
|
| + // Enables magnifier and confirm the viewport is at center.
|
| + GetMagnificationController()->SetEnabled(true);
|
| +
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ("798,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("400,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("400,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("350,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("350,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("300,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("300,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("250,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("250,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("200,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("200,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("150,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("150,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("100,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("100,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("50,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("50,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,150 400x300", GetViewport().ToString());
|
| +
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("0,300", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("0,150 400x300", GetViewport().ToString());
|
| +}
|
| +
|
| +TEST_F(MagnificationControllerTest, PanWindowToRight) {
|
| + const aura::Env* env = aura::Env::GetInstance();
|
| +
|
| + MoveCursorWithEvent(gfx::Point(400, 300));
|
| + EXPECT_EQ(1.f, GetMagnificationController()->GetScale());
|
| + EXPECT_EQ("0,0 800x600", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", env->last_mouse_location().ToString());
|
| +
|
| + float scale = 2.f;
|
| +
|
| + // Enables magnifier and confirm the viewport is at center.
|
| + GetMagnificationController()->SetEnabled(true);
|
| + EXPECT_FLOAT_EQ(2.f, GetMagnificationController()->GetScale());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(2.3784142, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(400, 300));
|
| + EXPECT_EQ("400,300", env->last_mouse_location().ToString());
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ("566,299", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("705,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(2.8284268, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ("599,299", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("702,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(3.3635852, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ("627,298", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("707,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(4.f, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(799, 300));
|
| + EXPECT_EQ("649,298", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("704,300", GetHostMouseLocation());
|
| +}
|
| +
|
| +TEST_F(MagnificationControllerTest, PanWindowToLeft) {
|
| + const aura::Env* env = aura::Env::GetInstance();
|
| +
|
| + MoveCursorWithEvent(gfx::Point(400, 300));
|
| + EXPECT_EQ(1.f, GetMagnificationController()->GetScale());
|
| + EXPECT_EQ("0,0 800x600", GetViewport().ToString());
|
| + EXPECT_EQ("400,300", env->last_mouse_location().ToString());
|
| +
|
| + float scale = 2.f;
|
| +
|
| + // Enables magnifier and confirm the viewport is at center.
|
| + GetMagnificationController()->SetEnabled(true);
|
| + EXPECT_FLOAT_EQ(2.f, GetMagnificationController()->GetScale());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(2.3784142, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(400, 300));
|
| + EXPECT_EQ("400,300", env->last_mouse_location().ToString());
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("231,299", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("100,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(2.8284268, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("195,299", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("99,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(3.3635852, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("165,298", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("98,300", GetHostMouseLocation());
|
| +
|
| + scale *= kMagnificationScaleFactor;
|
| + GetMagnificationController()->SetScale(scale, false);
|
| + EXPECT_FLOAT_EQ(4.f, GetMagnificationController()->GetScale());
|
| + MoveCursorWithEvent(gfx::Point(0, 300));
|
| + EXPECT_EQ("140,298", env->last_mouse_location().ToString());
|
| + EXPECT_EQ("100,300", GetHostMouseLocation());
|
| +}
|
| +
|
| } // namespace internal
|
| } // namespace ash
|
|
|