| // Copyright 2019 The Fuchsia 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 "src/ui/lib/key_util/key_util.h" |
| |
| #include <gtest/gtest.h> |
| |
| #include "hid-parser/usages.h" |
| #include "hid/usages.h" |
| |
| namespace root_presenter { |
| namespace { |
| |
| TEST(InputUtil, IntoKeyEvent) { |
| fuchsia::ui::input::KeyboardEvent kbd = {}; |
| kbd.phase = fuchsia::ui::input::KeyboardEventPhase::PRESSED; |
| kbd.hid_usage = HID_USAGE_KEY_A; |
| kbd.modifiers = fuchsia::ui::input::kModifierLeftShift; |
| |
| std::optional<fuchsia::ui::input2::KeyEvent> key = key_util::into_key_event(kbd); |
| |
| EXPECT_TRUE(key); |
| EXPECT_EQ(key->phase(), fuchsia::ui::input2::KeyEventPhase::PRESSED); |
| EXPECT_EQ(key->key(), fuchsia::ui::input2::Key::A); |
| EXPECT_EQ(key->modifiers(), |
| fuchsia::ui::input2::Modifiers::SHIFT | fuchsia::ui::input2::Modifiers::LEFT_SHIFT); |
| } |
| |
| TEST(InputUtil, IntoKeyEventUnknown) { |
| fuchsia::ui::input::KeyboardEvent kbd = {}; |
| kbd.hid_usage = HID_USAGE_KEY_ERROR_ROLLOVER; |
| |
| std::optional<fuchsia::ui::input2::KeyEvent> key = key_util::into_key_event(kbd); |
| |
| EXPECT_FALSE(key); |
| } |
| |
| TEST(InputUtil, FuchsiaKeyToHidKey) { |
| std::optional<uint32_t> key = |
| key_util::fuchsia_key_to_hid_key(fuchsia::ui::input2::Key::LEFT_SHIFT); |
| ASSERT_TRUE(key); |
| ASSERT_EQ(*key, HID_USAGE_KEY_LEFT_SHIFT); |
| } |
| |
| } // namespace |
| } // namespace root_presenter |