mirror of
https://github.com/curl/curl.git
synced 2024-12-27 06:59:43 +08:00
c6ddb606d8
The character set in POSIX is set by the locale defined by (in decreasing order of precedence) the LC_ALL, LC_CTYPE and LANG environment variables (CHARSET was used by libidn but not libidn2). LC_ALL is cleared to ensure that LC_CTYPE takes effect, but LC_ALL is not used to set the locale to ensure that other parts of the locale aren't overridden. Since there doesn't seem to be a cross-platform way of specifying a UTF-8 locale, and not all systems may support UTF-8, a <precheck> is used to skip the test if UTF-8 can't be verified to be available. Test 1035 was also converted to UTF-8 for consistency, as the actual character set used there is irrelevant to the test. This patch uses a different UTF-8 locale than the last attempt, namely en_US.UTF-8. This one has been verified on 7 different Linux and BSD distributions and is more complete and usable than the locale UTF-8 (on at least some systems).
99 lines
1.5 KiB
Plaintext
99 lines
1.5 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
HTTP GET
|
|
IDN
|
|
followlocation
|
|
--write-out
|
|
</keywords>
|
|
</info>
|
|
|
|
#
|
|
# Server-side
|
|
<reply>
|
|
<data nocheck="yes">
|
|
HTTP/1.1 302 OK swsbounce
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Content-Length: 9
|
|
Content-Type: text/plain
|
|
Location: ./20460001
|
|
|
|
redirect
|
|
</data>
|
|
<data1 nocheck="yes">
|
|
HTTP/1.1 200 OK
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Content-Length: 3
|
|
Content-Type: text/plain; charset=us-ascii
|
|
|
|
OK
|
|
</data1>
|
|
</reply>
|
|
|
|
#
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
http
|
|
</server>
|
|
<features>
|
|
idn
|
|
</features>
|
|
<setenv>
|
|
LC_ALL=
|
|
LC_CTYPE=en_US.UTF-8
|
|
</setenv>
|
|
<precheck>
|
|
perl -MI18N::Langinfo=langinfo,CODESET -e 'die "Needs a UTF-8 locale" if (lc(langinfo(CODESET())) ne "utf-8");'
|
|
</precheck>
|
|
<name>
|
|
Connection re-use with IDN host name
|
|
</name>
|
|
|
|
<command>
|
|
http://åäö.se:%HTTPPORT/2046 --resolve xn--4cab6c.se:%HTTPPORT:%HOSTIP -w "%{num_connects}\n%{num_redirects}\n%{size_download}\n%{url_effective}\n%{content_type}\n%{response_code}\n" -L
|
|
</command>
|
|
</client>
|
|
|
|
#
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<strip>
|
|
^User-Agent:.*
|
|
</strip>
|
|
<protocol>
|
|
GET /2046 HTTP/1.1
|
|
Host: xn--4cab6c.se:%HTTPPORT
|
|
Accept: */*
|
|
|
|
GET /20460001 HTTP/1.1
|
|
Host: xn--4cab6c.se:%HTTPPORT
|
|
Accept: */*
|
|
|
|
</protocol>
|
|
|
|
<stdout>
|
|
HTTP/1.1 302 OK swsbounce
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Content-Length: 9
|
|
Content-Type: text/plain
|
|
Location: ./20460001
|
|
|
|
HTTP/1.1 200 OK
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Content-Length: 3
|
|
Content-Type: text/plain; charset=us-ascii
|
|
|
|
OK
|
|
1
|
|
1
|
|
3
|
|
http://åäö.se:%HTTPPORT/20460001
|
|
text/plain; charset=us-ascii
|
|
200
|
|
</stdout>
|
|
|
|
</verify>
|
|
</testcase>
|