summary refs log tree commit diff
path: root/tests/kde4.nix
blob: 33ef1e006fd7ec7ea0204894edafd5a547407c18 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{ nixos ? ./..
, nixpkgs ? ../../nixpkgs
, services ? ../../nixos/services
, system ? builtins.currentSystem
}:

with import ../lib/build-vms.nix { inherit nixos nixpkgs services system; };

rec {

  nodes =
    { client =
        { config, pkgs, ... }:

        { services.xserver.enable = true;
        
          services.httpd.enable = true;
          services.httpd.adminAddr = "foo@example.org";
          services.httpd.documentRoot = "${pkgs.valgrind}/share/doc/valgrind/html";
  
          services.xserver.displayManager.slim.enable = false;
          services.xserver.displayManager.kdm.enable = true;
          services.xserver.displayManager.kdm.extraConfig =
            ''
              [X-:0-Core]
              AutoLoginEnable=true
              AutoLoginUser=alice
              AutoLoginPass=foobar
            '';
            
          services.xserver.desktopManager.default = "kde4";
          services.xserver.desktopManager.kde4.enable = true;

          users.extraUsers = pkgs.lib.singleton
            { name = "alice";
              description = "Alice Foobar";
              home = "/home/alice";
              createHome = true;
              useDefaultShell = true;
              password = "foobar";
            };

          environment.systemPackages = [ pkgs.scrot ];
        };
    };

  vms = buildVirtualNetwork { inherit nodes; };

  test = runTests vms
    ''
      startAll;

      $client->waitForFile("/tmp/.X11-unix/X0");

      sleep 70;

      print STDERR $client->execute("su - alice -c 'DISPLAY=:0.0 kwrite /var/log/messages &'");

      sleep 10;
      
      print STDERR $client->execute("su - alice -c 'DISPLAY=:0.0 konqueror http://localhost/ &'");

      sleep 10;
      
      print STDERR $client->mustSucceed("DISPLAY=:0.0 scrot /hostfs/$ENV{out}/screen.png");
    '';
  
}