#include "remoting/client/input/keycode_map.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace remoting {
TEST(KeycodeMapTest, KeypressFromUnicodeWithAsciiCharsOnQwertyLayout) {
KeypressInfo keypress = KeypressFromUnicode('a');
EXPECT_EQ(ui::DomCode::US_A, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode('Q');
EXPECT_EQ(ui::DomCode::US_Q, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::SHIFT, keypress.modifiers);
keypress = KeypressFromUnicode(' ');
EXPECT_EQ(ui::DomCode::SPACE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode('\n');
EXPECT_EQ(ui::DomCode::ENTER, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode('!');
EXPECT_EQ(ui::DomCode::DIGIT1, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::SHIFT, keypress.modifiers);
keypress = KeypressFromUnicode('`');
EXPECT_EQ(ui::DomCode::BACKQUOTE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
}
TEST(KeycodeMapTest, KeypressFromUnicodeWithUnmappableCharsOnQwertyLayout) {
KeypressInfo keypress = KeypressFromUnicode(0);
EXPECT_EQ(ui::DomCode::NONE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode(7);
EXPECT_EQ(ui::DomCode::NONE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode(27);
EXPECT_EQ(ui::DomCode::NONE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode(128);
EXPECT_EQ(ui::DomCode::NONE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
keypress = KeypressFromUnicode(2000);
EXPECT_EQ(ui::DomCode::NONE, keypress.dom_code);
EXPECT_EQ(KeypressInfo::Modifier::NONE, keypress.modifiers);
}
}