diff options
Diffstat (limited to 'LayoutTests/http/tests/resources/post-and-verify.cgi')
-rwxr-xr-x | LayoutTests/http/tests/resources/post-and-verify.cgi | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/LayoutTests/http/tests/resources/post-and-verify.cgi b/LayoutTests/http/tests/resources/post-and-verify.cgi new file mode 100755 index 0000000..2c7aa62 --- /dev/null +++ b/LayoutTests/http/tests/resources/post-and-verify.cgi @@ -0,0 +1,30 @@ +#!/usr/bin/perl -w + +print "Content-type: text/plain\n\n"; + +if ($ENV{'REQUEST_METHOD'} eq "POST") { + if ($ENV{'CONTENT_LENGTH'}) { + read(STDIN, $postData, $ENV{'CONTENT_LENGTH'}) || die "Could not get post data\n"; + } else { + $postData = ""; + } + + @list = split(/&/, $ENV{'QUERY_STRING'}); + foreach $element (@list) { + ($key, $value) = split(/=/, $element); + $values{$key} = $value; + } + + open FILE, $values{'path'} || die("Could not open file\n"); + seek FILE, $values{'start'}, 0; + read FILE, $expectedData, $values{'length'}; + close(FILE); + + if ($postData eq $expectedData) { + print "OK"; + } else { + print "FAILED"; + } +} else { + print "Wrong method: " . $ENV{'REQUEST_METHOD'} . "\n"; +} |