mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
96 lines
1.9 KiB
JavaScript
96 lines
1.9 KiB
JavaScript
|
// deno-fmt-ignore-file
|
||
|
// deno-lint-ignore-file
|
||
|
|
||
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
||
|
// Taken from Node 20.11.1
|
||
|
// This file is automatically generated by `tests/node_compat/runner/setup.ts`. Do not modify this file manually.
|
||
|
|
||
|
'use strict';
|
||
|
require('../common');
|
||
|
const assert = require('assert');
|
||
|
const inspect = require('util').inspect;
|
||
|
const { _checkIsHttpToken, _checkInvalidHeaderChar } = require('_http_common');
|
||
|
|
||
|
// 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`);
|
||
|
});
|