summary refs log tree commit diff
path: root/nixos/tests/gnome-photos.nix
blob: 2ecda1d68ce3440c460cce8294520a3086b58b86 (plain) (blame)
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
# run installed tests
import ./make-test.nix ({ pkgs, lib, ... }:

let

  # gsettings tool with access to gsettings-desktop-schemas
  desktop-gsettings = with pkgs; stdenv.mkDerivation {
    name = "desktop-gsettings";
    dontUnpack = true;
    nativeBuildInputs = [ glib wrapGAppsHook ];
    buildInputs = [ gsettings-desktop-schemas ];
    installPhase = ''
      runHook preInstall
      mkdir -p $out/bin
      ln -s ${glib.bin}/bin/gsettings $out/bin/desktop-gsettings
      runHook postInstall
    '';
  };

in

{
  name = "gnome-photos";
  meta = {
    maintainers = pkgs.gnome-photos.meta.maintainers;
  };

  machine = { pkgs, ... }: {
    imports = [ ./common/x11.nix ];
    programs.dconf.enable = true;
    services.gnome3.at-spi2-core.enable = true; # needed for dogtail
    environment.systemPackages = with pkgs; [ gnome-desktop-testing desktop-gsettings ];
    services.dbus.packages = with pkgs; [ gnome-photos ];
  };

  testScript = ''
    $machine->waitForX;
    # dogtail needs accessibility enabled
    $machine->succeed("desktop-gsettings set org.gnome.desktop.interface toolkit-accessibility true 2>&1");
    $machine->succeed("gnome-desktop-testing-runner -d '${pkgs.gnome-photos.installedTests}/share' 2>&1");
  '';
})