From dfba3304e4260654d665fb724c8dbf9e0fbc8256 Mon Sep 17 00:00:00 2001 From: Tim Kimber Date: Wed, 13 May 2020 17:20:24 +0100 Subject: [PATCH] Add testing for the auto-update to v02 feature --- test/12-auto-upgrade-v1.bats | 75 +++++++++++++++++++ .../getssl-upgrade-test-pebble.cfg | 8 ++ .../getssl-upgrade-test-v1-prod.cfg | 7 ++ .../getssl-upgrade-test-v1-staging.cfg | 7 ++ .../getssl-upgrade-test-v2-prod.cfg | 7 ++ .../getssl-upgrade-test-v2-staging.cfg | 7 ++ 6 files changed, 111 insertions(+) create mode 100644 test/12-auto-upgrade-v1.bats create mode 100644 test/test-config/getssl-upgrade-test-pebble.cfg create mode 100644 test/test-config/getssl-upgrade-test-v1-prod.cfg create mode 100644 test/test-config/getssl-upgrade-test-v1-staging.cfg create mode 100644 test/test-config/getssl-upgrade-test-v2-prod.cfg create mode 100644 test/test-config/getssl-upgrade-test-v2-staging.cfg diff --git a/test/12-auto-upgrade-v1.bats b/test/12-auto-upgrade-v1.bats new file mode 100644 index 0000000..4165cd3 --- /dev/null +++ b/test/12-auto-upgrade-v1.bats @@ -0,0 +1,75 @@ +#! /usr/bin/env bats + +load '/bats-support/load.bash' +load '/bats-assert/load.bash' +load '/getssl/test/test_helper.bash' + + +@test "Check that auto upgrade to v2 doesn't change pebble url" { + if [ -n "$STAGING" ]; then + skip "Using staging server, skipping internal test" + fi + CONFIG_FILE="getssl-upgrade-test-pebble.cfg" + setup_environment + mkdir ${INSTALL_DIR}/.getssl + cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/getssl.cfg" + run ${CODE_DIR}/getssl -d --check-config "$GETSSL_CMD_HOST" + assert_success + assert_line 'Using certificate issuer: https://pebble:14000/dir' +} + + +@test "Check that auto upgrade to v2 doesn't change v2 staging url" { + if [ -n "$STAGING" ]; then + skip "Using staging server, skipping internal test" + fi + CONFIG_FILE="getssl-upgrade-test-v2-staging.cfg" + setup_environment + mkdir ${INSTALL_DIR}/.getssl + cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/getssl.cfg" + run ${CODE_DIR}/getssl -d --check-config "$GETSSL_CMD_HOST" + assert_success + assert_line 'Using certificate issuer: https://acme-staging-v02.api.letsencrypt.org/directory' +} + + +@test "Check that auto upgrade to v2 doesn't change v2 prod url" { + if [ -n "$STAGING" ]; then + skip "Using staging server, skipping internal test" + fi + CONFIG_FILE="getssl-upgrade-test-v2-prod.cfg" + setup_environment + mkdir ${INSTALL_DIR}/.getssl + cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/getssl.cfg" + run ${CODE_DIR}/getssl -d --check-config "$GETSSL_CMD_HOST" + assert_success + assert_line 'Using certificate issuer: https://acme-v02.api.letsencrypt.org/directory' +} + + +@test "Check that auto upgrade to v2 changes v1 staging to v2 staging url" { + if [ -n "$STAGING" ]; then + skip "Using staging server, skipping internal test" + fi + CONFIG_FILE="getssl-upgrade-test-v1-staging.cfg" + setup_environment + mkdir ${INSTALL_DIR}/.getssl + cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/getssl.cfg" + run ${CODE_DIR}/getssl -d --check-config "$GETSSL_CMD_HOST" + assert_success + assert_line 'Using certificate issuer: https://acme-staging-v02.api.letsencrypt.org/directory' +} + + +@test "Check that auto upgrade to v2 changes v1 prod to v2 prod url" { + if [ -n "$STAGING" ]; then + skip "Using staging server, skipping internal test" + fi + CONFIG_FILE="getssl-upgrade-test-v1-prod.cfg" + setup_environment + mkdir ${INSTALL_DIR}/.getssl + cp "${CODE_DIR}/test/test-config/${CONFIG_FILE}" "${INSTALL_DIR}/.getssl/getssl.cfg" + run ${CODE_DIR}/getssl -d --check-config "$GETSSL_CMD_HOST" + assert_success + assert_line 'Using certificate issuer: https://acme-v02.api.letsencrypt.org/directory' +} diff --git a/test/test-config/getssl-upgrade-test-pebble.cfg b/test/test-config/getssl-upgrade-test-pebble.cfg new file mode 100644 index 0000000..f5f8b3b --- /dev/null +++ b/test/test-config/getssl-upgrade-test-pebble.cfg @@ -0,0 +1,8 @@ +# +# Test that auto-upgrade to v2 doesn't change pebble url +# +CA="https://pebble:14000/dir" + + +# Acme Challenge Location. +ACL=('/var/www/html/.well-known/acme-challenge') diff --git a/test/test-config/getssl-upgrade-test-v1-prod.cfg b/test/test-config/getssl-upgrade-test-v1-prod.cfg new file mode 100644 index 0000000..41f0176 --- /dev/null +++ b/test/test-config/getssl-upgrade-test-v1-prod.cfg @@ -0,0 +1,7 @@ +# +# Test that auto-upgrade to v2 changes v1 prod to v2 prod +# +CA="https://acme-v01.api.letsencrypt.org/directory" + +# Acme Challenge Location. +ACL=('/var/www/html/.well-known/acme-challenge') diff --git a/test/test-config/getssl-upgrade-test-v1-staging.cfg b/test/test-config/getssl-upgrade-test-v1-staging.cfg new file mode 100644 index 0000000..215f246 --- /dev/null +++ b/test/test-config/getssl-upgrade-test-v1-staging.cfg @@ -0,0 +1,7 @@ +# +# Test that auto-upgrade to v2 changes v1 staging to v2 staging +# +CA="https://acme-staging.api.letsencrypt.org/directory" + +# Acme Challenge Location. +ACL=('/var/www/html/.well-known/acme-challenge') diff --git a/test/test-config/getssl-upgrade-test-v2-prod.cfg b/test/test-config/getssl-upgrade-test-v2-prod.cfg new file mode 100644 index 0000000..9b9c009 --- /dev/null +++ b/test/test-config/getssl-upgrade-test-v2-prod.cfg @@ -0,0 +1,7 @@ +# +# Test that auto-upgrade to v2 doesn't change v2 prod url +# +CA="https://acme-v02.api.letsencrypt.org/directory" + +# Acme Challenge Location. +ACL=('/var/www/html/.well-known/acme-challenge') diff --git a/test/test-config/getssl-upgrade-test-v2-staging.cfg b/test/test-config/getssl-upgrade-test-v2-staging.cfg new file mode 100644 index 0000000..98bfd17 --- /dev/null +++ b/test/test-config/getssl-upgrade-test-v2-staging.cfg @@ -0,0 +1,7 @@ +# +# Test that auto-upgrade to v2 doesn't change v2 staging url +# +CA="https://acme-staging-v02.api.letsencrypt.org/directory" + +# Acme Challenge Location. +ACL=('/var/www/html/.well-known/acme-challenge')