Test if _NET_CURRENT_DESKTOP is set correctly
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
a569487ba2
commit
66cadf5af8
|
@ -0,0 +1,88 @@
|
||||||
|
--- Tests for _NET_CURRENT_DESKTOP
|
||||||
|
|
||||||
|
local runner = require("_runner")
|
||||||
|
local test_client = require("_client")
|
||||||
|
local awful = require("awful")
|
||||||
|
|
||||||
|
local c
|
||||||
|
local s = screen[1]
|
||||||
|
local tags = s.tags
|
||||||
|
|
||||||
|
local function wait_for_current_desktop(tag)
|
||||||
|
-- The X property has 0-based indicies
|
||||||
|
local idx = awful.util.table.hasitem(tags, tag) - 1
|
||||||
|
return function()
|
||||||
|
local file = io.popen("xprop -notype -root _NET_CURRENT_DESKTOP")
|
||||||
|
local result = file:read("*all")
|
||||||
|
file:close()
|
||||||
|
|
||||||
|
-- Extract the value
|
||||||
|
local value = string.sub(result, 24, -2)
|
||||||
|
|
||||||
|
if tostring(idx) == value then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
print(string.format("Got _NET_CURRENT_DESKTOP = '%s', expected %d", value, idx))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local steps = {
|
||||||
|
|
||||||
|
-- Set up the state we want
|
||||||
|
function(count)
|
||||||
|
if count == 1 then
|
||||||
|
test_client()
|
||||||
|
awful.tag.viewmore({ tags[3], tags[4], tags[5] }, s)
|
||||||
|
end
|
||||||
|
|
||||||
|
c = awful.client.visible()[1]
|
||||||
|
|
||||||
|
if c then
|
||||||
|
c:move_to_tag(tags[4])
|
||||||
|
client.focus = c
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
wait_for_current_desktop(tags[4]),
|
||||||
|
|
||||||
|
-- Move the client around
|
||||||
|
function()
|
||||||
|
c:move_to_tag(tags[5])
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
wait_for_current_desktop(tags[5]),
|
||||||
|
|
||||||
|
-- Move the client to a non-selected tag
|
||||||
|
function()
|
||||||
|
c:move_to_tag(tags[6])
|
||||||
|
assert(client.focus == nil)
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
wait_for_current_desktop(tags[3]),
|
||||||
|
|
||||||
|
-- Move the client back
|
||||||
|
function(count)
|
||||||
|
if count == 1 then
|
||||||
|
c:move_to_tag(tags[4])
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Undo autofocus
|
||||||
|
assert(client.focus == c)
|
||||||
|
client.focus = nil
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
wait_for_current_desktop(tags[3]),
|
||||||
|
|
||||||
|
-- Change tag selection
|
||||||
|
function()
|
||||||
|
tags[3].selected = false
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
wait_for_current_desktop(tags[4]),
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
runner.run_steps(steps)
|
||||||
|
|
||||||
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
Loading…
Reference in New Issue