| @ -0,0 +1,96 @@ | |||
| #! /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 | |||
| } | |||