summaryrefslogtreecommitdiffstats
path: root/nixos/tests/freetube.nix
blob: 2be5c67754e39ab65daf449079edb241cad9bfb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
let
  tests = {
    wayland =
      { pkgs, ... }:
      {
        imports = [ ./common/wayland-cage.nix ];
        services.cage.program = "${pkgs.freetube}/bin/freetube";
        virtualisation.memorySize = 2047;
        environment.variables.NIXOS_OZONE_WL = "1";
        environment.variables.DISPLAY = "do not use";
      };
    xorg =
      { pkgs, ... }:
      {
        imports = [
          ./common/user-account.nix
          ./common/x11.nix
        ];
        virtualisation.memorySize = 2047;
        services.xserver.enable = true;
        services.xserver.displayManager.sessionCommands = ''
          ${pkgs.freetube}/bin/freetube
        '';
        test-support.displayManager.auto.user = "alice";
      };
  };

  mkTest =
    name: machine:
    import ./make-test-python.nix (
      { pkgs, ... }:
      {
        inherit name;
        nodes = {
          "${name}" = machine;
        };
        meta.maintainers = with pkgs.lib.maintainers; [ kirillrdy ];
        # time-out on ofborg
        meta.broken = pkgs.stdenv.hostPlatform.isAarch64;
        enableOCR = true;

        testScript = ''
          start_all()
          machine = ${name}
          machine.wait_for_unit('graphical.target')
          machine.wait_for_text('Your Subscription list is currently empty')
          machine.send_key("ctrl-r")
          machine.wait_for_text('Your Subscription list is currently empty')
          machine.screenshot("main.png")
          machine.send_key("ctrl-comma")
          machine.wait_for_text('Data', timeout=60)
          machine.screenshot("preferences.png")
        '';
      }
    );
in
builtins.mapAttrs (k: v: mkTest k v) tests