| 
									
										
										
										
											2016-06-01 17:05:46 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, ...} : | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-03-03 07:25:45 -06:00
										 |  |  |   name = "plasma5"; | 
					
						
							| 
									
										
										
										
											2015-12-11 07:08:07 -06:00
										 |  |  |   meta = with pkgs.stdenv.lib.maintainers; { | 
					
						
							|  |  |  |     maintainers = [ ttuegel ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   machine = { lib, ... }: { | 
					
						
							|  |  |  |     imports = [ ./common/user-account.nix ]; | 
					
						
							|  |  |  |     services.xserver.enable = true; | 
					
						
							| 
									
										
										
										
											2017-03-24 08:02:24 -05:00
										 |  |  |     services.xserver.displayManager.sddm.enable = true; | 
					
						
							| 
									
										
										
										
											2017-02-28 19:09:56 -06:00
										 |  |  |     services.xserver.desktopManager.plasma5.enable = true; | 
					
						
							|  |  |  |     services.xserver.desktopManager.default = "plasma5"; | 
					
						
							| 
									
										
										
										
											2017-03-24 08:02:24 -05:00
										 |  |  |     virtualisation.memorySize = 1024; | 
					
						
							| 
									
										
										
										
											2017-05-24 14:54:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # fontconfig-penultimate-0.3.3 -> 0.3.4 broke OCR apparently, but no idea why. | 
					
						
							|  |  |  |     nixpkgs.config.packageOverrides = superPkgs: { | 
					
						
							|  |  |  |       fontconfig-penultimate = superPkgs.fontconfig-penultimate.overrideAttrs | 
					
						
							|  |  |  |         (_attrs: rec { | 
					
						
							|  |  |  |           version = "0.3.3"; | 
					
						
							|  |  |  |           name = "fontconfig-penultimate-${version}"; | 
					
						
							|  |  |  |           src = pkgs.fetchFromGitHub { | 
					
						
							|  |  |  |             owner = "ttuegel"; | 
					
						
							|  |  |  |             repo = "fontconfig-penultimate"; | 
					
						
							|  |  |  |             rev = version; | 
					
						
							|  |  |  |             sha256 = "0392lw31jps652dcjazln77ihb6bl7gk201gb7wb9i223avp86w9"; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }; | 
					
						
							| 
									
										
										
										
											2015-12-11 07:08:07 -06:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-24 08:02:24 -05:00
										 |  |  |   enableOCR = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = { nodes, ... }: let | 
					
						
							|  |  |  |     user = nodes.machine.config.users.extraUsers.alice; | 
					
						
							|  |  |  |     xdo = "${pkgs.xdotool}/bin/xdotool"; | 
					
						
							|  |  |  |   in ''
 | 
					
						
							| 
									
										
										
										
											2016-09-09 10:09:45 -05:00
										 |  |  |     startAll; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-24 08:02:24 -05:00
										 |  |  |     # Wait for display manager to start | 
					
						
							|  |  |  |     $machine->waitForText(qr/${user.description}/); | 
					
						
							|  |  |  |     $machine->screenshot("sddm"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Log in | 
					
						
							|  |  |  |     $machine->sendChars("${user.password}\n"); | 
					
						
							| 
									
										
										
										
											2016-09-09 10:09:45 -05:00
										 |  |  |     $machine->waitForFile("/home/alice/.Xauthority"); | 
					
						
							|  |  |  |     $machine->succeed("xauth merge ~alice/.Xauthority"); | 
					
						
							| 
									
										
										
										
											2016-06-01 17:05:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $machine->waitUntilSucceeds("pgrep plasmashell"); | 
					
						
							| 
									
										
										
										
											2016-09-09 10:09:45 -05:00
										 |  |  |     $machine->waitForWindow("^Desktop "); | 
					
						
							| 
									
										
										
										
											2016-06-01 17:05:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     # Check that logging in has given the user ownership of devices. | 
					
						
							|  |  |  |     $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); | 
					
						
							| 
									
										
										
										
											2016-09-09 10:09:45 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $machine->execute("su - alice -c 'DISPLAY=:0.0 dolphin &'"); | 
					
						
							|  |  |  |     $machine->waitForWindow(" Dolphin"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $machine->execute("su - alice -c 'DISPLAY=:0.0 konsole &'"); | 
					
						
							|  |  |  |     $machine->waitForWindow("Konsole"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $machine->execute("su - alice -c 'DISPLAY=:0.0 systemsettings5 &'"); | 
					
						
							|  |  |  |     $machine->waitForWindow("Settings"); | 
					
						
							| 
									
										
										
										
											2016-06-01 17:05:46 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $machine->execute("${xdo} key Alt+F1 sleep 10"); | 
					
						
							|  |  |  |     $machine->screenshot("screen"); | 
					
						
							| 
									
										
										
										
											2015-12-11 07:08:07 -06:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |