80 lines
2.7 KiB
Fish
80 lines
2.7 KiB
Fish
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)
|
|
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
|
|
|
|
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
|