1 //
2 // Copyright RIME Developers
3 // Distributed under the BSD License
4 //
5 // 2011-04-07 GONG Chen <chen.sst@gmail.com>
6 //
7 #include <gtest/gtest.h>
8 #include <rime/key_table.h>
9 
TEST(RimeKeyTableTest,KeycodeLookup)10 TEST(RimeKeyTableTest, KeycodeLookup) {
11   EXPECT_EQ(kControlMask, RimeGetModifierByName("Control"));
12   EXPECT_EQ(0, RimeGetModifierByName("abracadabra"));
13   EXPECT_EQ(0, RimeGetModifierByName("control"));
14   EXPECT_STREQ("Control", RimeGetModifierName(kControlMask));
15   EXPECT_STREQ("Release", RimeGetModifierName(kReleaseMask));
16   EXPECT_STREQ("Control", RimeGetModifierName(kControlMask | kReleaseMask));
17 }
18 
TEST(RimeKeyTableTest,ModifierLookup)19 TEST(RimeKeyTableTest, ModifierLookup) {
20   EXPECT_EQ(XK_A, RimeGetKeycodeByName("A"));
21   EXPECT_EQ(XK_z, RimeGetKeycodeByName("z"));
22   EXPECT_EQ(XK_0, RimeGetKeycodeByName("0"));
23   EXPECT_EQ(XK_grave, RimeGetKeycodeByName("grave"));
24   EXPECT_EQ(XK_VoidSymbol, RimeGetKeycodeByName("abracadabra"));
25   EXPECT_EQ(XK_VoidSymbol, RimeGetKeycodeByName("Control+c"));
26   EXPECT_STREQ("a", RimeGetKeyName(XK_a));
27   EXPECT_STREQ("space", RimeGetKeyName(XK_space));
28   EXPECT_STREQ(NULL, RimeGetKeyName(0xfffe));
29   EXPECT_STREQ(NULL, RimeGetKeyName(0xfffffe));
30 }
31