at 17.09-beta 1.9 kB view raw
1import ./make-test.nix ({ pkgs, ...} : { 2 name = "slim"; 3 4 meta = with pkgs.stdenv.lib.maintainers; { 5 maintainers = [ aszlig ]; 6 }; 7 8 machine = { pkgs, lib, ... }: { 9 imports = [ ./common/user-account.nix ]; 10 services.xserver.enable = true; 11 services.xserver.windowManager.default = "icewm"; 12 services.xserver.windowManager.icewm.enable = true; 13 services.xserver.desktopManager.default = "none"; 14 services.xserver.displayManager.slim = { 15 enable = true; 16 17 # Use a custom theme in order to get best OCR results 18 theme = pkgs.runCommand "slim-theme-ocr" { 19 nativeBuildInputs = [ pkgs.imagemagick ]; 20 } '' 21 mkdir "$out" 22 convert -size 1x1 xc:white "$out/background.jpg" 23 convert -size 200x100 xc:white "$out/panel.jpg" 24 cat > "$out/slim.theme" <<EOF 25 background_color #ffffff 26 background_style tile 27 28 input_fgcolor #000000 29 msg_color #000000 30 31 session_color #000000 32 session_font Verdana:size=16:bold 33 34 username_msg Username: 35 username_font Verdana:size=16:bold 36 username_color #000000 37 username_x 50% 38 username_y 40% 39 40 password_msg Password: 41 password_x 50% 42 password_y 40% 43 EOF 44 ''; 45 }; 46 }; 47 48 enableOCR = true; 49 50 testScript = { nodes, ... }: let 51 user = nodes.machine.config.users.extraUsers.alice; 52 in '' 53 startAll; 54 $machine->waitForText(qr/Username:/); 55 $machine->sendChars("${user.name}\n"); 56 $machine->waitForText(qr/Password:/); 57 $machine->sendChars("${user.password}\n"); 58 59 $machine->waitForFile('${user.home}/.Xauthority'); 60 $machine->succeed('xauth merge ${user.home}/.Xauthority'); 61 $machine->waitForWindow('^IceWM '); 62 63 # Make sure SLiM doesn't create a log file 64 $machine->fail('test -e /var/log/slim.log'); 65 ''; 66})