nixpkgs/nixos/tests/i3wm.nix
worldofpeace c95612a5a2 nixos/display-managers/auto: remove
This module allows root autoLogin, so we would break that for users, but
they shouldn't be using it anyways. This gives the impression like auto
is some special display manager, when it's just lightdm and special pam
rules to allow root autoLogin. It was created for NixOS's testing
so I believe this is where it belongs.
2020-01-29 19:05:46 -05:00

47 lines
1.6 KiB
Nix

import ./make-test-python.nix ({ pkgs, ...} : {
name = "i3wm";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ aszlig ];
};
machine = { lib, ... }: {
imports = [ ./common/x11.nix ./common/user-account.nix ];
test-support.displayManager.auto.user = "alice";
services.xserver.displayManager.defaultSession = lib.mkForce "none+i3";
services.xserver.windowManager.i3.enable = true;
};
testScript = { ... }: ''
with subtest("ensure x starts"):
machine.wait_for_x()
machine.wait_for_file("/home/alice/.Xauthority")
machine.succeed("xauth merge ~alice/.Xauthority")
with subtest("ensure we get first configuration window"):
machine.wait_for_window(r".*?first configuration.*?")
machine.sleep(2)
machine.screenshot("started")
with subtest("ensure we generate and save a config"):
# press return to indicate we want to gen a new config
machine.send_key("\n")
machine.sleep(2)
machine.screenshot("preconfig")
# press alt then return to indicate we want to use alt as our Mod key
machine.send_key("alt")
machine.send_key("\n")
machine.sleep(2)
# make sure the config file is created before we continue
machine.wait_for_file("/home/alice/.config/i3/config")
machine.screenshot("postconfig")
machine.sleep(2)
with subtest("ensure we can open a new terminal"):
machine.send_key("alt-ret")
machine.sleep(2)
machine.wait_for_window(r"alice.*?machine")
machine.sleep(2)
machine.screenshot("terminal")
'';
})