blob: f3ea9666b465ce8aff3a5956baaa63a52c0fba81 [file] [log] [blame]
// 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