diff --git a/.travis.yml b/.travis.yml index cf610b59..c6b08ccd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,7 +31,7 @@ install: - sudo apt-get install -y libcairo2-dev xmlto asciidoc libpango1.0-dev gperf luadoc libxcb-xtest0-dev libxcb-icccm4-dev libxcb-randr0-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libxcb-image0-dev libev-dev libimlib2-dev libdbus-1-dev libxdg-basedir-dev libstartup-notification0-dev imagemagick libxcb1-dev libxcb-shape0-dev libxcb-util0-dev libxcursor-dev libx11-xcb-dev libxcb-cursor-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev # Deps for functional tests. - - sudo apt-get install -y dbus-x11 xterm xdotool xterm xvfb + - sudo apt-get install -y dbus-x11 xterm xdotool xterm xvfb rxvt-unicode # Install Lua (per env). - sudo apt-get install -y lib${LUANAME}-dev ${LUANAME} ${INSTALL_PKGS} diff --git a/tests/test-spawn-snid.lua b/tests/test-spawn-snid.lua new file mode 100644 index 00000000..87541583 --- /dev/null +++ b/tests/test-spawn-snid.lua @@ -0,0 +1,42 @@ +--- Tests for spawn's startup notifications. + +local spawn = require("awful.spawn") + +local manage_called, c_snid + +client.connect_signal("manage", function(c) + manage_called = true + c_snid = c.startup_id +end) + + +local ret, snid +local steps = { + function(count) + if count == 1 then + ret, snid = spawn('urxvt', true) + elseif manage_called then + local c = client.get()[1] + assert(ret) + assert(snid) + assert(snid == c_snid) + return true + end + end, + + -- Test that c.startup_id is nil for a client without startup notifications, + -- and especially not the one from the previous spawn. + function(count) + if count == 1 then + manage_called = false + ret, snid = spawn('urxvt', false) + elseif manage_called then + assert(ret) + assert(snid == nil) + assert(c_snid == nil, "c.startup_snid should be nil!") + return true + end + end +} + +require("_runner").run_steps(steps)