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

Unified Diff: ash/touch/touchscreen_util_unittest.cc

Issue 336863002: Moving input device hotplug event processing outside of ui/display (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove TouchscreenDelegate references from display_unittests Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/touch/touchscreen_util.cc ('k') | ui/display/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/touch/touchscreen_util_unittest.cc
diff --git a/ash/touch/touchscreen_util_unittest.cc b/ash/touch/touchscreen_util_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ac9f4a051ce7216769034c7efa5e3610b16856e1
--- /dev/null
+++ b/ash/touch/touchscreen_util_unittest.cc
@@ -0,0 +1,142 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <vector>
+
+#include "ash/display/display_info.h"
+#include "ash/touch/touchscreen_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace ash {
+
+class TouchscreenUtilTest : public testing::Test {
+ public:
+ TouchscreenUtilTest() {}
+ virtual ~TouchscreenUtilTest() {}
+
+ virtual void SetUp() OVERRIDE {
+ // Internal display will always match to internal touchscreen. If internal
+ // touchscreen can't be detected, it is then associated to a touch screen
+ // with matching size.
+ {
+ DisplayInfo display(1, std::string(), false);
+ DisplayMode mode(gfx::Size(1920, 1080), 60.0, false, true);
+ mode.native = true;
+ std::vector<DisplayMode> modes(1, mode);
+ display.set_display_modes(modes);
+ displays_.push_back(display);
+ gfx::Display::SetInternalDisplayId(1);
+ }
+
+ {
+ DisplayInfo display(2, std::string(), false);
+ DisplayMode mode(gfx::Size(800, 600), 60.0, false, true);
+ mode.native = true;
+ std::vector<DisplayMode> modes(1, mode);
+ display.set_display_modes(modes);
+ displays_.push_back(display);
+ }
+
+ // Display without native mode. Must not be matched to any touch screen.
+ {
+ DisplayInfo display(3, std::string(), false);
+ displays_.push_back(display);
+ }
+
+ {
+ DisplayInfo display(4, std::string(), false);
+ DisplayMode mode(gfx::Size(1024, 768), 60.0, false, true);
+ mode.native = true;
+ std::vector<DisplayMode> modes(1, mode);
+ display.set_display_modes(modes);
+ displays_.push_back(display);
+ }
+ }
+
+ virtual void TearDown() OVERRIDE {
+ displays_.clear();
+ }
+
+ protected:
+ std::vector<DisplayInfo> displays_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TouchscreenUtilTest);
+};
+
+TEST_F(TouchscreenUtilTest, NoTouchscreens) {
+ std::vector<ui::TouchscreenDevice> devices;
+ AssociateTouchscreens(&displays_, devices);
+
+ for (size_t i = 0; i < displays_.size(); ++i)
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId,
+ displays_[i].touch_device_id());
+}
+
+TEST_F(TouchscreenUtilTest, OneToOneMapping) {
+ std::vector<ui::TouchscreenDevice> devices;
+ devices.push_back(ui::TouchscreenDevice(1, gfx::Size(800, 600), false));
+ devices.push_back(ui::TouchscreenDevice(2, gfx::Size(1024, 768), false));
+
+ AssociateTouchscreens(&displays_, devices);
+
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[0].touch_device_id());
+ EXPECT_EQ(1, displays_[1].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[2].touch_device_id());
+ EXPECT_EQ(2, displays_[3].touch_device_id());
+}
+
+TEST_F(TouchscreenUtilTest, MapToCorrectDisplaySize) {
+ std::vector<ui::TouchscreenDevice> devices;
+ devices.push_back(ui::TouchscreenDevice(2, gfx::Size(1024, 768), false));
+
+ AssociateTouchscreens(&displays_, devices);
+
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[0].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[1].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[2].touch_device_id());
+ EXPECT_EQ(2, displays_[3].touch_device_id());
+}
+
+TEST_F(TouchscreenUtilTest, MapWhenSizeDiffersByOne) {
+ std::vector<ui::TouchscreenDevice> devices;
+ devices.push_back(ui::TouchscreenDevice(1, gfx::Size(801, 600), false));
+ devices.push_back(ui::TouchscreenDevice(2, gfx::Size(1023, 768), false));
+
+ AssociateTouchscreens(&displays_, devices);
+
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[0].touch_device_id());
+ EXPECT_EQ(1, displays_[1].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[2].touch_device_id());
+ EXPECT_EQ(2, displays_[3].touch_device_id());
+}
+
+TEST_F(TouchscreenUtilTest, MapWhenSizesDoNotMatch) {
+ std::vector<ui::TouchscreenDevice> devices;
+ devices.push_back(ui::TouchscreenDevice(1, gfx::Size(1022, 768), false));
+ devices.push_back(ui::TouchscreenDevice(2, gfx::Size(802, 600), false));
+
+ AssociateTouchscreens(&displays_, devices);
+
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[0].touch_device_id());
+ EXPECT_EQ(1, displays_[1].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[2].touch_device_id());
+ EXPECT_EQ(2, displays_[3].touch_device_id());
+}
+
+TEST_F(TouchscreenUtilTest, MapInternalTouchscreen) {
+ std::vector<ui::TouchscreenDevice> devices;
+ devices.push_back(ui::TouchscreenDevice(1, gfx::Size(1920, 1080), false));
+ devices.push_back(ui::TouchscreenDevice(2, gfx::Size(9999, 888), true));
+
+ AssociateTouchscreens(&displays_, devices);
+
+ // Internal touchscreen is always mapped to internal display.
+ EXPECT_EQ(2, displays_[0].touch_device_id());
+ EXPECT_EQ(1, displays_[1].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[2].touch_device_id());
+ EXPECT_EQ(ui::TouchscreenDevice::kInvalidId, displays_[3].touch_device_id());
+}
+
+} // namespace ash
« no previous file with comments | « ash/touch/touchscreen_util.cc ('k') | ui/display/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698