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