109 lines
2.5 KiB
Text
109 lines
2.5 KiB
Text
|
#!/usr/bin/env bats
|
||
|
|
||
|
# Registry host name, should be set to non-localhost address and match
|
||
|
# DNS name in nginx/ssl certificates and what is installed in /etc/docker/cert.d
|
||
|
|
||
|
load helpers
|
||
|
|
||
|
hostname="localregistry"
|
||
|
base="hello-world"
|
||
|
image="${base}:latest"
|
||
|
|
||
|
# Login information, should match values in nginx/test.passwd
|
||
|
user=${TEST_USER:-"testuser"}
|
||
|
password=${TEST_PASSWORD:-"passpassword"}
|
||
|
|
||
|
function setup() {
|
||
|
tempImage $image
|
||
|
}
|
||
|
|
||
|
@test "Test valid certificates" {
|
||
|
docker_t tag $image $hostname:5440/$image
|
||
|
run docker_t push $hostname:5440/$image
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
}
|
||
|
|
||
|
@test "Test basic auth" {
|
||
|
basic_auth_version_check
|
||
|
login $hostname:5441
|
||
|
docker_t tag $image $hostname:5441/$image
|
||
|
run docker_t push $hostname:5441/$image
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
}
|
||
|
|
||
|
@test "Test basic auth with build" {
|
||
|
basic_auth_version_check
|
||
|
login $hostname:5441
|
||
|
|
||
|
image1=$hostname:5441/$image-build
|
||
|
image2=$hostname:5441/$image-build-2
|
||
|
|
||
|
tempImage $image1
|
||
|
|
||
|
run docker_t push $image1
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
|
||
|
docker_t rmi $image1
|
||
|
|
||
|
run build $image2 $image1
|
||
|
echo $output
|
||
|
[ "$status" -eq 0 ]
|
||
|
|
||
|
run docker_t push $image2
|
||
|
echo $output
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
}
|
||
|
|
||
|
@test "Test TLS client auth" {
|
||
|
docker_t tag $image $hostname:5442/$image
|
||
|
run docker_t push $hostname:5442/$image
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
}
|
||
|
|
||
|
@test "Test TLS client with invalid certificate authority fails" {
|
||
|
docker_t tag $image $hostname:5443/$image
|
||
|
run docker_t push $hostname:5443/$image
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|
||
|
@test "Test basic auth with TLS client auth" {
|
||
|
basic_auth_version_check
|
||
|
login $hostname:5444
|
||
|
docker_t tag $image $hostname:5444/$image
|
||
|
run docker_t push $hostname:5444/$image
|
||
|
[ "$status" -eq 0 ]
|
||
|
has_digest "$output"
|
||
|
}
|
||
|
|
||
|
@test "Test unknown certificate authority fails" {
|
||
|
docker_t tag $image $hostname:5445/$image
|
||
|
run docker_t push $hostname:5445/$image
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|
||
|
@test "Test basic auth with unknown certificate authority fails" {
|
||
|
run login $hostname:5446
|
||
|
[ "$status" -ne 0 ]
|
||
|
docker_t tag $image $hostname:5446/$image
|
||
|
run docker_t push $hostname:5446/$image
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|
||
|
@test "Test TLS client auth to server with unknown certificate authority fails" {
|
||
|
docker_t tag $image $hostname:5447/$image
|
||
|
run docker_t push $hostname:5447/$image
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|
||
|
@test "Test failure to connect to server fails to fallback to SSLv3" {
|
||
|
docker_t tag $image $hostname:5448/$image
|
||
|
run docker_t push $hostname:5448/$image
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|