Index: ash/touch/touch_transformer_controller_unittest.cc |
diff --git a/ash/touch/touch_transformer_controller_unittest.cc b/ash/touch/touch_transformer_controller_unittest.cc |
index 7ffab14b1502c7b3be066cc718e855113e507424..312331442c75e335dc3a5361df2ec73490ff9b30 100644 |
--- a/ash/touch/touch_transformer_controller_unittest.cc |
+++ b/ash/touch/touch_transformer_controller_unittest.cc |
@@ -14,14 +14,30 @@ |
namespace ash { |
namespace { |
+ |
DisplayInfo CreateDisplayInfo(int64 id, |
unsigned int touch_device_id, |
const gfx::Rect& bounds) { |
DisplayInfo info(id, std::string(), false); |
info.SetBounds(bounds); |
info.set_touch_device_id(touch_device_id); |
+ |
+ // Create a default mode. |
+ std::vector<DisplayMode> default_modes( |
+ 1, DisplayMode(bounds.size(), 60, false, true)); |
+ info.set_display_modes(default_modes); |
+ |
return info; |
} |
+ |
+ui::TouchscreenDevice CreateTouchscreenDevice(unsigned int id, |
+ const gfx::Size& size) { |
+ return ui::TouchscreenDevice(id, |
+ ui::InputDeviceType::INPUT_DEVICE_EXTERNAL, |
+ std::string(), |
+ size); |
+} |
+ |
} // namespace |
typedef test::AshTestBase TouchTransformerControllerTest; |
@@ -32,6 +48,7 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerMirrorModeLetterboxing) { |
// mode. |
DisplayInfo internal_display_info = |
CreateDisplayInfo(1, 10u, gfx::Rect(0, 0, 1920, 1200)); |
+ internal_display_info.set_is_aspect_preserving_scaling(true); |
std::vector<DisplayMode> internal_modes; |
internal_modes.push_back( |
DisplayMode(gfx::Size(2560, 1700), 60, false, true)); |
@@ -42,21 +59,32 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerMirrorModeLetterboxing) { |
DisplayInfo external_display_info = |
CreateDisplayInfo(2, 11u, gfx::Rect(0, 0, 1920, 1200)); |
+ gfx::Size fb_size(1920, 1200); |
+ |
+ // Create the touchscreens with the same size as the framebuffer so we can |
+ // share the tests between Ozone & X11. |
+ ui::TouchscreenDevice internal_touchscreen = |
+ CreateTouchscreenDevice(10, fb_size); |
+ ui::TouchscreenDevice external_touchscreen = |
+ CreateTouchscreenDevice(11, fb_size); |
+ |
TouchTransformerController* tt_controller = |
Shell::GetInstance()->touch_transformer_controller(); |
ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance(); |
- tt_controller->force_compute_mirror_mode_touch_transformer_ = true; |
device_manager->UpdateTouchInfoForDisplay( |
internal_display_info.id(), |
internal_display_info.touch_device_id(), |
- tt_controller->GetMirrorModeTouchTransformer(internal_display_info)); |
+ tt_controller->GetTouchTransform(internal_display_info, |
+ internal_touchscreen, |
+ fb_size)); |
- tt_controller->force_compute_mirror_mode_touch_transformer_ = false; |
device_manager->UpdateTouchInfoForDisplay( |
external_display_info.id(), |
external_display_info.touch_device_id(), |
- tt_controller->GetMirrorModeTouchTransformer(external_display_info)); |
+ tt_controller->GetTouchTransform(external_display_info, |
+ external_touchscreen, |
+ fb_size)); |
EXPECT_EQ(1, device_manager->GetDisplayForTouchDevice(10)); |
EXPECT_EQ(2, device_manager->GetDisplayForTouchDevice(11)); |
@@ -93,6 +121,7 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerMirrorModePillarboxing) { |
// mode. |
DisplayInfo internal_display_info = |
CreateDisplayInfo(1, 10, gfx::Rect(0, 0, 1024, 768)); |
+ internal_display_info.set_is_aspect_preserving_scaling(true); |
std::vector<DisplayMode> internal_modes; |
internal_modes.push_back( |
DisplayMode(gfx::Size(1366, 768), 60, false, true)); |
@@ -103,21 +132,32 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerMirrorModePillarboxing) { |
DisplayInfo external_display_info = |
CreateDisplayInfo(2, 11, gfx::Rect(0, 0, 1024, 768)); |
+ gfx::Size fb_size(1024, 768); |
+ |
+ // Create the touchscreens with the same size as the framebuffer so we can |
+ // share the tests between Ozone & X11. |
+ ui::TouchscreenDevice internal_touchscreen = |
+ CreateTouchscreenDevice(10, fb_size); |
+ ui::TouchscreenDevice external_touchscreen = |
+ CreateTouchscreenDevice(11, fb_size); |
+ |
TouchTransformerController* tt_controller = |
Shell::GetInstance()->touch_transformer_controller(); |
ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance(); |
- tt_controller->force_compute_mirror_mode_touch_transformer_ = true; |
device_manager->UpdateTouchInfoForDisplay( |
internal_display_info.id(), |
internal_display_info.touch_device_id(), |
- tt_controller->GetMirrorModeTouchTransformer(internal_display_info)); |
+ tt_controller->GetTouchTransform(internal_display_info, |
+ internal_touchscreen, |
+ fb_size)); |
- tt_controller->force_compute_mirror_mode_touch_transformer_ = false; |
device_manager->UpdateTouchInfoForDisplay( |
external_display_info.id(), |
external_display_info.touch_device_id(), |
- tt_controller->GetMirrorModeTouchTransformer(external_display_info)); |
+ tt_controller->GetTouchTransform(external_display_info, |
+ external_touchscreen, |
+ fb_size)); |
EXPECT_EQ(1, device_manager->GetDisplayForTouchDevice(10)); |
EXPECT_EQ(2, device_manager->GetDisplayForTouchDevice(11)); |
@@ -159,6 +199,11 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerExtendedMode) { |
CreateDisplayInfo(2, 6u, gfx::Rect(0, 828, 2560, 1600)); |
gfx::Size fb_size(2560, 2428); |
+ // Create the touchscreens with the same size as the framebuffer so we can |
+ // share the tests between Ozone & X11. |
+ ui::TouchscreenDevice touchscreen1 = CreateTouchscreenDevice(5, fb_size); |
+ ui::TouchscreenDevice touchscreen2 = CreateTouchscreenDevice(6, fb_size); |
+ |
TouchTransformerController* tt_controller = |
Shell::GetInstance()->touch_transformer_controller(); |
ui::DeviceDataManager* device_manager = ui::DeviceDataManager::GetInstance(); |
@@ -166,12 +211,16 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerExtendedMode) { |
device_manager->UpdateTouchInfoForDisplay( |
display1.id(), |
display1.touch_device_id(), |
- tt_controller->GetExtendedModeTouchTransformer(display1, fb_size)); |
+ tt_controller->GetTouchTransform(display1, |
+ touchscreen1, |
+ fb_size)); |
device_manager->UpdateTouchInfoForDisplay( |
display2.id(), |
display2.touch_device_id(), |
- tt_controller->GetExtendedModeTouchTransformer(display2, fb_size)); |
+ tt_controller->GetTouchTransform(display2, |
+ touchscreen2, |
+ fb_size)); |
EXPECT_EQ(1, device_manager->GetDisplayForTouchDevice(5)); |
EXPECT_EQ(2, device_manager->GetDisplayForTouchDevice(6)); |
@@ -207,10 +256,8 @@ TEST_F(TouchTransformerControllerTest, TouchTransformerExtendedMode) { |
TEST_F(TouchTransformerControllerTest, TouchRadiusScale) { |
DisplayInfo display = CreateDisplayInfo(1, 5u, gfx::Rect(0, 0, 2560, 1600)); |
- ui::TouchscreenDevice touch_device(5, |
- ui::InputDeviceType::INPUT_DEVICE_EXTERNAL, |
- std::string(), |
- gfx::Size(1001, 1001)); |
+ ui::TouchscreenDevice touch_device = |
+ CreateTouchscreenDevice(5, gfx::Size(1001, 1001)); |
TouchTransformerController* tt_controller = |
Shell::GetInstance()->touch_transformer_controller(); |