1169d9 | 2004-05-02 | Martin Nilsson | | START_MARKER
|
05dc76 | 2001-07-20 | Martin Stjernholm | |
|
39a701 | 2004-01-27 | Martin Nilsson | | test_eq(_Roxen.html_encode_string (0), "0")
test_eq(_Roxen.html_encode_string (""), "")
test_eq(_Roxen.html_encode_string (10), "10")
test_eq(_Roxen.html_encode_string("a&b<c>d"), "a&b<c>d")
test_eq(_Roxen.http_decode_string(""), "")
test_eq(_Roxen.http_decode_string("abc+d%20e%41"), "abc+d eA")
test_eq(_Roxen.http_decode_string(""), "")
|
6af85a | 2012-09-13 | Martin Nilsson | | test_eq(_Roxen.http_decode_string("+"), "+")
|
681279 | 2014-10-16 | Arne Goedeke | |
|
d13a21 | 2016-03-02 | Henrik Grubbström (Grubba) | | test_eq(_Roxen.http_decode_string("%uD83D%uDE02"), "\U0001f602")
|
1837dd | 2014-10-16 | Arne Goedeke | | // the following inputs are all illegal
|
681279 | 2014-10-16 | Arne Goedeke | | test_eval_error(_Roxen.http_decode_string("%"))
test_eval_error(_Roxen.http_decode_string("%0"))
test_eval_error(_Roxen.http_decode_string("%%"))
test_eval_error(_Roxen.http_decode_string("%%%"))
test_eval_error(_Roxen.http_decode_string("%41%"))
test_eval_error(_Roxen.http_decode_string("%41%0"))
test_eval_error(_Roxen.http_decode_string("%41%%"))
test_eval_error(_Roxen.http_decode_string("%41%%%"))
test_eval_error(_Roxen.http_decode_string("%u"))
test_eval_error(_Roxen.http_decode_string("%u0"))
test_eval_error(_Roxen.http_decode_string("%u00"))
test_eval_error(_Roxen.http_decode_string("%u000"))
test_eval_error(_Roxen.http_decode_string("%u000_"))
test_eval_error(_Roxen.http_decode_string("%41%u"))
test_eval_error(_Roxen.http_decode_string("%41%u0"))
test_eval_error(_Roxen.http_decode_string("%41%u00"))
test_eval_error(_Roxen.http_decode_string("%41%u000"))
test_eval_error(_Roxen.http_decode_string("%41%u000_"))
|
d13a21 | 2016-03-02 | Henrik Grubbström (Grubba) | | dnl test_eval_error(_Roxen.http_decode_string("%uD83D"))
dnl test_eval_error(_Roxen.http_decode_string("%uDE02"))
dnl test_eval_error(_Roxen.http_decode_string("X%uD83DX"))
dnl test_eval_error(_Roxen.http_decode_string("X%uDE02X"))
|
681279 | 2014-10-16 | Arne Goedeke | |
|
39a701 | 2004-01-27 | Martin Nilsson | | test_eq(_Roxen.http_decode_string("%u12345"), "\x1234""5")
test_eq(_Roxen.http_decode_string("%U12345"), "\x1234""5")
|
7113c0 | 2004-01-27 | Martin Nilsson | |
define(test_mkhttp,[[
test_any_equal([[
string x=_Roxen.make_http_headers($1);
if(!has_suffix(x, "\r\n")) return -1;
return sort(x/"\r\n"-({""}));
]],$2)
]])
test_eval_error(_Roxen.make_http_headers(0))
test_mkhttp( ([]), ({}) )
test_mkhttp( (["":""]), ({": "}) )
test_mkhttp( (["a":"1","b":"2"]), ({"a: 1","b: 2"}) )
test_mkhttp( (["a":"1","b":({"2","3"})]), ({"a: 1","b: 2","b: 3"}) )
test_mkhttp( (["a":"1","b":({"2","2"})]), ({"a: 1","b: 2","b: 2"}) )
|
f2225c | 2009-07-29 | Martin Nilsson | |
|
936dd9 | 2016-06-29 | Henrik Grubbström (Grubba) | | test_eval_error(_Roxen.make_http_headers((["a:1": "1"])))
test_eval_error(_Roxen.make_http_headers((["a\rb": "1"])))
test_eval_error(_Roxen.make_http_headers((["a\nb": "1"])))
test_eval_error(_Roxen.make_http_headers(([" a:1": "1"])))
test_eval_error(_Roxen.make_http_headers((["a": "1\r"])))
test_eval_error(_Roxen.make_http_headers((["a": "1\n"])))
test_eval_error(_Roxen.make_http_headers((["a": ({ "1\r\nb:2", "2\r\nc:2" })))))
|
f2225c | 2009-07-29 | Martin Nilsson | | define(test_hp,[[
|
a979c3 | 2016-07-25 | Martin Nilsson | | test_any_equal([[
object hp = _Roxen.HeaderParser();
|
935e74 | 2016-07-27 | Martin Nilsson | | if( $2[0]=="" )
{
// Only feed in increments when we are not testing trailing data.
Stdio.Buffer data = Stdio.Buffer($1);
while( sizeof(data) )
{
mixed res = hp->feed(data->read(1));
if(res) return res;
}
return -1;
}
return hp->feed( $1 );
]], $2)
test_any_equal([[
object hp = _Roxen.HeaderParser();
if( $2[0]=="" )
{
// Only feed in increments when we are not testing trailing data.
Stdio.Buffer data = Stdio.Buffer($1);
while( sizeof(data) )
{
string s = data->read(random(3));
if(!s) s = data->read(1);
mixed res = hp->feed(s);
if(res) return res;
}
return -1;
}
|
a979c3 | 2016-07-25 | Martin Nilsson | | return hp->feed( $1 );
]], $2)
|
f2225c | 2009-07-29 | Martin Nilsson | | ]])
|
a979c3 | 2016-07-25 | Martin Nilsson | | test_hp( "GET / HTTP/1.0\r\n\r\n",
({ "", "GET / HTTP/1.0", ([]) }))
test_hp( "GET / HTTP/1.0\r\n\r\nDATA",
({ "DATA", "GET / HTTP/1.0", ([]) }))
test_hp( "GET / HTTP/1.0\r\nhdr: 1\r\n\r\nDATA",
({ "DATA", "GET / HTTP/1.0", ([ "hdr":"1"]) }))
test_hp( "GET / HTTP/1.0\r\nBlaha: foo\nbar\r\nzonk: 1\r\n\r\n",
|
f2225c | 2009-07-29 | Martin Nilsson | | ({ "", "GET / HTTP/1.0", ([ "blaha":"foo", "zonk":"1" ]) }) )
test_hp( "GET / HTTP/1.0\r\nblaha: foo\r\nzonk: 1\r\n\r\n",
({ "", "GET / HTTP/1.0", ([ "blaha":"foo", "zonk":"1" ]) }) )
|
a979c3 | 2016-07-25 | Martin Nilsson | | test_hp( "GET / HTTP/1.0\r\nblaha: foo\n\rBlaha: bar\r\n\r\n",
|
f2225c | 2009-07-29 | Martin Nilsson | | ({ "", "GET / HTTP/1.0", ([ "blaha":({ "foo", "bar" }) ]) }) )
|
a979c3 | 2016-07-25 | Martin Nilsson | | test_any_equal([[
object hp = _Roxen.HeaderParser(0, 1);
return hp->feed( "GET / HTTP/1.0\r\nBlaha: foo\r\nblaha: foo\r\n\r\n" );
]], [[ ({ "", "GET / HTTP/1.0", ([ "Blaha":"foo", "blaha":"foo"]) }) ]])
test_any_equal([[
object hp = _Roxen.HeaderParser(0, 0);
return hp->feed( "GET / HTTP/1.0\r\nBlaha: foo\r\nblaha: foo\r\n\r\n", 1 );
]], [[ ({ "", "GET / HTTP/1.0", ([ "Blaha":"foo", "blaha":"foo"]) }) ]])
|
1169d9 | 2004-05-02 | Martin Nilsson | | END_MARKER
|