This makes the installation a bit more secure by ensuring a user does not accidentally expose a way for unauthorized users to add new ssh keys to the system. Additionally, this removes the extra HOSTNAME file to make the initial install process easier (that file was not modifiable by any dokku commands. Closes #2247
175 lines
4.6 KiB
Bash
175 lines
4.6 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
[[ -f "$DOKKU_ROOT/VHOST" ]] && cp -fp "$DOKKU_ROOT/VHOST" "$DOKKU_ROOT/VHOST.bak"
|
|
create_app
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app 0 $TEST_APP
|
|
[[ -f "$DOKKU_ROOT/VHOST.bak" ]] && mv "$DOKKU_ROOT/VHOST.bak" "$DOKKU_ROOT/VHOST" && chown dokku:dokku "$DOKKU_ROOT/VHOST"
|
|
global_teardown
|
|
}
|
|
|
|
@test "(nginx-vhosts) nginx:set x-forwarded-for-value" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-For \$remote_addr;"
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-for-value '\$http_x_forwarded_for'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-For \$http_x_forwarded_for;"
|
|
}
|
|
|
|
@test "(nginx-vhosts) nginx:set x-forwarded-port-value" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Port \$server_port;"
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-port-value '\$http_x_forwarded_port'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Port \$http_x_forwarded_port;"
|
|
}
|
|
|
|
@test "(nginx-vhosts) nginx:set x-forwarded-proto-value" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Proto \$scheme;"
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-proto-value '\$http_x_forwarded_proto'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Proto \$http_x_forwarded_proto;"
|
|
}
|
|
|
|
@test "(nginx-vhosts) nginx:set x-forwarded-ssl" {
|
|
run deploy_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Ssl" 0
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl on"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Ssl on;"
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl off"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Ssl off;"
|
|
|
|
run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:build-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku nginx:show-config $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "X-Forwarded-Ssl" 0
|
|
}
|
|
|