58 lines
2.2 KiB
Lua
58 lines
2.2 KiB
Lua
|
local naughty = require("naughty")
|
||
|
local awful = require("awful")
|
||
|
|
||
|
local function prettyerror(key, keysym, character, expected_keysym, expected_character)
|
||
|
if not keysym then keysym = "[nil]" end
|
||
|
if not character then character = "nil" end
|
||
|
if not expected_keysym then expected_keysym = "[nil]" end
|
||
|
if not expected_character then expected_character = "nil" end
|
||
|
local message = "key \""..key.."\" returned "..keysym.." ("..character..")."..
|
||
|
"instead of keysym "..expected_keysym.." ("..expected_character..")"
|
||
|
return string.gsub(message, "(.)", {
|
||
|
["\a"] = "\\a",
|
||
|
["\b"] = "\\b",
|
||
|
["\27"] = "\\e",
|
||
|
["\f"] = "\\f",
|
||
|
["\r"] = "\\r",
|
||
|
["\n"] = "\\n",
|
||
|
["\t"] = "\\t",
|
||
|
["\v"] = "\\v",
|
||
|
})
|
||
|
end
|
||
|
|
||
|
local function keycode_test(key, expected_keysym, expected_character)
|
||
|
local keysym, character = awful.keyboard.get_key_name(key)
|
||
|
naughty.notification {
|
||
|
urgency = "low",
|
||
|
title = keysym or "[nil]",
|
||
|
message = character or "[nil]"
|
||
|
}
|
||
|
return assert(keysym == expected_keysym and character == expected_character,
|
||
|
prettyerror(key, keysym, character, expected_keysym, expected_character))
|
||
|
end
|
||
|
|
||
|
local function triple_test(keycode, expected_keysym, expected_character)
|
||
|
local result = keycode_test(keycode, expected_keysym, expected_character)
|
||
|
if expected_keysym then
|
||
|
local local_result = keycode_test(expected_keysym, expected_keysym, expected_character)
|
||
|
result = result and local_result
|
||
|
end
|
||
|
if expected_character then
|
||
|
local local_result = keycode_test(expected_character, expected_keysym, expected_character)
|
||
|
result = result and local_result
|
||
|
end
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
require("_runner").run_steps({
|
||
|
function() return triple_test("#9", "Escape", "\27") end,
|
||
|
function() return triple_test("#22", "BackSpace", "\b") end,
|
||
|
function() return triple_test("#23", "Tab", "\t") end,
|
||
|
function() return triple_test("#111", "Up", nil) end,
|
||
|
function() return triple_test("#113", "Left", nil) end,
|
||
|
function() return triple_test("#114", "Right", nil) end,
|
||
|
function() return triple_test("#116", "Down", nil) end,
|
||
|
})
|
||
|
|
||
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|