| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 13:08:16 +02:00
										 |  |  | let | 
					
						
							|  |  |  |   template-bootstrap3 = pkgs.stdenv.mkDerivation { | 
					
						
							|  |  |  |     name = "bootstrap3"; | 
					
						
							|  |  |  |     # Download the theme from the dokuwiki site | 
					
						
							|  |  |  |     src = pkgs.fetchurl { | 
					
						
							| 
									
										
										
										
											2020-05-08 15:20:47 +02:00
										 |  |  |       url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip"; | 
					
						
							| 
									
										
										
										
											2020-03-30 13:08:16 +02:00
										 |  |  |       sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     # We need unzip to build this package | 
					
						
							|  |  |  |     buildInputs = [ pkgs.unzip ]; | 
					
						
							|  |  |  |     # Installing simply means copying all files to the output directory | 
					
						
							|  |  |  |     installPhase = "mkdir -p $out; cp -R * $out/"; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Let's package the icalevents plugin | 
					
						
							|  |  |  |   plugin-icalevents = pkgs.stdenv.mkDerivation { | 
					
						
							|  |  |  |     name = "icalevents"; | 
					
						
							|  |  |  |     # Download the plugin from the dokuwiki site | 
					
						
							|  |  |  |     src = pkgs.fetchurl { | 
					
						
							| 
									
										
										
										
											2020-05-08 15:20:47 +02:00
										 |  |  |       url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip"; | 
					
						
							| 
									
										
										
										
											2020-03-30 13:08:16 +02:00
										 |  |  |       sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     # We need unzip to build this package | 
					
						
							|  |  |  |     buildInputs = [ pkgs.unzip ]; | 
					
						
							|  |  |  |     sourceRoot = "."; | 
					
						
							|  |  |  |     # Installing simply means copying all files to the output directory | 
					
						
							|  |  |  |     installPhase = "mkdir -p $out; cp -R * $out/"; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | in { | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  |   name = "dokuwiki"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib; { | 
					
						
							| 
									
										
										
										
											2020-07-29 20:57:20 +10:00
										 |  |  |     maintainers = with maintainers; [ _1000101 ]; | 
					
						
							| 
									
										
										
										
											2020-06-12 12:42:41 +02:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  |   machine = { ... }: { | 
					
						
							|  |  |  |     services.dokuwiki."site1.local" = { | 
					
						
							| 
									
										
										
										
											2020-04-18 11:30:19 +02:00
										 |  |  |       aclUse = false; | 
					
						
							| 
									
										
										
										
											2020-03-30 13:08:16 +02:00
										 |  |  |       superUser = "admin"; | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  |     services.dokuwiki."site2.local" = { | 
					
						
							| 
									
										
										
										
											2020-08-03 09:53:27 +02:00
										 |  |  |       usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php"; | 
					
						
							| 
									
										
										
										
											2020-03-30 13:08:16 +02:00
										 |  |  |       superUser = "admin"; | 
					
						
							|  |  |  |       templates = [ template-bootstrap3 ]; | 
					
						
							|  |  |  |       plugins = [ plugin-icalevents ]; | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |     networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ]; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  |     site_names = ["site1.local", "site2.local"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     start_all() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine.wait_for_unit("phpfpm-dokuwiki-site1.local.service") | 
					
						
							|  |  |  |     machine.wait_for_unit("phpfpm-dokuwiki-site2.local.service") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  |     machine.wait_for_unit("nginx.service") | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  |     machine.wait_for_open_port(80) | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'") | 
					
						
							| 
									
										
										
										
											2020-08-03 09:53:27 +02:00
										 |  |  |     machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-29 22:39:14 +02:00
										 |  |  |     machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'") | 
					
						
							| 
									
										
										
										
											2020-08-03 09:53:27 +02:00
										 |  |  |     machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     machine.succeed( | 
					
						
							|  |  |  |         "echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php", | 
					
						
							|  |  |  |         "curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'", | 
					
						
							|  |  |  |         "curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'", | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2019-12-25 23:04:55 +01:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |