at 22.05-pre 1.9 kB view raw
1import ./make-test-python.nix ({ pkgs, lib, ...} : 2 3{ 4 name = "pantheon"; 5 6 meta = with lib; { 7 maintainers = teams.pantheon.members; 8 }; 9 10 machine = { ... }: 11 12 { 13 imports = [ ./common/user-account.nix ]; 14 15 services.xserver.enable = true; 16 services.xserver.desktopManager.pantheon.enable = true; 17 18 }; 19 20 enableOCR = true; 21 22 testScript = { nodes, ... }: let 23 user = nodes.machine.config.users.users.alice; 24 bob = nodes.machine.config.users.users.bob; 25 in '' 26 machine.wait_for_unit("display-manager.service") 27 28 with subtest("Test we can see usernames in elementary-greeter"): 29 machine.wait_for_text("${user.description}") 30 # OCR was struggling with this one. 31 # machine.wait_for_text("${bob.description}") 32 machine.screenshot("elementary_greeter_lightdm") 33 34 with subtest("Login with elementary-greeter"): 35 machine.send_chars("${user.password}\n") 36 machine.wait_for_x() 37 machine.wait_for_file("${user.home}/.Xauthority") 38 machine.succeed("xauth merge ${user.home}/.Xauthority") 39 40 with subtest("Check that logging in has given the user ownership of devices"): 41 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}") 42 43 # TODO: DBus API could eliminate this? Pantheon uses Bamf. 44 with subtest("Check if pantheon session components actually start"): 45 machine.wait_until_succeeds("pgrep gala") 46 machine.wait_for_window("gala") 47 machine.wait_until_succeeds("pgrep -f io.elementary.wingpanel") 48 machine.wait_for_window("io.elementary.wingpanel") 49 machine.wait_until_succeeds("pgrep plank") 50 machine.wait_for_window("plank") 51 52 with subtest("Open elementary terminal"): 53 machine.execute("su - ${user.name} -c 'DISPLAY=:0 io.elementary.terminal >&2 &'") 54 machine.wait_for_window("io.elementary.terminal") 55 machine.sleep(20) 56 machine.screenshot("screen") 57 ''; 58})