#! /usr/bin/env bats
|
|
|
|
load '/bats-support/load.bash'
|
|
load '/bats-assert/load.bash'
|
|
load '/getssl/test/test_helper.bash'
|
|
|
|
|
|
# This is run for every test
|
|
setup() {
|
|
[ ! -f $BATS_RUN_TMPDIR/failed.skip ] || skip "skipping tests after first failure"
|
|
|
|
. /getssl/getssl --source
|
|
export API=2
|
|
_USE_DEBUG=1
|
|
}
|
|
|
|
|
|
teardown() {
|
|
[ -n "$BATS_TEST_COMPLETED" ] || touch $BATS_RUN_TMPDIR/failed.skip
|
|
}
|
|
|
|
response='
|
|
{
|
|
"challenges": [
|
|
{
|
|
"status": "pending",
|
|
"token": "kD1H4FVIEFvkWghLlKFoSPpR5u0FTGkRs4A_FnTfv3A",
|
|
"type": "http-01",
|
|
"url": "https://pebble:14000/chalZ/firw72KAYbsChpxMAzrTSLpCKepAdqcJn7NERZtAknY"
|
|
},
|
|
{
|
|
"status": "pending",
|
|
"token": "3FMfZoNNrjZzh_nnxanW5oEKvC6urlGS5wQWI5Bg9J4",
|
|
"type": "dns-01",
|
|
"url": "https://pebble:14000/chalZ/vkHAS1A9tQQ5A8QoAIRQJrSC_WJNm303iwC1r22dnCc"
|
|
},
|
|
{
|
|
"status": "pending",
|
|
"token": "UGkg34cDGoM9Su22iCH9yn383uLfTpr5Ys4Tms9QYAo",
|
|
"type": "dns-account-01",
|
|
"url": "https://pebble:14000/chalZ/ryNLsf-iOe22YYeYv6YIwBp7E2z492bdesvNQFzl9gI"
|
|
},
|
|
{
|
|
"status": "pending",
|
|
"token": "Sla6q_0Nl3JB3JMsWCXn_X3-KyH45mjKaStRDZU8I0g",
|
|
"type": "tls-alpn-01",
|
|
"url": "https://pebble:14000/chalZ/pzLqpT2qVf4DxK25GX0mONLE9Ii35FAXL9ioxONoSFQ"
|
|
}
|
|
],
|
|
"expires": "2024-10-18T17:24:42Z",
|
|
"identifier": {
|
|
"type": "dns",
|
|
"value": "c.debian.getssl.test"
|
|
},
|
|
"status": "pending"
|
|
}'
|
|
|
|
|
|
@test "Test that json_get fails if token contains the phrase 'url'" {
|
|
# the token for te dns-01 entry contains the text "url" which breaks the json_get url parser!
|
|
|
|
type="dns-01"
|
|
uri=$(json_get "$response" "challenges" "type" $type "url")
|
|
token=$(json_get "$response" "challenges" "type" $type "token")
|
|
# when using pebble this sometimes appears to have a newline which causes problems in send_signed_request
|
|
uri=$(echo "$uri" | tr -d '\r')
|
|
#echo uri "$uri" >&3
|
|
#echo token "$token" >&3
|
|
|
|
# check the uri begins with https
|
|
begins_with_https=0
|
|
if [[ "$uri" == https* ]]; then
|
|
begins_with_https=1
|
|
fi
|
|
|
|
assert_not_equal $begins_with_https 1
|
|
}
|
|
|
|
|
|
@test "Test that json_get works if we quote 'url'" {
|
|
# the token for te dns-01 entry contains the text "url" which breaks the json_get url parser!
|
|
|
|
type="dns-01"
|
|
uri=$(json_get "$response" "challenges" "type" $type '"url"')
|
|
token=$(json_get "$response" "challenges" "type" $type '"token"')
|
|
#echo uri "$uri" >&3
|
|
#echo token "$token" >&3
|
|
|
|
# check the uri begins with https
|
|
begins_with_https=0
|
|
if [[ "$uri" == https* ]]; then
|
|
begins_with_https=1
|
|
fi
|
|
|
|
assert_equal $begins_with_https 1
|
|
}
|