deno.land / std@0.166.0 / node / _tools / test / parallel / test-url-parse-query.js

test-url-parse-query.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';require('../common');const assert = require('assert');const url = require('url');
function createWithNoPrototype(properties = []) { const noProto = Object.create(null); properties.forEach((property) => { noProto[property.key] = property.value; }); return noProto;}
function check(actual, expected) { assert.notStrictEqual(Object.getPrototypeOf(actual), Object.prototype); assert.deepStrictEqual(Object.keys(actual).sort(), Object.keys(expected).sort()); Object.keys(expected).forEach(function(key) { assert.deepStrictEqual(actual[key], expected[key]); });}
const parseTestsWithQueryString = { '/foo/bar?baz=quux#frag': { href: '/foo/bar?baz=quux#frag', hash: '#frag', search: '?baz=quux', query: createWithNoPrototype([{ key: 'baz', value: 'quux' }]), pathname: '/foo/bar', path: '/foo/bar?baz=quux' }, 'http://example.com': { href: 'http://example.com/', protocol: 'http:', slashes: true, host: 'example.com', hostname: 'example.com', query: createWithNoPrototype(), search: null, pathname: '/', path: '/' }, '/example': { protocol: null, slashes: null, auth: undefined, host: null, port: null, hostname: null, hash: null, search: null, query: createWithNoPrototype(), pathname: '/example', path: '/example', href: '/example' }, '/example?query=value': { protocol: null, slashes: null, auth: undefined, host: null, port: null, hostname: null, hash: null, search: '?query=value', query: createWithNoPrototype([{ key: 'query', value: 'value' }]), pathname: '/example', path: '/example?query=value', href: '/example?query=value' }};for (const u in parseTestsWithQueryString) { const actual = url.parse(u, true); const expected = Object.assign(new url.Url(), parseTestsWithQueryString[u]); for (const i in actual) { if (actual[i] === null && expected[i] === undefined) { expected[i] = null; } }
const properties = Object.keys(actual).sort(); assert.deepStrictEqual(properties, Object.keys(expected).sort()); properties.forEach((property) => { if (property === 'query') { check(actual[property], expected[property]); } else { assert.deepStrictEqual(actual[property], expected[property]); } });}
std

Version Info

Tagged at
a year ago