-
Notifications
You must be signed in to change notification settings - Fork 99
/
Copy pathtest.sh
90 lines (76 loc) · 2.09 KB
/
test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env bats
CONTAINER_NAME=bitnami-nginx-test
IMAGE_NAME=bitnami/nginx
SLEEP_TIME=2
VOL_PREFIX=/bitnami/nginx
HOST_VOL_PREFIX=/tmp/bitnami/$CONTAINER_NAME
# Check config override from host
cleanup_running_containers() {
if [ "$(docker ps -a | grep $CONTAINER_NAME)" ]; then
docker rm -fv $CONTAINER_NAME
fi
}
setup() {
mkdir -p $HOST_VOL_PREFIX
cleanup_running_containers
}
teardown() {
cleanup_running_containers
}
create_container(){
docker run -d --name $CONTAINER_NAME \
--expose 81 $IMAGE_NAME
sleep $SLEEP_TIME
}
add_vhost() {
docker exec $CONTAINER_NAME sh -c "echo 'server { listen 0.0.0.0:81; location / { return 405; } }' > $VOL_PREFIX/conf/vhosts/test.conf"
}
@test "We can connect to the port 80 and 443" {
create_container
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i http://nginx:80 | {
run grep "200 OK"
[ $status = 0 ]
}
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i -k https://nginx:443 | {
run grep "200 OK"
[ $status = 0 ]
}
}
@test "Returns default page" {
create_container
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i http://nginx:80 | {
run grep "It works!"
[ $status = 0 ]
}
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i -k https://nginx:443 | {
run grep "It works!"
[ $status = 0 ]
}
}
@test "Logs to stdout" {
create_container
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i http://nginx:80
docker logs $CONTAINER_NAME | {
run grep "GET / HTTP/1.1"
[ $status = 0 ]
}
}
@test "All the volumes exposed" {
create_container
docker inspect $CONTAINER_NAME | {
run grep "\"Volumes\":" -A 3
[[ "$output" =~ "$VOL_PREFIX/logs" ]]
[[ "$output" =~ "$VOL_PREFIX/conf" ]]
[[ "$output" =~ "/app" ]]
}
}
@test "Vhosts directory is imported" {
create_container
add_vhost
docker restart $CONTAINER_NAME
sleep $SLEEP_TIME
docker run --link $CONTAINER_NAME:nginx --rm bitnami/nginx curl -L -i http://nginx:81 | {
run grep "405 Not Allowed"
[ $status = 0 ]
}
}