mirror of
https://github.com/curl/curl.git
synced 2024-12-15 06:40:09 +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).
67 lines
1.0 KiB
Plaintext
67 lines
1.0 KiB
Plaintext
<testcase>
|
||
<info>
|
||
<keywords>
|
||
HTTP
|
||
HTTP GET
|
||
HTTP proxy
|
||
IDN
|
||
FAILURE
|
||
</keywords>
|
||
</info>
|
||
|
||
#
|
||
# Server-side
|
||
<reply>
|
||
<data>
|
||
HTTP/1.0 503 Service Unavailable
|
||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||
Server: test-server/fake swsclose
|
||
Content-Type: text/html
|
||
Funny-head: yesyes
|
||
|
||
</data>
|
||
</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>
|
||
HTTP over proxy with malformatted IDN host name
|
||
</name>
|
||
|
||
# This host name contains an invalid UTF-8 byte sequence that can't be
|
||
# converted into an IDN name
|
||
<command>
|
||
http://invalid-utf8-â<>.local/page/1034 -x %HOSTIP:%HTTPPORT
|
||
</command>
|
||
</client>
|
||
|
||
#
|
||
# Verify data after the test has been "shot"
|
||
<verify>
|
||
<strip>
|
||
^User-Agent:.*
|
||
</strip>
|
||
<protocol>
|
||
GET http://invalid-utf8-â<>.local/page/1034 HTTP/1.1
|
||
Host: invalid-utf8-â<>.local
|
||
Accept: */*
|
||
Proxy-Connection: Keep-Alive
|
||
|
||
</protocol>
|
||
</verify>
|
||
</testcase>
|