xkbcommon-0.0.0: tests/keysym.hs
import Control.Monad
import Data.Maybe
import Text.XkbCommon
import Text.XkbCommon.KeysymList
import Common
testString :: String -> Maybe Keysym -> IO ()
testString str ck = do
print $ keysymFromName str
assert (keysymFromName str == ck) ("Name " ++ str ++ " returned " ++
show (keysymFromName str) ++" instead of expected keysym " ++ show ck)
testCaselessString :: String -> Maybe Keysym -> IO ()
testCaselessString str ck = assert (keysymFromNameCaseInsensitive str == ck) ("Caseless name " ++ str ++ " returned " ++
show (keysymFromNameCaseInsensitive str) ++" instead of expected keysym " ++ show ck)
testKeysym :: Keysym -> String -> IO ()
testKeysym ks str = assert (keysymName ks == str) ("Keysym name " ++ keysymName ks ++
" for keysym " ++ show ks ++ " did not match expected value " ++ str)
testUtf8 :: Keysym -> String -> IO ()
testUtf8 ks str = do
print $ keysymUtf8 ks
assert (keysymUtf8 ks == str) ("Keysym " ++ keysymUtf8 ks ++
" for " ++ show ks ++ " did not match expected value " ++ str)
main = do
testString "Undo" (Just $ Keysym 0xFF65)
testString "ThisKeyShouldNotExist" Nothing
testString "XF86_Switch_VT_5" (Just $ Keysym 0x1008FE05)
testString "VoidSymbol" (Just $ Keysym 0xFFFFFF)
testString "U4567" (Just $ Keysym 0x1004567)
testString "0x10203040" (Just $ Keysym 0x10203040)
testString "a" (Just $ Keysym 0x61)
testString "A" (Just $ Keysym 0x41)
testString "ch" (Just $ Keysym 0xfea0)
testString "Ch" (Just $ Keysym 0xfea1)
testString "CH" (Just $ Keysym 0xfea2)
testString "THORN" (Just $ Keysym 0x00de)
testString "Thorn" (Just $ Keysym 0x00de)
testString "thorn" (Just $ Keysym 0x00fe)
testKeysym (Keysym 0x1008FF56) "XF86Close"
testKeysym (Keysym 0x1008FE20) "XF86Ungrab"
testKeysym (Keysym 0x01001234) "U1234"
testKeysym (Keysym 0x010002DE) "U02DE"
testKeysym (Keysym 0x0101F4A9) "U0001F4A9"
testCaselessString "Undo" (Just $ Keysym 0xFF65)
testCaselessString "UNDO" (Just $ Keysym 0xFF65)
testCaselessString "A" (Just $ Keysym 0x61)
testCaselessString "a" (Just $ Keysym 0x61)
testCaselessString "ThisKeyShouldNotExist" Nothing
testCaselessString "XF86_Switch_vT_5" (Just $ Keysym 0x1008FE05)
testCaselessString "xF86_SwitcH_VT_5" (Just $ Keysym 0x1008FE05)
testCaselessString "xF86SwiTch_VT_5" (Just $ Keysym 0x1008FE05)
testCaselessString "xF86Switch_vt_5" (Just $ Keysym 0x1008FE05)
testCaselessString "VoidSymbol" (Just $ Keysym 0xFFFFFF)
testCaselessString "vOIDsymBol" (Just $ Keysym 0xFFFFFF)
testCaselessString "U4567" (Just $ Keysym 0x1004567)
testCaselessString "u4567" (Just $ Keysym 0x1004567)
testCaselessString "0x10203040" (Just $ Keysym 0x10203040)
testCaselessString "0X10203040" (Just $ Keysym 0x10203040)
testCaselessString "THORN" (Just $ Keysym 0x00fe)
testCaselessString "Thorn" (Just $ Keysym 0x00fe)
testCaselessString "thorn" (Just $ Keysym 0x00fe)
testUtf8 keysym_y "y"
testUtf8 keysym_u "u"
testUtf8 keysym_m "m"
testUtf8 keysym_Cyrillic_em "м"
testUtf8 keysym_Cyrillic_u "у"
testUtf8 keysym_exclam "!"
testUtf8 keysym_oslash "ø"
testUtf8 keysym_hebrew_aleph "א"
testUtf8 keysym_Arabic_sheen "ش"
testUtf8 keysym_space " "
testUtf8 keysym_KP_Space " "
testUtf8 keysym_BackSpace "\b"
--testUtf8 keysym_Escape "\033"
testUtf8 keysym_KP_Separator ","
testUtf8 keysym_KP_Decimal "."
testUtf8 keysym_Tab "\t"
testUtf8 keysym_KP_Tab "\t"
testUtf8 keysym_hyphen "\173" -- ""
testUtf8 keysym_Linefeed "\n"
testUtf8 keysym_Return "\r"
testUtf8 keysym_KP_Enter "\r"
testUtf8 keysym_KP_Equal "="
testUtf8 keysym_9 "9"
testUtf8 keysym_KP_9 "9"
testUtf8 keysym_KP_Multiply "*"
testUtf8 keysym_KP_Subtract "-"