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

Side by Side Diff: ash/touch/touch_transformer_controller_unittest.cc

Issue 2270553002: Move ash::DisplayInfo to ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 3 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
« no previous file with comments | « ash/touch/touch_transformer_controller.cc ('k') | ash/touch/touchscreen_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/touch/touch_transformer_controller.h" 5 #include "ash/touch/touch_transformer_controller.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "ui/aura/window_tree_host.h" 9 #include "ui/aura/window_tree_host.h"
10 #include "ui/events/devices/device_data_manager.h" 10 #include "ui/events/devices/device_data_manager.h"
11 11
12 namespace ash { 12 namespace ash {
13 13
14 namespace { 14 namespace {
15 15
16 DisplayInfo CreateDisplayInfo(int64_t id, 16 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id,
17 unsigned int touch_device_id, 17 unsigned int touch_device_id,
18 const gfx::Rect& bounds) { 18 const gfx::Rect& bounds) {
19 DisplayInfo info(id, std::string(), false); 19 display::ManagedDisplayInfo info(id, std::string(), false);
20 info.SetBounds(bounds); 20 info.SetBounds(bounds);
21 info.AddInputDevice(touch_device_id); 21 info.AddInputDevice(touch_device_id);
22 22
23 // Create a default mode. 23 // Create a default mode.
24 DisplayInfo::ManagedDisplayModeList default_modes( 24 display::ManagedDisplayInfo::ManagedDisplayModeList default_modes(
25 1, make_scoped_refptr( 25 1, make_scoped_refptr(
26 new ManagedDisplayMode(bounds.size(), 60, false, true))); 26 new display::ManagedDisplayMode(bounds.size(), 60, false, true)));
27 info.SetManagedDisplayModes(default_modes); 27 info.SetManagedDisplayModes(default_modes);
28 28
29 return info; 29 return info;
30 } 30 }
31 31
32 ui::TouchscreenDevice CreateTouchscreenDevice(unsigned int id, 32 ui::TouchscreenDevice CreateTouchscreenDevice(unsigned int id,
33 const gfx::Size& size) { 33 const gfx::Size& size) {
34 return ui::TouchscreenDevice(id, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL, 34 return ui::TouchscreenDevice(id, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL,
35 std::string(), size, 0); 35 std::string(), size, 0);
36 } 36 }
37 37
38 } // namespace 38 } // namespace
39 39
40 typedef test::AshTestBase TouchTransformerControllerTest; 40 typedef test::AshTestBase TouchTransformerControllerTest;
41 41
42 TEST_F(TouchTransformerControllerTest, MirrorModeLetterboxing) { 42 TEST_F(TouchTransformerControllerTest, MirrorModeLetterboxing) {
43 // The internal display has native resolution of 2560x1700, and in 43 // The internal display has native resolution of 2560x1700, and in
44 // mirror mode it is configured as 1920x1200. This is in letterboxing 44 // mirror mode it is configured as 1920x1200. This is in letterboxing
45 // mode. 45 // mode.
46 DisplayInfo internal_display_info = 46 display::ManagedDisplayInfo internal_display_info =
47 CreateDisplayInfo(1, 10u, gfx::Rect(0, 0, 1920, 1200)); 47 CreateDisplayInfo(1, 10u, gfx::Rect(0, 0, 1920, 1200));
48 internal_display_info.set_is_aspect_preserving_scaling(true); 48 internal_display_info.set_is_aspect_preserving_scaling(true);
49 49
50 DisplayInfo::ManagedDisplayModeList internal_modes; 50 display::ManagedDisplayInfo::ManagedDisplayModeList internal_modes;
51 51
52 internal_modes.push_back(make_scoped_refptr( 52 internal_modes.push_back(make_scoped_refptr(
53 new ManagedDisplayMode(gfx::Size(2560, 1700), 60, false, true))); 53 new display::ManagedDisplayMode(gfx::Size(2560, 1700), 60, false, true)));
54 internal_modes.push_back(make_scoped_refptr( 54 internal_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode(
55 new ManagedDisplayMode(gfx::Size(1920, 1200), 60, false, false))); 55 gfx::Size(1920, 1200), 60, false, false)));
56 internal_display_info.SetManagedDisplayModes(internal_modes); 56 internal_display_info.SetManagedDisplayModes(internal_modes);
57 57
58 DisplayInfo external_display_info = 58 display::ManagedDisplayInfo external_display_info =
59 CreateDisplayInfo(2, 11u, gfx::Rect(0, 0, 1920, 1200)); 59 CreateDisplayInfo(2, 11u, gfx::Rect(0, 0, 1920, 1200));
60 60
61 gfx::Size fb_size(1920, 1200); 61 gfx::Size fb_size(1920, 1200);
62 62
63 // Create the touchscreens with the same size as the framebuffer so we can 63 // Create the touchscreens with the same size as the framebuffer so we can
64 // share the tests between Ozone & X11. 64 // share the tests between Ozone & X11.
65 ui::TouchscreenDevice internal_touchscreen = 65 ui::TouchscreenDevice internal_touchscreen =
66 CreateTouchscreenDevice(10, fb_size); 66 CreateTouchscreenDevice(10, fb_size);
67 ui::TouchscreenDevice external_touchscreen = 67 ui::TouchscreenDevice external_touchscreen =
68 CreateTouchscreenDevice(11, fb_size); 68 CreateTouchscreenDevice(11, fb_size);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 y = 1165.0; 109 y = 1165.0;
110 device_manager->ApplyTouchTransformer(10, &x, &y); 110 device_manager->ApplyTouchTransformer(10, &x, &y);
111 EXPECT_NEAR(100, x, 0.5); 111 EXPECT_NEAR(100, x, 0.5);
112 EXPECT_NEAR(1200, y, 0.5); 112 EXPECT_NEAR(1200, y, 0.5);
113 } 113 }
114 114
115 TEST_F(TouchTransformerControllerTest, MirrorModePillarboxing) { 115 TEST_F(TouchTransformerControllerTest, MirrorModePillarboxing) {
116 // The internal display has native resolution of 1366x768, and in 116 // The internal display has native resolution of 1366x768, and in
117 // mirror mode it is configured as 1024x768. This is in pillarboxing 117 // mirror mode it is configured as 1024x768. This is in pillarboxing
118 // mode. 118 // mode.
119 DisplayInfo internal_display_info = 119 display::ManagedDisplayInfo internal_display_info =
120 CreateDisplayInfo(1, 10, gfx::Rect(0, 0, 1024, 768)); 120 CreateDisplayInfo(1, 10, gfx::Rect(0, 0, 1024, 768));
121 internal_display_info.set_is_aspect_preserving_scaling(true); 121 internal_display_info.set_is_aspect_preserving_scaling(true);
122 DisplayInfo::ManagedDisplayModeList internal_modes; 122 display::ManagedDisplayInfo::ManagedDisplayModeList internal_modes;
123 internal_modes.push_back(make_scoped_refptr( 123 internal_modes.push_back(make_scoped_refptr(
124 new ManagedDisplayMode(gfx::Size(1366, 768), 60, false, true))); 124 new display::ManagedDisplayMode(gfx::Size(1366, 768), 60, false, true)));
125 internal_modes.push_back(make_scoped_refptr( 125 internal_modes.push_back(make_scoped_refptr(
126 new ManagedDisplayMode(gfx::Size(1024, 768), 60, false, false))); 126 new display::ManagedDisplayMode(gfx::Size(1024, 768), 60, false, false)));
127 internal_display_info.SetManagedDisplayModes(internal_modes); 127 internal_display_info.SetManagedDisplayModes(internal_modes);
128 128
129 DisplayInfo external_display_info = 129 display::ManagedDisplayInfo external_display_info =
130 CreateDisplayInfo(2, 11, gfx::Rect(0, 0, 1024, 768)); 130 CreateDisplayInfo(2, 11, gfx::Rect(0, 0, 1024, 768));
131 131
132 gfx::Size fb_size(1024, 768); 132 gfx::Size fb_size(1024, 768);
133 133
134 // Create the touchscreens with the same size as the framebuffer so we can 134 // Create the touchscreens with the same size as the framebuffer so we can
135 // share the tests between Ozone & X11. 135 // share the tests between Ozone & X11.
136 ui::TouchscreenDevice internal_touchscreen = 136 ui::TouchscreenDevice internal_touchscreen =
137 CreateTouchscreenDevice(10, fb_size); 137 CreateTouchscreenDevice(10, fb_size);
138 ui::TouchscreenDevice external_touchscreen = 138 ui::TouchscreenDevice external_touchscreen =
139 CreateTouchscreenDevice(11, fb_size); 139 CreateTouchscreenDevice(11, fb_size);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 } 184 }
185 185
186 TEST_F(TouchTransformerControllerTest, SoftwareMirrorMode) { 186 TEST_F(TouchTransformerControllerTest, SoftwareMirrorMode) {
187 // External display 1 has size 1280x850. External display 2 has size 187 // External display 1 has size 1280x850. External display 2 has size
188 // 1920x1080. When using software mirroring to mirror display 1 onto 188 // 1920x1080. When using software mirroring to mirror display 1 onto
189 // display 2, the displays are in extended mode and we map touches from both 189 // display 2, the displays are in extended mode and we map touches from both
190 // displays to display 1. 190 // displays to display 1.
191 // The total frame buffer is 1920x1990, 191 // The total frame buffer is 1920x1990,
192 // where 1990 = 850 + 60 (hidden gap) + 1080 and the second monitor is 192 // where 1990 = 850 + 60 (hidden gap) + 1080 and the second monitor is
193 // translated to point (0, 950) in the framebuffer. 193 // translated to point (0, 950) in the framebuffer.
194 DisplayInfo display1_info = 194 display::ManagedDisplayInfo display1_info =
195 CreateDisplayInfo(1, 10u, gfx::Rect(0, 0, 1280, 850)); 195 CreateDisplayInfo(1, 10u, gfx::Rect(0, 0, 1280, 850));
196 DisplayInfo::ManagedDisplayModeList display1_modes; 196 display::ManagedDisplayInfo::ManagedDisplayModeList display1_modes;
197 display1_modes.push_back(make_scoped_refptr( 197 display1_modes.push_back(make_scoped_refptr(
198 new ManagedDisplayMode(gfx::Size(1280, 850), 60, false, true))); 198 new display::ManagedDisplayMode(gfx::Size(1280, 850), 60, false, true)));
199 display1_info.SetManagedDisplayModes(display1_modes); 199 display1_info.SetManagedDisplayModes(display1_modes);
200 200
201 DisplayInfo display2_info = 201 display::ManagedDisplayInfo display2_info =
202 CreateDisplayInfo(2, 11u, gfx::Rect(0, 950, 1920, 1080)); 202 CreateDisplayInfo(2, 11u, gfx::Rect(0, 950, 1920, 1080));
203 DisplayInfo::ManagedDisplayModeList display2_modes; 203 display::ManagedDisplayInfo::ManagedDisplayModeList display2_modes;
204 display2_modes.push_back(make_scoped_refptr( 204 display2_modes.push_back(make_scoped_refptr(
205 new ManagedDisplayMode(gfx::Size(1920, 1080), 60, false, true))); 205 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60, false, true)));
206 display2_info.SetManagedDisplayModes(display2_modes); 206 display2_info.SetManagedDisplayModes(display2_modes);
207 207
208 gfx::Size fb_size(1920, 1990); 208 gfx::Size fb_size(1920, 1990);
209 209
210 // Create the touchscreens with the same size as the framebuffer so we can 210 // Create the touchscreens with the same size as the framebuffer so we can
211 // share the tests between Ozone & X11. 211 // share the tests between Ozone & X11.
212 ui::TouchscreenDevice display1_touchscreen = 212 ui::TouchscreenDevice display1_touchscreen =
213 CreateTouchscreenDevice(10, fb_size); 213 CreateTouchscreenDevice(10, fb_size);
214 ui::TouchscreenDevice display2_touchscreen = 214 ui::TouchscreenDevice display2_touchscreen =
215 CreateTouchscreenDevice(11, fb_size); 215 CreateTouchscreenDevice(11, fb_size);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 EXPECT_NEAR(1280, x, 0.5); 267 EXPECT_NEAR(1280, x, 0.5);
268 EXPECT_NEAR(850, y, 0.5); 268 EXPECT_NEAR(850, y, 0.5);
269 } 269 }
270 270
271 TEST_F(TouchTransformerControllerTest, ExtendedMode) { 271 TEST_F(TouchTransformerControllerTest, ExtendedMode) {
272 // The internal display has size 1366 x 768. The external display has 272 // The internal display has size 1366 x 768. The external display has
273 // size 2560x1600. The total frame buffer is 2560x2428, 273 // size 2560x1600. The total frame buffer is 2560x2428,
274 // where 2428 = 768 + 60 (hidden gap) + 1600 274 // where 2428 = 768 + 60 (hidden gap) + 1600
275 // and the second monitor is translated to Point (0, 828) in the 275 // and the second monitor is translated to Point (0, 828) in the
276 // framebuffer. 276 // framebuffer.
277 DisplayInfo display1 = CreateDisplayInfo(1, 5u, gfx::Rect(0, 0, 1366, 768)); 277 display::ManagedDisplayInfo display1 =
278 DisplayInfo display2 = 278 CreateDisplayInfo(1, 5u, gfx::Rect(0, 0, 1366, 768));
279 display::ManagedDisplayInfo display2 =
279 CreateDisplayInfo(2, 6u, gfx::Rect(0, 828, 2560, 1600)); 280 CreateDisplayInfo(2, 6u, gfx::Rect(0, 828, 2560, 1600));
280 gfx::Size fb_size(2560, 2428); 281 gfx::Size fb_size(2560, 2428);
281 282
282 // Create the touchscreens with the same size as the framebuffer so we can 283 // Create the touchscreens with the same size as the framebuffer so we can
283 // share the tests between Ozone & X11. 284 // share the tests between Ozone & X11.
284 ui::TouchscreenDevice touchscreen1 = CreateTouchscreenDevice(5, fb_size); 285 ui::TouchscreenDevice touchscreen1 = CreateTouchscreenDevice(5, fb_size);
285 ui::TouchscreenDevice touchscreen2 = CreateTouchscreenDevice(6, fb_size); 286 ui::TouchscreenDevice touchscreen2 = CreateTouchscreenDevice(6, fb_size);
286 287
287 TouchTransformerController* tt_controller = 288 TouchTransformerController* tt_controller =
288 Shell::GetInstance()->touch_transformer_controller(); 289 Shell::GetInstance()->touch_transformer_controller();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 // On ozone we expect screen coordinates so add display origin. 337 // On ozone we expect screen coordinates so add display origin.
337 EXPECT_NEAR(2559 + 0, x, 0.5); 338 EXPECT_NEAR(2559 + 0, x, 0.5);
338 EXPECT_NEAR(1599 + 828, y, 0.5); 339 EXPECT_NEAR(1599 + 828, y, 0.5);
339 #else 340 #else
340 EXPECT_NEAR(2559, x, 0.5); 341 EXPECT_NEAR(2559, x, 0.5);
341 EXPECT_NEAR(1599, y, 0.5); 342 EXPECT_NEAR(1599, y, 0.5);
342 #endif 343 #endif
343 } 344 }
344 345
345 TEST_F(TouchTransformerControllerTest, TouchRadiusScale) { 346 TEST_F(TouchTransformerControllerTest, TouchRadiusScale) {
346 DisplayInfo display = CreateDisplayInfo(1, 5u, gfx::Rect(0, 0, 2560, 1600)); 347 display::ManagedDisplayInfo display =
348 CreateDisplayInfo(1, 5u, gfx::Rect(0, 0, 2560, 1600));
347 ui::TouchscreenDevice touch_device = 349 ui::TouchscreenDevice touch_device =
348 CreateTouchscreenDevice(5, gfx::Size(1001, 1001)); 350 CreateTouchscreenDevice(5, gfx::Size(1001, 1001));
349 351
350 TouchTransformerController* tt_controller = 352 TouchTransformerController* tt_controller =
351 Shell::GetInstance()->touch_transformer_controller(); 353 Shell::GetInstance()->touch_transformer_controller();
352 // Default touchscreen position range is 1001x1001; 354 // Default touchscreen position range is 1001x1001;
353 EXPECT_EQ(sqrt((2560.0 * 1600.0) / (1001.0 * 1001.0)), 355 EXPECT_EQ(sqrt((2560.0 * 1600.0) / (1001.0 * 1001.0)),
354 tt_controller->GetTouchResolutionScale(display, touch_device)); 356 tt_controller->GetTouchResolutionScale(display, touch_device));
355 } 357 }
356 358
357 } // namespace ash 359 } // namespace ash
OLDNEW
« no previous file with comments | « ash/touch/touch_transformer_controller.cc ('k') | ash/touch/touchscreen_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698