Ver Fonte

Merge pull request #2402 from SchoNie/htpasswd-tests

tests: htpasswd
Nicolas Duchon há 1 ano atrás
pai
commit
24592e39a3

+ 1 - 0
test/test_htpasswd/htpasswd/htpasswd.nginx-proxy.tld

@@ -0,0 +1 @@
+vhost:$2a$13$/aPYmoK0mmgyAI4TpKdFY.6441Ugo39MdXjhpm.Pp6D15rbz9tvz.

+ 1 - 0
test/test_htpasswd/htpasswd/htpasswd.nginx-proxy.tld_8d960560c82f4e6c8b1b0f03eb30a1afd00e5696

@@ -0,0 +1 @@
+vpath:$2a$13$/aPYmoK0mmgyAI4TpKdFY.6441Ugo39MdXjhpm.Pp6D15rbz9tvz.

+ 13 - 0
test/test_htpasswd/test_htpasswd_virtual_host.py

@@ -0,0 +1,13 @@
+import pytest
+
+def test_htpasswd_virtual_host_is_restricted(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://htpasswd.nginx-proxy.tld/port")
+    assert r.status_code == 401
+    assert "WWW-Authenticate" in r.headers
+    assert r.headers["WWW-Authenticate"] == 'Basic realm="Restricted htpasswd.nginx-proxy.tld"'
+
+
+def test_htpasswd_virtual_host_basic_auth(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://htpasswd.nginx-proxy.tld/port", auth=("vhost", "password"))
+    assert r.status_code == 200
+    assert r.text == "answer from port 80\n"

+ 17 - 0
test/test_htpasswd/test_htpasswd_virtual_host.yml

@@ -0,0 +1,17 @@
+version: "2"
+
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: htpasswd.nginx-proxy.tld
+
+  sut:
+    container_name: sut
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./htpasswd:/etc/nginx/htpasswd:ro

+ 12 - 0
test/test_htpasswd/test_htpasswd_virtual_path.py

@@ -0,0 +1,12 @@
+import pytest
+
+def test_htpasswd_virtual_path_is_restricted(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://htpasswd.nginx-proxy.tld/foo/port")
+    assert r.status_code == 401
+    assert "WWW-Authenticate" in r.headers
+    assert r.headers["WWW-Authenticate"] == 'Basic realm="Restricted htpasswd.nginx-proxy.tld/foo/"'
+
+def test_htpasswd_virtual_path_basic_auth(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://htpasswd.nginx-proxy.tld/foo/port", auth=("vpath", "password"))
+    assert r.status_code == 200
+    assert r.text == "answer from port 80\n"

+ 19 - 0
test/test_htpasswd/test_htpasswd_virtual_path.yml

@@ -0,0 +1,19 @@
+version: "2"
+
+services:
+  web:
+    image: web
+    expose:
+      - "80"
+    environment:
+      WEB_PORTS: 80
+      VIRTUAL_HOST: htpasswd.nginx-proxy.tld
+      VIRTUAL_PATH: /foo/
+      VIRTUAL_DEST: /
+
+  sut:
+    container_name: sut
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./htpasswd:/etc/nginx/htpasswd:ro