mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/6570 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>v6.x
committed by
Evan Lucas
1 changed files with 97 additions and 0 deletions
@ -0,0 +1,97 @@ |
|||
'use strict'; |
|||
require('../common'); |
|||
const assert = require('assert'); |
|||
const inspect = require('util').inspect; |
|||
const checkIsHttpToken = require('_http_common')._checkIsHttpToken; |
|||
const checkInvalidHeaderChar = require('_http_common')._checkInvalidHeaderChar; |
|||
|
|||
// Good header field names
|
|||
[ |
|||
'TCN', |
|||
'ETag', |
|||
'date', |
|||
'alt-svc', |
|||
'Content-Type', |
|||
'0', |
|||
'Set-Cookie2', |
|||
'Set_Cookie', |
|||
'foo`bar^', |
|||
'foo|bar', |
|||
'~foobar', |
|||
'FooBar!', |
|||
'#Foo', |
|||
'$et-Cookie', |
|||
'%%Test%%', |
|||
'Test&123', |
|||
'It\'s_fun', |
|||
'2*3', |
|||
'4+2', |
|||
'3.14159265359' |
|||
].forEach(function(str) { |
|||
assert.strictEqual(checkIsHttpToken(str), |
|||
true, |
|||
'checkIsHttpToken(' + |
|||
inspect(str) + |
|||
') unexpectedly failed'); |
|||
}); |
|||
// Bad header field names
|
|||
[ |
|||
':', |
|||
'@@', |
|||
'中文呢', // unicode
|
|||
'((((())))', |
|||
':alternate-protocol', |
|||
'alternate-protocol:', |
|||
'foo\nbar', |
|||
'foo\rbar', |
|||
'foo\r\nbar', |
|||
'foo\x00bar', |
|||
'\x7FMe!', |
|||
'{Start', |
|||
'(Start', |
|||
'[Start', |
|||
'End}', |
|||
'End)', |
|||
'End]', |
|||
'"Quote"', |
|||
'This,That' |
|||
].forEach(function(str) { |
|||
assert.strictEqual(checkIsHttpToken(str), |
|||
false, |
|||
'checkIsHttpToken(' + |
|||
inspect(str) + |
|||
') unexpectedly succeeded'); |
|||
}); |
|||
|
|||
|
|||
// Good header field values
|
|||
[ |
|||
'foo bar', |
|||
'foo\tbar', |
|||
'0123456789ABCdef', |
|||
'!@#$%^&*()-_=+\\;\':"[]{}<>,./?|~`' |
|||
].forEach(function(str) { |
|||
assert.strictEqual(checkInvalidHeaderChar(str), |
|||
false, |
|||
'checkInvalidHeaderChar(' + |
|||
inspect(str) + |
|||
') unexpectedly failed'); |
|||
}); |
|||
|
|||
// Bad header field values
|
|||
[ |
|||
'foo\rbar', |
|||
'foo\nbar', |
|||
'foo\r\nbar', |
|||
'中文呢', // unicode
|
|||
'\x7FMe!', |
|||
'Testing 123\x00', |
|||
'foo\vbar', |
|||
'Ding!\x07' |
|||
].forEach(function(str) { |
|||
assert.strictEqual(checkInvalidHeaderChar(str), |
|||
true, |
|||
'checkInvalidHeaderChar(' + |
|||
inspect(str) + |
|||
') unexpectedly succeeded'); |
|||
}); |
Loading…
Reference in new issue