diff options
author | Max Dymond <max.dymond@microsoft.com> | 2021-07-22 15:32:30 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-09-27 17:16:43 +0200 |
commit | a517378de58358a85b7cfe9efecb56051268f629 (patch) | |
tree | 8b8b43685911d3cbc6450b8d7255f5a10d2b8795 /tests/data | |
parent | 06981ba7f620364eba253f5afcd7ebfaefcc8694 (diff) | |
download | curl-a517378de58358a85b7cfe9efecb56051268f629.tar.gz |
CURLOPT_PREREQFUNCTION: add new callback
Triggered before a request is made but after a connection is set up
Changes:
- callback: Update docs and callback for pre-request callback
- Add documentation for CURLOPT_PREREQDATA and CURLOPT_PREREQFUNCTION,
- Add redirect test and callback failure test
- Note that the function may be called multiple times on a redirection
- Disable new 2086 test due to Windows weirdness
Closes #7477
Diffstat (limited to 'tests/data')
-rw-r--r-- | tests/data/DISABLED | 2 | ||||
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test2082 | 51 | ||||
-rw-r--r-- | tests/data/test2083 | 45 | ||||
-rw-r--r-- | tests/data/test2084 | 54 | ||||
-rw-r--r-- | tests/data/test2085 | 64 | ||||
-rw-r--r-- | tests/data/test2086 | 52 |
7 files changed, 269 insertions, 1 deletions
diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 6807fe23d..aa0fee396 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -29,6 +29,8 @@ # test 1801 causes problems on Mac OS X and github # https://github.com/curl/curl/issues/380 1801 +# test 2086 causes issues on Windows only +2086 # # # Tests that are disabled here for Hyper are SUPPOSED to work but diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index d906ca338..41249fdad 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -229,7 +229,7 @@ test2064 test2065 test2066 test2067 test2068 test2069 \ test2064 test2065 test2066 test2067 test2068 test2069 test2070 \ test2071 test2072 test2073 test2074 test2075 test2076 test2077 \ test2078 \ -test2080 test2081 \ +test2080 test2081 test2082 test2083 test2084 test2085 test2086 \ \ test2100 \ \ diff --git a/tests/data/test2082 b/tests/data/test2082 new file mode 100644 index 000000000..4c37772d5 --- /dev/null +++ b/tests/data/test2082 @@ -0,0 +1,51 @@ +<testcase> +<info> +<keywords> +HTTP +</keywords> +</info> + +# Server-side +<reply> +<data nocheck="yes"> +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Content-Type: text/html +Content-Length: 0 + +</data> +</reply> + +# Client-side +<client> +<server> +http +</server> + +<name> +Pre-request callback for HTTP +</name> +<tool> +libprereq +</tool> + +<command> +%HOSTIP:%HTTPPORT/%TESTNUMBER +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<stripfile> +s/^Local port = \d+/Local port = stripped/ +</stripfile> +<stdout> +Connected to %HOSTIP +Connected from %CLIENTIP +Remote port = %HTTPPORT +Local port = stripped +Returning = 0 +</stdout> +</verify> +</testcase> diff --git a/tests/data/test2083 b/tests/data/test2083 new file mode 100644 index 000000000..9256151a8 --- /dev/null +++ b/tests/data/test2083 @@ -0,0 +1,45 @@ +<testcase> +<info> +<keywords> +FTP +</keywords> +</info> + +# Server-side +<reply> +<data> +</data> +</reply> + +# Client-side +<client> +<server> +ftp +</server> + +<name> +Pre-request callback for FTP +</name> +<tool> +libprereq +</tool> + +<command> +ftp://%HOSTIP:%FTPPORT/test-%TESTNUMBER/ +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<stripfile> +s/^Local port = \d+/Local port = stripped/ +</stripfile> +<stdout> +Connected to %HOSTIP +Connected from %CLIENTIP +Remote port = %FTPPORT +Local port = stripped +Returning = 0 +</stdout> +</verify> +</testcase> diff --git a/tests/data/test2084 b/tests/data/test2084 new file mode 100644 index 000000000..ced7086c4 --- /dev/null +++ b/tests/data/test2084 @@ -0,0 +1,54 @@ +<testcase> +<info> +<keywords> +HTTP +</keywords> +</info> + +# Server-side +<reply> +<data nocheck="yes"> +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Content-Type: text/html +Content-Length: 0 + +</data> +</reply> + +# Client-side +<client> +<server> +http +</server> + +<name> +Pre-request callback for HTTP with callback terminating transfer +</name> +<tool> +libprereq +</tool> + +<command> +%HOSTIP:%HTTPPORT/%TESTNUMBER#err +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<errorcode> +42 +</errorcode> +<stripfile> +s/^Local port = \d+/Local port = stripped/ +</stripfile> +<stdout> +Connected to %HOSTIP +Connected from %CLIENTIP +Remote port = %HTTPPORT +Local port = stripped +Returning = 1 +</stdout> +</verify> +</testcase> diff --git a/tests/data/test2085 b/tests/data/test2085 new file mode 100644 index 000000000..665a756c0 --- /dev/null +++ b/tests/data/test2085 @@ -0,0 +1,64 @@ +<testcase> +<info> +<keywords> +HTTP +followlocation +</keywords> +</info> + +# Server-side +<reply> +<data nocheck="yes"> +HTTP/1.1 302 OK swsclose +Location: data2.html/%TESTNUMBER0002 +Date: Tue, 09 Nov 2010 14:49:00 GMT +Connection: close + +</data> +<data2 nocheck="yes"> +HTTP/1.1 200 OK swsclose +Location: this should be ignored +Date: Tue, 09 Nov 2010 14:49:00 GMT +Connection: close + +body +</data2> +</reply> + +# Client-side +<client> +<server> +http +</server> + +<name> +Pre-request callback for HTTP with location following +</name> +<tool> +libprereq +</tool> + +<command> +%HOSTIP:%HTTPPORT/%TESTNUMBER#redir +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<stripfile> +s/^Local port = \d+/Local port = stripped/ +</stripfile> +<stdout> +Connected to %HOSTIP +Connected from %CLIENTIP +Remote port = %HTTPPORT +Local port = stripped +Returning = 0 +Connected to %HOSTIP +Connected from %CLIENTIP +Remote port = %HTTPPORT +Local port = stripped +Returning = 0 +</stdout> +</verify> +</testcase> diff --git a/tests/data/test2086 b/tests/data/test2086 new file mode 100644 index 000000000..ce60aa831 --- /dev/null +++ b/tests/data/test2086 @@ -0,0 +1,52 @@ +<testcase> +<info> +<keywords> +HTTP +IPv6 +</keywords> +</info> + +# Server-side +<reply> +<data nocheck="yes"> +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Content-Type: text/html +Content-Length: 0 + +</data> +</reply> + +# Client-side +<client> +<server> +http-ipv6 +</server> + +<name> +Pre-request callback for HTTP IPv6 +</name> +<tool> +libprereq +</tool> + +<command> +%HOST6IP:%HTTP6PORT/%TESTNUMBER#ipv6 +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<stripfile> +s/^Local port = \d+/Local port = stripped/ +</stripfile> +<stdout> +Connected to %HOST6IP +Connected from %CLIENT6IP +Remote port = %HTTP6PORT +Local port = stripped +Returning = 0 +</stdout> +</verify> +</testcase> |