App-DubiousHTTP
view release on metacpan or search on metacpan
lib/App/DubiousHTTP/Tests/Broken.pm view on Meta::CPAN
[ INVALID, 'end-lfcrcrlf;chunked' => 'header end \n\r\r\n, chunked' ],
[ INVALID, 'end-lfcrcrlf;gzip' => 'header end \n\r\r\n, gzip' ],
[ INVALID, 'end-lfcrcrlfcrlf' => 'header end \n\r\r\n\r\n' ],
[ INVALID, 'end-lfcrcrlfcrlf;chunked' => 'header end \n\r\r\n\r\n, chunked' ],
[ INVALID, 'end-lfcrcrlfcrlf;gzip' => 'header end \n\r\r\n\r\n, gzip' ],
[ INVALID, 'end-lf\040lf' => 'header end \n\040\n' ],
[ UNCOMMON_INVALID, 'end-lf\040lflf' => 'header end \n\040\n\n' ],
[ UNCOMMON_VALID, 'end-crlf\040crlfcrlf' => 'header end \r\n\040\r\n\r\n' ],
[ INVALID, 'chunked;end-lf\040lf' => 'header end \n\040\n and chunked' ],
[ UNCOMMON_INVALID, 'chunked;end-lf\040lflf' => 'header end \n\040\n\n and chunked' ],
[ UNCOMMON_VALID, 'chunked;end-crlf\040crlfcrlf' => 'header end \r\n\040\r\n\r\n and chunked' ],
[ INVALID, 'gzip;end-lf\040lf' => 'header end \n\040\n and gzip' ],
[ UNCOMMON_INVALID, 'gzip;end-lf\040lflf' => 'header end \n\040\n\n and gzip' ],
[ UNCOMMON_VALID, 'gzip;end-crlf\040crlfcrlf' => 'header end \r\n\040\r\n\r\n and gzip' ],
[ INVALID, 'end-lf\040.lf' => 'header end \n\040.\n' ],
[ INVALID, 'end-lf\011lf' => 'header end \n\011\n' ],
[ UNCOMMON_INVALID, 'end-lf\011lflf' => 'header end \n\011\n\n' ],
[ UNCOMMON_VALID, 'end-crlf\011crlfcrlf' => 'header end \r\n\011\r\n\r\n' ],
[ INVALID, 'chunked;end-lf\011lf' => 'header end \n\011\n and chunked' ],
[ UNCOMMON_INVALID, 'chunked;end-lf\011lflf' => 'header end \n\011\n\n and chunked' ],
[ UNCOMMON_VALID, 'chunked;end-crlf\011crlfcrlf' => 'header end \r\n\011\r\n\r\n and chunked' ],
[ INVALID, 'gzip;end-lf\011lf' => 'header end \n\011\n and gzip' ],
[ UNCOMMON_INVALID, 'gzip;end-lf\011lflf' => 'header end \n\011\n\n and gzip' ],
[ UNCOMMON_VALID, 'gzip;end-crlf\011crlfcrlf' => 'header end \r\n\011\r\n\r\n and gzip' ],
[ INVALID, 'end-lf\013lf' => 'header end \n\013\n' ],
[ UNCOMMON_INVALID, 'end-lf\013lflf' => 'header end \n\013\n\n' ],
[ UNCOMMON_VALID, 'end-crlf\013crlfcrlf' => 'header end \r\n\013\r\n\r\n' ],
[ INVALID, 'chunked;end-lf\013lf' => 'header end \n\013\n and chunked' ],
[ UNCOMMON_INVALID, 'chunked;end-lf\013lflf' => 'header end \n\013\n\n and chunked' ],
[ UNCOMMON_VALID, 'chunked;end-crlf\013crlfcrlf' => 'header end \r\n\013\r\n\r\n and chunked' ],
[ INVALID, 'gzip;end-lf\013lf' => 'header end \n\013\n and gzip' ],
[ UNCOMMON_INVALID, 'gzip;end-lf\013lflf' => 'header end \n\013\n\n and gzip' ],
[ UNCOMMON_VALID, 'gzip;end-crlf\013crlfcrlf' => 'header end \r\n\013\r\n\r\n and gzip' ],
[ 'INVALID: redirect without location' ],
[ INVALID, '300' => 'code 300 without location header'],
[ INVALID, '301' => 'code 301 without location header'],
[ INVALID, '302' => 'code 302 without location header'],
[ INVALID, '303' => 'code 303 without location header'],
[ INVALID, '305' => 'code 305 without location header'],
[ INVALID, '307' => 'code 307 without location header'],
[ INVALID, '308' => 'code 308 without location header'],
[ 'INVALID: other status codes with invalid behavior' ],
[ INVALID, '100' => 'code 100 with body'],
[ INVALID, '101' => 'code 101 with body'],
[ INVALID, '102' => 'code 102 with body'],
[ INVALID, '204' => 'code 204 with body'],
[ INVALID, '205' => 'code 205 with body'],
[ INVALID, '206' => 'code 206 with body'],
[ INVALID, '304' => 'code 304 with body'],
[ INVALID, '401' => 'code 401 with body and no authorization requested'],
[ INVALID, '407' => 'code 407 with body and no authorization requested'],
[ 'VALID: other status codes with valid behavior' ],
[ UNCOMMON_VALID, '400' => 'code 400 with body'],
[ UNCOMMON_VALID, '403' => 'code 403 with body'],
[ UNCOMMON_VALID, '404' => 'code 404 with body'],
[ UNCOMMON_VALID, '406' => 'code 406 with body'],
[ UNCOMMON_VALID, '500' => 'code 500 with body'],
[ UNCOMMON_VALID, '502' => 'code 502 with body'],
[ UNCOMMON_INVALID, '100+' => 'code 100 followed by real response'],
[ INVALID, '100+b' => 'code 100 with body followed by real response'],
[ INVALID, '16-100+' => 'code -65436(100) followed by real response'],
[ INVALID, '16-100+b' => 'code -65436(100) with body followed by real response'],
[ 'VALID: non-existing status codes' ],
[ INVALID, '000' => 'code 000 with body'],
[ INVALID, '600' => 'code 600 with body'],
[ INVALID, '700' => 'code 700 with body'],
[ INVALID, '800' => 'code 800 with body'],
[ INVALID, '900' => 'code 900 with body'],
[ 'INVALID: malformed status codes' ],
[ INVALID, '2xx' => 'invalid status code with non-digits (2xx)'],
[ INVALID, '20x' => 'invalid status code with non-digits (20x)'],
[ INVALID, '2' => 'invalid status code, only single digit (2)'],
[ INVALID, '20' => 'invalid status code, two digits (20)'],
[ INVALID, '2000' => 'invalid status code, too much digits (2000)'],
[ INVALID, '0200' => 'invalid status code, numeric (0200)'],
[ INVALID, 'space-200' => 'invalid status code, SPACE+200)'],
[ INVALID, 'tab-200' => 'invalid status code, TAB+200)'],
[ 'INVALID: more variations with status codes' ],
[ UNCOMMON_VALID, '299' => 'code 299'],
[ INVALID, '204;chunked' => 'code 204 with chunked body'],
[ INVALID, '0204' => 'code 0204 with body'],
[ INVALID, '2040' => 'code 2040 with body'],
[ INVALID, '304;chunked' => 'code 304 with chunked body'],
[ INVALID, '0304' => 'code 0304 with body'],
[ INVALID, '3040' => 'code 3040 with body'],
[ 'VALID: new lines before HTTP header' ],
[ UNCOMMON_VALID, 'crlf-header;chunked' => 'single <CR><LF> before header, chunked'],
[ UNCOMMON_VALID, 'crlf-crlf-header;chunked' => 'double <CR><LF> before header, chunked'],
[ 'INVALID: other stuff before HTTP header' ],
[ INVALID, 'space-crlf-header;chunked' => 'space followed by single <CR><LF> before header, chunked'],
[ INVALID, 'space-tab-crlf-header;chunked' => 'space+TAB followed by single <CR><LF> before header, chunked'],
[ INVALID, 'space-crlf-tab-crlf-header;chunked' => 'space+CRLF+TAB+CRLF before header, chunked'],
[ INVALID, 'space-tab-cr-crlf-header;chunked' => 'space+TAB+CR followed by single <CR><LF> before header, chunked'],
[ INVALID, 'foobar-crlf-header;chunked' => 'junk followed by single <CR><LF> before header, chunked'],
[ INVALID, 'SIP/2.0-space-200-space-ok-crlf-header;chunked' => '"SIP/2.0 200 ok" followed by single <CR><LF> before header, chunked'],
[ INVALID, 'space-foobar-crlf-header;chunked' => 'space+junk followed by single <CR><LF> before header, chunked'],
[ INVALID, 'space-SIP/2.0-space-200-space-ok-crlf-header;chunked' => 'space+"SIP/2.0 200 ok" followed by single <CR><LF> before header, chunked'],
[ INVALID, 'cr-header;chunked' => 'single <CR> before header, chunked'],
[ INVALID, 'cr-cr-header;chunked' => 'double <CR> before header, chunked'],
[ INVALID, 'space-cr-header;chunked' => 'space followed by single <CR> before header, chunked'],
[ INVALID, 'lf-header;chunked' => 'single <LF> before header, chunked'],
[ INVALID, 'lf-lf-header;chunked' => 'double <LF> before header, chunked'],
[ INVALID, 'space-lf-header;chunked' => 'space followed by single <LF> before header, chunked'],
[ INVALID, 'lfcr-header;chunked' => 'single <LF><CR> before header, chunked'],
# chrome accepts up to 4 bytes garbage before HTTP/
[ INVALID, 'H-header;chunked' => '"H" before header, chunked'],
[ INVALID, 'HT-header;chunked' => '"HT" before header, chunked'],
[ INVALID, 'HTT-header;chunked' => '"HTT" before header, chunked'],
[ INVALID, 'HTTX-header;chunked' => '"HTTX" before header, chunked'],
[ INVALID, 'HTTXY-header;chunked' => '"HTTXY" before header, chunked'],
);
( run in 1.719 second using v1.01-cache-2.11-cpan-39bf76dae61 )