mirror of
https://github.com/awesomeWM/awesome
synced 2024-11-17 07:47:41 +01:00
5ccdb933bf
This commit makes all C code that previously returned a screen index now return a screen object, continuing the deprecation of screen indicies. Note that this is an API break and will likely cause all kinds of problems for users. The change also breaks some tests which are suitably fixed in this commit. Signed-off-by: Uli Schlachter <psychon@znc.in>
115 lines
3.7 KiB
Lua
115 lines
3.7 KiB
Lua
--- Tests for urgent property.
|
|
|
|
local awful = require("awful")
|
|
local runner = require("_runner")
|
|
|
|
-- This uses the global "tags" array set in the default config
|
|
-- luacheck: globals tags
|
|
|
|
-- Some basic assertion that the tag is not marked "urgent" already.
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent") == nil)
|
|
|
|
|
|
-- Setup signal handler which should be called.
|
|
-- TODO: generalize and move to runner.
|
|
local urgent_cb_done
|
|
client.connect_signal("property::urgent", function (c)
|
|
urgent_cb_done = true
|
|
assert(c.class == "XTerm", "Client should be xterm!")
|
|
end)
|
|
|
|
local manage_cb_done
|
|
client.connect_signal("manage", function (c)
|
|
manage_cb_done = true
|
|
assert(c.class == "XTerm", "Client should be xterm!")
|
|
end)
|
|
|
|
|
|
-- Steps to do for this test.
|
|
local steps = {
|
|
-- Step 1: tag 2 should become urgent, when a client gets tagged via rules.
|
|
function(count)
|
|
if count == 1 then -- Setup.
|
|
urgent_cb_done = false
|
|
-- Select first tag.
|
|
awful.tag.viewonly(tags[awful.screen.focused()][1])
|
|
|
|
runner.add_to_default_rules({ rule = { class = "XTerm" },
|
|
properties = { tag = tags[awful.screen.focused()][2], focus = true } })
|
|
|
|
awful.spawn("xterm")
|
|
end
|
|
if urgent_cb_done then
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent") == true)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent_count") == 1)
|
|
return true
|
|
end
|
|
end,
|
|
|
|
-- Step 2: when switching to tag 2, it should not be urgent anymore.
|
|
function(count)
|
|
if count == 1 then
|
|
-- Setup: switch to tag.
|
|
root.fake_input("key_press", "Super_L")
|
|
root.fake_input("key_press", "2")
|
|
root.fake_input("key_release", "2")
|
|
root.fake_input("key_release", "Super_L")
|
|
|
|
elseif awful.tag.selectedlist()[1] == tags[awful.screen.focused()][2] then
|
|
assert(#client.get() == 1)
|
|
local c = client.get()[1]
|
|
assert(not c.urgent, "Client is not urgent anymore.")
|
|
assert(c == client.focus, "Client is focused.")
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent") == false)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent_count") == 0)
|
|
return true
|
|
end
|
|
end,
|
|
|
|
-- Step 3: tag 2 should not be urgent, but switched to.
|
|
function(count)
|
|
if count == 1 then -- Setup.
|
|
urgent_cb_done = false
|
|
|
|
-- Select first tag.
|
|
awful.tag.viewonly(tags[awful.screen.focused()][1])
|
|
|
|
runner.add_to_default_rules({ rule = { class = "XTerm" },
|
|
properties = { tag = tags[awful.screen.focused()][2], focus = true, switchtotag = true }})
|
|
|
|
awful.spawn("xterm")
|
|
|
|
elseif awful.tag.selectedlist()[1] == tags[awful.screen.focused()][2] then
|
|
assert(not urgent_cb_done)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent") == false)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent_count") == 0)
|
|
assert(awful.tag.selectedlist()[2] == nil)
|
|
return true
|
|
end
|
|
end,
|
|
|
|
|
|
-- Step 4: tag 2 should not become urgent, when a client gets tagged via
|
|
-- rules with focus=false.
|
|
function(count)
|
|
if count == 1 then -- Setup.
|
|
client.get()[1]:kill()
|
|
manage_cb_done = false
|
|
|
|
runner.add_to_default_rules({rule = { class = "XTerm" },
|
|
properties = { tag = tags[awful.screen.focused()][2], focus = false }})
|
|
|
|
awful.spawn("xterm")
|
|
end
|
|
if manage_cb_done then
|
|
assert(client.get()[1].urgent == false)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent") == false)
|
|
assert(awful.tag.getproperty(tags[awful.screen.focused()][2], "urgent_count") == 0)
|
|
return true
|
|
end
|
|
end,
|
|
}
|
|
|
|
runner.run_steps(steps)
|
|
|
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|