summaryrefslogtreecommitdiffstats
path: root/tests/testserver
diff options
context:
space:
mode:
authorRyan Chu <ryan.chu@qt.io>2018-05-03 15:01:57 +0200
committerRyan Chu <ryan.chu@qt.io>2018-07-27 17:40:27 +0000
commit3f80783b1188afdf032571b48bc47a160d6dccf6 (patch)
tree7b0be362e8a51eb56b1376b7bf7cad603117a889 /tests/testserver
parent0bb760260eb055f813247bf9ef06e372cac219d3 (diff)
Rework QNetworkReply tests to use docker-based test servers
This change frees the tests of their dependence on the Qt internal test server (qt-test-server.qt-test-net). It makes the developers run the tests out of Qt testing infrastructure. If the user has installed Docker engine on their host, the test servers will be built up inside separate Docker containers, and then, the test case goes with the Docker-based test servers. Otherwise, the test case will keep using the Qt internal test server. Task-number: QTQAINFRA-1686 Change-Id: I518bc3675bfd658938509744b0e7e0610bc8bf66 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Diffstat (limited to 'tests/testserver')
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/get-cookie.cgi5
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/http-delete.cgi22
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/http-unknown-authentication-method.cgi17
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/httpcachetest_expires500.cgi12
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/multipart.cgi42
-rwxr-xr-xtests/testserver/apache2/testdata/www/cgi-bin/set-cookie.cgi9
-rw-r--r--tests/testserver/apache2/testdata/www/htdocs/protected/.htaccess5
7 files changed, 112 insertions, 0 deletions
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/get-cookie.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/get-cookie.cgi
new file mode 100755
index 0000000000..59f40ac78b
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/get-cookie.cgi
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+echo "Content-Type: text/plain"
+echo
+echo "$HTTP_COOKIE"
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/http-delete.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/http-delete.cgi
new file mode 100755
index 0000000000..18000c9f4c
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/http-delete.cgi
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+
+use CGI;
+
+if ($ENV{'REQUEST_METHOD'} eq "DELETE") {
+ $queryString = $ENV{'QUERY_STRING'};
+ if ($queryString eq "200-ok") {
+ $returnCode = 200;
+ } elsif ($queryString eq "202-accepted") {
+ $returnCode = 202;
+ } elsif ($queryString eq "204-no-content") {
+ $returnCode = 204;
+ } else {
+ $returnCode = 404;
+ }
+} else {
+ # 405 = Method Not Allowed
+ $returnCode = 405;
+}
+
+$q = new CGI;
+print $q->header(-status=>$returnCode);
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/http-unknown-authentication-method.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/http-unknown-authentication-method.cgi
new file mode 100755
index 0000000000..ce47e8384c
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/http-unknown-authentication-method.cgi
@@ -0,0 +1,17 @@
+#!/usr/bin/perl
+
+use CGI;
+
+$queryString = $ENV{'QUERY_STRING'};
+my $message;
+if ($queryString eq "407-proxy-authorization-required") {
+ $status = 407;
+} else {
+ $status = 401;
+}
+
+$q = new CGI;
+print $q->header(-status=>$status,
+ -type=>"text/plain",
+ -WWW_Authenticate=>'WSSE realm="Test", profile="TestProfile"'),
+ "authorization required";
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/httpcachetest_expires500.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/httpcachetest_expires500.cgi
new file mode 100755
index 0000000000..66a3741641
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/httpcachetest_expires500.cgi
@@ -0,0 +1,12 @@
+#!/bin/bash
+if [ "${HTTP_IF_MODIFIED_SINCE}" ]
+then
+ echo "Status: 500"
+ echo ""
+ exit;
+fi
+
+echo "Expires: Mon, 30 Oct 2028 14:19:41 GMT"
+echo "Content-type: text/html";
+echo ""
+echo "Hello World!"
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/multipart.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/multipart.cgi
new file mode 100755
index 0000000000..6973875cc9
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/multipart.cgi
@@ -0,0 +1,42 @@
+#!/usr/bin/perl
+
+use CGI;
+use Digest::MD5 qw(md5_hex);
+
+$q = new CGI;
+print $q->header();
+
+$contentType = $ENV{"CONTENT_TYPE"};
+print "content type: $contentType\n";
+
+if ($contentType =~ /^multipart\/form-data/) {
+ foreach my $key ($q->param) {
+ foreach my $value ($q->param($key)) {
+ if ($key =~ /text/) {
+ $retValue = $value;
+ } else {
+ $retValue = md5_hex($value);
+ }
+ print "key: $key, value: $retValue\n";
+ }
+ }
+} else {
+ #$contentLength = $ENV{"CONTENT_LENGTH"};
+ #print "content length: $contentLength\r\n";
+
+ $data = $q->param('POSTDATA');
+ $data =~ s/--\S*--$//; # remove ending boundary
+ @parts = split(/--\S*\r\n/, $data);
+ shift(@parts);
+ foreach (@parts) {
+ #print "raw: $_";
+ ($header, $content) = split("\r\n\r\n");
+ @headerFields = split("\r\n", $header);
+ foreach (@headerFields) {
+ ($fieldName, $value) = split(": ");
+ print "header: $fieldName, value: '$value'\n";
+ }
+ $content =~ s/\r\n//;
+ print "content: $content\n\n";
+ }
+}
diff --git a/tests/testserver/apache2/testdata/www/cgi-bin/set-cookie.cgi b/tests/testserver/apache2/testdata/www/cgi-bin/set-cookie.cgi
new file mode 100755
index 0000000000..dc463f00f3
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/cgi-bin/set-cookie.cgi
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+echo "Content-type: text/plain"
+while read line; do
+ echo "Set-Cookie: $line"
+done
+
+echo
+echo "Success"
diff --git a/tests/testserver/apache2/testdata/www/htdocs/protected/.htaccess b/tests/testserver/apache2/testdata/www/htdocs/protected/.htaccess
new file mode 100644
index 0000000000..c465494167
--- /dev/null
+++ b/tests/testserver/apache2/testdata/www/htdocs/protected/.htaccess
@@ -0,0 +1,5 @@
+Require valid-user
+AuthUserFile /home/qt-test-server/passwords
+AuthType basic
+AuthName "password-protected area"
+Options Indexes