| // Copyright 2016 The Chromium OS 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 "touch_keyboard/statemachine/slot.h" |
| #include <gtest/gtest.h> |
| |
| namespace mtstatemachine { |
| |
| constexpr int kTestPressure = 58; |
| constexpr int kTestTID = 3; |
| constexpr int kTestX = 100; |
| constexpr int kTestY = 200; |
| |
| class SlotTest : public ::testing::Test { |
| protected: |
| Slot BuildTestSlot() { |
| Slot test_slot; |
| test_slot[EventKey(EV_ABS, ABS_MT_TRACKING_ID)] = kTestTID; |
| test_slot[EventKey(EV_ABS, ABS_MT_POSITION_X)] = kTestX; |
| test_slot[EventKey(EV_ABS, ABS_MT_POSITION_Y)] = kTestY; |
| test_slot[EventKey(EV_ABS, ABS_MT_PRESSURE)] = kTestPressure; |
| return test_slot; |
| } |
| }; |
| |
| TEST_F(SlotTest, ValueLookupTest) { |
| // Check to make sure that the FindValueByEvent function works by looking |
| // up the values in a test Slot object. |
| Slot test_slot = BuildTestSlot(); |
| EXPECT_EQ(test_slot.FindValueByEvent(EV_ABS, ABS_MT_TRACKING_ID), kTestTID); |
| EXPECT_EQ(test_slot.FindValueByEvent(EV_ABS, ABS_MT_POSITION_X), kTestX); |
| EXPECT_EQ(test_slot.FindValueByEvent(EV_ABS, ABS_MT_POSITION_Y), kTestY); |
| EXPECT_EQ(test_slot.FindValueByEvent(EV_ABS, ABS_MT_PRESSURE), kTestPressure); |
| } |
| |
| TEST_F(SlotTest, MissingValueTest) { |
| // Confirm that looking up a nonexistent value behaves smoothly. They |
| // should return kSlotMissingValue if the slot is missing the requested |
| // value. |
| Slot test_slot = BuildTestSlot(); |
| EXPECT_EQ(test_slot.FindValueByEvent(EV_ABS, ABS_MT_TOUCH_MAJOR), |
| kSlotMissingValue); |
| } |
| |
| } // namespace mtstatemachine |
| |
| int main(int argc, char** argv) { |
| ::testing::InitGoogleTest(&argc, argv); |
| return RUN_ALL_TESTS(); |
| } |