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

Side by Side Diff: ash/common/system/chromeos/palette/tools/laser_pointer_unittest.cc

Issue 2231533004: Pointer watcher modifications to support laser pointer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Created 4 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/common/system/chromeos/palette/palette_tool_manager.h"
6 #include "ash/common/system/chromeos/palette/tools/laser_pointer_mode.h"
7 #include "ash/common/system/chromeos/palette/tools/laser_pointer_points.h"
8 #include "ash/shell.h"
9 #include "ash/test/ash_test_base.h"
10 #include "ui/events/test/event_generator.h"
11
12 namespace ash {
13 namespace {
14
15 class TestLaserPointerMode : public LaserPointerMode {
16 public:
17 TestLaserPointerMode(Delegate* delegate)
18 : LaserPointerMode(delegate) {}
19
20 // Expose the internal points structure for testing.
21 LaserPointerPoints GetPoints() { return laser_points_; }
22 bool Enabled() { return enabled(); }
23
24 DISALLOW_COPY_AND_ASSIGN(TestLaserPointerMode);
25 };
26
27 class LaserPointerModeTest : public test::AshTestBase,
28 public PaletteToolManager::Delegate {
29 public:
30 LaserPointerModeTest()
31 : laser_pointer_points_(base::TimeDelta::FromSecondsD(5.0)) {}
32 ~LaserPointerModeTest() override {}
33
34 void SetUp() override {
35 AshTestBase::SetUp();
36 palette_tool_manager_.reset(new PaletteToolManager(this));
37 laser_pointer_mode_ = new TestLaserPointerMode(NULL);
38 palette_tool_manager_->AddTool(base::WrapUnique(
39 laser_pointer_mode_));
40 }
41
42 void TearDown() override {
43 laser_pointer_mode_ = NULL;
44 palette_tool_manager_.reset(nullptr);
45 AshTestBase::TearDown();
46 }
47 protected:
48 // PaletteToolManager::Delegate:
49 void HidePalette() override {}
50 void OnActiveToolChanged() override {}
51 WmWindow* GetWindow() override {
52 NOTREACHED();
53 return nullptr;
54 }
55 std::unique_ptr<PaletteToolManager> palette_tool_manager_;
56 TestLaserPointerMode* laser_pointer_mode_;
57 LaserPointerPoints laser_pointer_points_;
58 private:
59 DISALLOW_COPY_AND_ASSIGN(LaserPointerModeTest);
60 };
61
62 TEST_F(LaserPointerModeTest, LaserPointerPoints) {
63 gfx::Point point1(1 ,1);
64 gfx::Point point2(2 ,2);
65 gfx::Point point3(3 ,9);
66 gfx::Point point4(30 ,0);
67 gfx::Point point5(0, 40);
68 laser_pointer_points_.AddPoint(point1);
69 laser_pointer_points_.AddPoint(point2);
70 laser_pointer_points_.AddPoint(point3);
71 laser_pointer_points_.AddPoint(point4);
72
73 // Test laser pointer points collection and helper functions.
74 EXPECT_EQ(4, laser_pointer_points_.GetNumberOfPoints());
75 EXPECT_FALSE(laser_pointer_points_.IsEmpty());
76 EXPECT_EQ(gfx::Rect(1, 0, 29, 9), laser_pointer_points_.GetBoundingBox());
77 EXPECT_EQ(point1, laser_pointer_points_.GetOldest().location_);
78 EXPECT_EQ(point4, laser_pointer_points_.GetMostRecent().location_);
79
80 laser_pointer_points_.AddPoint(point5);
81 EXPECT_EQ(5, laser_pointer_points_.GetNumberOfPoints());
82 EXPECT_EQ(gfx::Rect(0, 0, 30, 40), laser_pointer_points_.GetBoundingBox());
83
84 laser_pointer_points_.Clear();
85 EXPECT_TRUE(laser_pointer_points_.IsEmpty());
86 }
87
88 TEST_F(LaserPointerModeTest, LaserPointerView) {
89 EXPECT_FALSE(laser_pointer_mode_->Enabled());
90 EXPECT_TRUE(Shell::GetInstance()->cursor_manager()->IsCursorVisible());
91
92 EXPECT_EQ(0, laser_pointer_mode_->GetPoints().GetNumberOfPoints());
93 palette_tool_manager_->ActivateTool(PaletteToolId::LASER_POINTER);
94 EXPECT_TRUE(laser_pointer_mode_->Enabled());
95 EXPECT_EQ(1, laser_pointer_mode_->GetPoints().GetNumberOfPoints());
96 EXPECT_FALSE(Shell::GetInstance()->cursor_manager()->IsCursorVisible());
97
98 GetEventGenerator().MoveMouseToInHost(gfx::Point(10, 40));
99 GetEventGenerator().MoveMouseToInHost(gfx::Point(25, 66));
100 GetEventGenerator().MoveMouseToInHost(gfx::Point(91, 38));
101 GetEventGenerator().MoveMouseToInHost(gfx::Point(34, 58));
102 GetEventGenerator().MoveMouseToInHost(gfx::Point(19, 71));
103 EXPECT_EQ(6, laser_pointer_mode_->GetPoints().GetNumberOfPoints());
104 EXPECT_EQ(gfx::Rect(0, 0, 91, 71),
105 laser_pointer_mode_->GetPoints().GetBoundingBox());
106
107 palette_tool_manager_->DeactivateTool(PaletteToolId::LASER_POINTER);
108 EXPECT_FALSE(laser_pointer_mode_->Enabled());
109 EXPECT_EQ(0, laser_pointer_mode_->GetPoints().GetNumberOfPoints());
110 GetEventGenerator().MoveMouseToInHost(gfx::Point(49, 11));
111 GetEventGenerator().MoveMouseToInHost(gfx::Point(43, 11));
112 palette_tool_manager_->ActivateTool(PaletteToolId::LASER_POINTER);
113 GetEventGenerator().MoveMouseToInHost(gfx::Point(23, 51));
114 EXPECT_EQ(2, laser_pointer_mode_->GetPoints().GetNumberOfPoints());
115 EXPECT_EQ(gfx::Point(43, 11),
116 laser_pointer_mode_->GetPoints().GetOldest().location_);
117 EXPECT_EQ(gfx::Point(23, 51),
118 laser_pointer_mode_->GetPoints().GetMostRecent().location_);
119 }
120 }
121 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698