1import ./make-test-python.nix ({ pkgs, lib, ... }: {
2 name = "deepin";
3
4 meta.maintainers = lib.teams.deepin.members;
5
6 nodes.machine = { ... }: {
7 imports = [
8 ./common/user-account.nix
9 ];
10
11 virtualisation.memorySize = 2048;
12
13 services.xserver.enable = true;
14
15 services.xserver.displayManager = {
16 lightdm.enable = true;
17 autoLogin = {
18 enable = true;
19 user = "alice";
20 };
21 };
22
23 services.xserver.desktopManager.deepin.enable = true;
24 };
25
26 testScript = { nodes, ... }:
27 let
28 user = nodes.machine.users.users.alice;
29 in
30 ''
31 with subtest("Wait for login"):
32 machine.wait_for_x()
33 machine.wait_for_file("${user.home}/.Xauthority")
34 machine.succeed("xauth merge ${user.home}/.Xauthority")
35
36 with subtest("Check that logging in has given the user ownership of devices"):
37 machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
38
39 with subtest("Check if Deepin session components actually start"):
40 machine.wait_until_succeeds("pgrep -f dde-session-daemon")
41 machine.wait_for_window("dde-session-daemon")
42 machine.wait_until_succeeds("pgrep -f dde-desktop")
43 machine.wait_for_window("dde-desktop")
44
45 with subtest("Open deepin-terminal"):
46 machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
47 machine.wait_for_window("deepin-terminal")
48 machine.sleep(20)
49 machine.screenshot("screen")
50 '';
51})