nixosTests.xandikos: init
This commit is contained in:
parent
e1eedf29e5
commit
78aec9cfcb
|
@ -294,6 +294,7 @@ in
|
||||||
wireguard-generated = handleTest ./wireguard/generated.nix {};
|
wireguard-generated = handleTest ./wireguard/generated.nix {};
|
||||||
wireguard-namespaces = handleTest ./wireguard/namespaces.nix {};
|
wireguard-namespaces = handleTest ./wireguard/namespaces.nix {};
|
||||||
wordpress = handleTest ./wordpress.nix {};
|
wordpress = handleTest ./wordpress.nix {};
|
||||||
|
xandikos = handleTest ./xandikos.nix {};
|
||||||
xautolock = handleTest ./xautolock.nix {};
|
xautolock = handleTest ./xautolock.nix {};
|
||||||
xfce = handleTest ./xfce.nix {};
|
xfce = handleTest ./xfce.nix {};
|
||||||
xmonad = handleTest ./xmonad.nix {};
|
xmonad = handleTest ./xmonad.nix {};
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
import ./make-test-python.nix (
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "xandikos";
|
||||||
|
|
||||||
|
meta.maintainers = [ lib.maintainers."0x4A6F" ];
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
xandikos_client = {};
|
||||||
|
xandikos_default = {
|
||||||
|
networking.firewall.allowedTCPPorts = [ 8080 ];
|
||||||
|
services.xandikos.enable = true;
|
||||||
|
};
|
||||||
|
xandikos_proxy = {
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 8080 ];
|
||||||
|
services.xandikos.enable = true;
|
||||||
|
services.xandikos.address = "localhost";
|
||||||
|
services.xandikos.port = 8080;
|
||||||
|
services.xandikos.routePrefix = "/xandikos/";
|
||||||
|
services.xandikos.extraOptions = [
|
||||||
|
"--defaults"
|
||||||
|
];
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
virtualHosts."xandikos" = {
|
||||||
|
serverName = "xandikos.local";
|
||||||
|
basicAuth.xandikos = "snakeOilPassword";
|
||||||
|
locations."/xandikos/" = {
|
||||||
|
proxyPass = "http://localhost:8080/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
|
||||||
|
with subtest("Xandikos default"):
|
||||||
|
xandikos_default.wait_for_unit("multi-user.target")
|
||||||
|
xandikos_default.wait_for_unit("xandikos.service")
|
||||||
|
xandikos_default.wait_for_open_port(8080)
|
||||||
|
xandikos_default.succeed("curl --fail http://localhost:8080/")
|
||||||
|
xandikos_default.succeed(
|
||||||
|
"curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
|
||||||
|
)
|
||||||
|
xandikos_client.wait_for_unit("network.target")
|
||||||
|
xandikos_client.fail("curl --fail http://xandikos_default:8080/")
|
||||||
|
|
||||||
|
with subtest("Xandikos proxy"):
|
||||||
|
xandikos_proxy.wait_for_unit("multi-user.target")
|
||||||
|
xandikos_proxy.wait_for_unit("xandikos.service")
|
||||||
|
xandikos_proxy.wait_for_open_port(8080)
|
||||||
|
xandikos_proxy.succeed("curl --fail http://localhost:8080/")
|
||||||
|
xandikos_proxy.succeed(
|
||||||
|
"curl -s --fail --location http://localhost:8080/ | grep -qi Xandikos"
|
||||||
|
)
|
||||||
|
xandikos_client.wait_for_unit("network.target")
|
||||||
|
xandikos_client.fail("curl --fail http://xandikos_proxy:8080/")
|
||||||
|
xandikos_client.succeed(
|
||||||
|
"curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/ | grep -qi Xandikos"
|
||||||
|
)
|
||||||
|
xandikos_client.succeed(
|
||||||
|
"curl -s --fail -u xandikos:snakeOilPassword -H 'Host: xandikos.local' http://xandikos_proxy/xandikos/user/ | grep -qi Xandikos"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
Loading…
Reference in New Issue