Files

80 lines
2.7 KiB
Fish
Raw Permalink Normal View History

2022-01-18 20:07:12 +01:00
set -g domain 'https://krk.tojnar.cz'
set -g failed 0
function fail
set -l message $argv[1]
set -l output_file $argv[2]
echo "$message" > /dev/stderr
cat "$output_file" > /dev/stderr
set failed (math $failed + 1)
end
function test_request
set -l uri $argv[1]
set -l argc (count $argv)
echo "Testing $domain$uri" > /dev/stderr
set output_file (mktemp)
curl --silent --location --head "$domain$uri" > "$output_file"
set last_status (cat "$output_file" | grep --perl-regexp 'HTTP/.+ \K([0-9]{3})' --only-matching | tail -n 1 | string trim)
2022-01-18 20:07:12 +01:00
set last_location (cat "$output_file" | grep --perl-regexp --ignore-case 'location: \K(.+)' --only-matching | tail -n 1 | string trim)
set -l expected_status 200
if test "$argc" -ge 2
set expected_status $argv[2]
end
if test "$last_status" != "$expected_status"
fail "ERROR: Expected status $expected_status, $last_status received" "$output_file"
return
end
if test "$argc" -ge 3
set -l expected_location $argv[3]
if test -z "$last_location"
fail "ERROR: Expected location $expected_location but no received" "$output_file"
return
else if test "$last_location" != "$domain$expected_location"
fail "ERROR: Expected location $expected_location, $last_location received" "$output_file"
return
end
else if test -n "$last_location"
fail "ERROR: Unexpected location $last_location received" "$output_file"
return
end
echo "OK" > /dev/stderr
echo > /dev/stderr
end
2022-01-18 20:07:12 +01:00
test_request '?lang=cs&page=krk_default' 200 '/'
test_request '?lang=en&page=krk_default' 200 '/en/'
test_request '?lang=cs' 200 '/'
test_request '?lang=en' 200 '/en/'
test_request '/mainkrk.php?page=clanky/beskydy-2010' 200 '/clanky/beskydy-2010.html'
test_request '/mainkrk.php?page=clanky/beskydy' 404 '/clanky/beskydy.html'
test_request '/?page=mcr_2009' 200 '/mcr_2009/'
test_request '/?page=mcr_2009/mcr_2009' 200 '/mcr_2009/'
test_request '/?page=mcr_2009/probihani_loucna/probihani_loucna' 200 '/mcr_2009/probihani_loucna/'
test_request '/?page=clanky' 200 '/clanky/'
test_request '/?page=clanky/clanky' 200 '/clanky/'
test_request '/?page=mcr_2009/' 200 '/mcr_2009/'
test_request '/?page=foo/' 404 '/foo/'
test_request '' 200 '/'
test_request '/cs/' 200 '/'
test_request '/en/'
test_request '/en' 200 '/en/'
test_request '/cs' 200 '/'
test_request '/mainkrk.php' 200 '/'
test_request '/cs/mcr_2009/mcr_2009.html' 200 '/mcr_2009/mcr_2009.html'
test_request '/en/mcr_2009/mcr_2009.html'
test_request '/clanky/beskydy-2010.html'
test_request '/clanky/beskydy.html' 404
test_request '/pages/mcr_2009/euro.gif' 200 '/mcr_2009/euro.gif'
if test $failed = 0
echo "All tests passed" > /dev/stderr
else
echo "$failed tests failed" > /dev/stderr
exit 1
end