mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.7 KiB
89 lines
1.7 KiB
'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`);
|
|
});
|
|
|