mirror of
https://github.com/curl/curl.git
synced 2026-06-13 15:05:38 +03:00
... even though they use the curl option "--resolve". This makes it more convenient to choose or skip the tests. For example Privoxy's cts test framework relies on the "--resolve" keyword when executing the "upstream-tests" scenario to skip curl tests that aren't expected to work when the requests are made through Privoxy. While some of the modified tests are already skipped for other reasons through other means when testing Privoxy, it's good to be consistent. Closes #21930
118 lines
2.7 KiB
XML
118 lines
2.7 KiB
XML
<?xml version="1.0" encoding="US-ASCII"?>
|
|
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
HTTP GET
|
|
HTTP Digest auth
|
|
--resolve
|
|
</keywords>
|
|
</info>
|
|
# Server-side
|
|
<reply>
|
|
<data crlf="headers">
|
|
HTTP/1.1 401 Authorization Required
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
WWW-Authenticate: Basic realm="foothis"
|
|
WWW-Authenticate: Digest realm="testrealm", nonce="1053604199"
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 26
|
|
|
|
This is not the real page
|
|
</data>
|
|
|
|
# Post-redirect
|
|
<data2 crlf="headers">
|
|
HTTP/1.1 200 OK
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 23
|
|
|
|
This IS the real page!
|
|
</data2>
|
|
|
|
# This is supposed to be returned when the server gets a
|
|
# Authorization: Digest line passed-in from the client
|
|
<data1000 crlf="headers">
|
|
HTTP/1.1 301 Redirect
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 3
|
|
Location: http://host.corp.com:%HTTPPORT/%TESTNUMBER0002
|
|
|
|
go
|
|
</data1000>
|
|
|
|
<datacheck crlf="headers">
|
|
HTTP/1.1 401 Authorization Required
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
WWW-Authenticate: Basic realm="foothis"
|
|
WWW-Authenticate: Digest realm="testrealm", nonce="1053604199"
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 26
|
|
|
|
HTTP/1.1 301 Redirect
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 3
|
|
Location: http://host.corp.com:%HTTPPORT/%TESTNUMBER0002
|
|
|
|
HTTP/1.1 200 OK
|
|
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
|
|
Content-Type: text/html; charset=iso-8859-1
|
|
Content-Length: 23
|
|
|
|
This IS the real page!
|
|
</datacheck>
|
|
|
|
</reply>
|
|
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
http
|
|
</server>
|
|
<features>
|
|
!SSPI
|
|
crypto
|
|
digest
|
|
</features>
|
|
<name>
|
|
netrc with digest and redirect to other origin
|
|
</name>
|
|
<command>
|
|
--resolve host.evil.com:%HTTPPORT:%HOSTIP --resolve host.corp.com:%HTTPPORT:%HOSTIP --netrc-file %LOGDIR/netrc%TESTNUMBER --digest -L http://host.evil.com:%HTTPPORT/%TESTNUMBER --max-redirs 2
|
|
</command>
|
|
<file name="%LOGDIR/netrc%TESTNUMBER">
|
|
machine host.evil.com
|
|
login evil_user
|
|
password evil_pass
|
|
|
|
machine host.corp.com
|
|
login corporate_admin
|
|
password S3cretP@ssw0rd!
|
|
</file>
|
|
</client>
|
|
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<protocol crlf="headers">
|
|
GET /%TESTNUMBER HTTP/1.1
|
|
Host: host.evil.com:%HTTPPORT
|
|
User-Agent: curl/%VERSION
|
|
Accept: */*
|
|
|
|
GET /%TESTNUMBER HTTP/1.1
|
|
Host: host.evil.com:%HTTPPORT
|
|
Authorization: Digest username="evil_user", realm="testrealm", nonce="1053604199", uri="/%TESTNUMBER", response="4ccc7695a6a926b01dcba93a34d2d737"
|
|
User-Agent: curl/%VERSION
|
|
Accept: */*
|
|
|
|
GET /%TESTNUMBER0002 HTTP/1.1
|
|
Host: host.corp.com:%HTTPPORT
|
|
User-Agent: curl/%VERSION
|
|
Accept: */*
|
|
|
|
</protocol>
|
|
</verify>
|
|
</testcase>
|