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

Unified Diff: chrome/browser/chromeos/display/display_preferences_unittest.cc

Issue 2540383002: Updates display manager and display preferences to handle touch calibration data. (Closed)
Patch Set: nit Created 4 years 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
Index: chrome/browser/chromeos/display/display_preferences_unittest.cc
diff --git a/chrome/browser/chromeos/display/display_preferences_unittest.cc b/chrome/browser/chromeos/display/display_preferences_unittest.cc
index 553c0b6b07f26d2fde39d3ec33c2acaef7ce822a..8b2ec1a2930a26b863aa0d81c720630e4d7f6c7b 100644
--- a/chrome/browser/chromeos/display/display_preferences_unittest.cc
+++ b/chrome/browser/chromeos/display/display_preferences_unittest.cc
@@ -51,6 +51,14 @@ const char kPositionKey[] = "position";
const char kOffsetKey[] = "offset";
const char kPlacementDisplayIdKey[] = "placement.display_id";
const char kPlacementParentDisplayIdKey[] = "placement.parent_display_id";
+const char kTouchCalibrationWidth[] = "touch_calibration_width";
+const char kTouchCalibrationHeight[] = "touch_calibration_height";
+const char* kTouchCalibrationDataKeys[] = {
+ "display_1_x", "display_1_y", "touch_1_x", "touch_1_y", // Pair 1
+ "display_2_x", "display_2_y", "touch_2_x", "touch_2_y", // Pair 2
+ "display_3_x", "display_3_y", "touch_3_x", "touch_3_y", // Pair 3
+ "display_4_x", "display_4_y", "touch_4_x", "touch_4_y" // Pair 4
+};
// The mean acceleration due to gravity on Earth in m/s^2.
const float kMeanGravity = -9.80665f;
@@ -307,6 +315,15 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
EXPECT_FALSE(display::test::DisplayManagerTestApi(display_manager())
.SetDisplayUIScale(id2, 1.25f));
+ // Set touch calibration data for display |id2|.
+ display::TouchCalibrationData::CalibrationPointPairQuad point_pair_quad = {
+ {std::make_pair(gfx::Point(10, 10), gfx::Point(11, 12)),
+ std::make_pair(gfx::Point(190, 10), gfx::Point(195, 8)),
+ std::make_pair(gfx::Point(10, 90), gfx::Point(12, 94)),
+ std::make_pair(gfx::Point(190, 90), gfx::Point(189, 88))}};
+ gfx::Size touch_size(200, 150);
+ display_manager()->SetTouchCalibrationData(id2, point_pair_quad, touch_size);
+
const base::DictionaryValue* displays =
local_state()->GetDictionary(prefs::kSecondaryDisplays);
const base::DictionaryValue* layout_value = nullptr;
@@ -354,6 +371,19 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
EXPECT_EQ(12, bottom);
EXPECT_EQ(13, right);
+ int x, y;
+ for (std::size_t row = 0; row < point_pair_quad.size(); row++) {
+ EXPECT_FALSE(property->GetInteger(kTouchCalibrationDataKeys[row * 4], &x));
+ EXPECT_FALSE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 1], &y));
+ EXPECT_FALSE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 2], &x));
+ EXPECT_FALSE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 3], &y));
+ }
+ EXPECT_FALSE(property->GetInteger(kTouchCalibrationWidth, &width));
+ EXPECT_FALSE(property->GetInteger(kTouchCalibrationHeight, &height));
+
std::string color_profile;
EXPECT_TRUE(property->GetString("color_profile_name", &color_profile));
EXPECT_EQ("dynamic", color_profile);
@@ -369,6 +399,26 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
EXPECT_FALSE(property->GetInteger("insets_bottom", &bottom));
EXPECT_FALSE(property->GetInteger("insets_right", &right));
+ for (std::size_t row = 0; row < point_pair_quad.size(); row++) {
+ EXPECT_TRUE(property->GetInteger(kTouchCalibrationDataKeys[row * 4], &x));
+ EXPECT_TRUE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 1], &y));
+ EXPECT_EQ(point_pair_quad[row].first.x(), x);
+ EXPECT_EQ(point_pair_quad[row].first.y(), y);
+
+ EXPECT_TRUE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 2], &x));
+ EXPECT_TRUE(
+ property->GetInteger(kTouchCalibrationDataKeys[row * 4 + 3], &y));
+ EXPECT_EQ(point_pair_quad[row].second.x(), x);
+ EXPECT_EQ(point_pair_quad[row].second.y(), y);
+ }
+ width = height = 0;
+ EXPECT_TRUE(property->GetInteger(kTouchCalibrationWidth, &width));
+ EXPECT_TRUE(property->GetInteger(kTouchCalibrationHeight, &height));
+ EXPECT_EQ(width, touch_size.width());
+ EXPECT_EQ(height, touch_size.height());
+
// |id2| doesn't have the color_profile because it doesn't have 'dynamic' in
// its available list.
EXPECT_FALSE(property->GetString("color_profile_name", &color_profile));
@@ -473,7 +523,7 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
// Set new display's selected resolution.
display_manager()->RegisterDisplayProperty(
id2 + 1, display::Display::ROTATE_0, 1.0f, nullptr, gfx::Size(500, 400),
- 1.0f, ui::COLOR_PROFILE_STANDARD);
+ 1.0f, ui::COLOR_PROFILE_STANDARD, nullptr);
UpdateDisplay("200x200*2, 600x500#600x500|500x400");
@@ -499,7 +549,7 @@ TEST_F(DisplayPreferencesTest, BasicStores) {
// Set yet another new display's selected resolution.
display_manager()->RegisterDisplayProperty(
id2 + 1, display::Display::ROTATE_0, 1.0f, nullptr, gfx::Size(500, 400),
- 1.0f, ui::COLOR_PROFILE_STANDARD);
+ 1.0f, ui::COLOR_PROFILE_STANDARD, nullptr);
// Disconnect 2nd display first to generate new id for external display.
UpdateDisplay("200x200*2");
UpdateDisplay("200x200*2, 500x400#600x500|500x400%60.0f");

Powered by Google App Engine
This is Rietveld 408576698