mirror of
https://github.com/hanzoai/core-js.git
synced 2026-09-24 16:58:15 +00:00
relax url tests for node < 24
This commit is contained in:
@@ -25,7 +25,7 @@ QUnit.test('URL.canParse', assert => {
|
||||
|
||||
assert.false(canParse('http://a\u0001b.example.com/'), 'forbidden domain code point');
|
||||
assert.false(canParse('http://a\uFE6Ab.example.com/'), 'code point mapped onto a forbidden domain code point');
|
||||
assert.true(canParse('http://a\u180Eb.example.com/'), 'ignored code point in a domain');
|
||||
assert.true(canParse('http://a\u00ADb.example.com/'), 'ignored code point in a domain');
|
||||
assert.throws(() => canParse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');
|
||||
assert.throws(() => canParse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');
|
||||
});
|
||||
|
||||
@@ -70,13 +70,22 @@ QUnit.test('URL constructor', assert => {
|
||||
|
||||
// https://www.unicode.org/reports/tr46/#IDNA_Mapping_Table
|
||||
assert.same(new URL('http://a\u00ADb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u034Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Bb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u200Bb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u206Ab.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u115Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u17B4b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u3164b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFFA0b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u2060b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFE00b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFEFFb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uDB40\uDD00b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
// an older UTS#46 table rejects the entries below instead of ignoring them - Node < 24 ships one
|
||||
if (URL.canParse('http://a\u180Eb.example.com/')) {
|
||||
assert.same(new URL('http://a\u115Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u17B4b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u206Ab.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u3164b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFFA0b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
}
|
||||
assert.same(new URL('http://\uFF27\uFF4F.com/').hostname, 'go.com', 'full-width form mapped to ASCII');
|
||||
assert.same(new URL('http://\uFF10\uFF38\uFF43\uFF10\uFF0E\uFF10\uFF12\uFF15\uFF10\uFF0E\uFF10\uFF11/').hostname, '192.168.0.1', 'full-width form mapped to an IPv4 address');
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ QUnit.test('URL.parse', assert => {
|
||||
assert.same(parse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), null, 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');
|
||||
assert.same(parse('http://a\u0001b.example.com/'), null, 'forbidden domain code point');
|
||||
assert.same(parse('http://a\uFE6Ab.example.com/'), null, 'code point mapped onto a forbidden domain code point');
|
||||
assert.same(parse('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(parse('http://a\u00ADb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.deepEqual(parse('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment');
|
||||
assert.deepEqual(parse('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment', undefined), new URL('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment, undefined');
|
||||
// eslint-disable-next-line unicorn/relative-url-style -- required for testing
|
||||
|
||||
@@ -22,7 +22,7 @@ QUnit.test('URL.canParse', assert => {
|
||||
|
||||
assert.false(canParse('http://a\u0001b.example.com/'), 'forbidden domain code point');
|
||||
assert.false(canParse('http://a\uFE6Ab.example.com/'), 'code point mapped onto a forbidden domain code point');
|
||||
assert.true(canParse('http://a\u180Eb.example.com/'), 'ignored code point in a domain');
|
||||
assert.true(canParse('http://a\u00ADb.example.com/'), 'ignored code point in a domain');
|
||||
assert.throws(() => canParse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');
|
||||
assert.throws(() => canParse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');
|
||||
});
|
||||
|
||||
@@ -71,13 +71,22 @@ QUnit.test('URL constructor', assert => {
|
||||
|
||||
// https://www.unicode.org/reports/tr46/#IDNA_Mapping_Table
|
||||
assert.same(new URL('http://a\u00ADb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u034Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Bb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u200Bb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u206Ab.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u115Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u17B4b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u3164b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFFA0b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u2060b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFE00b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFEFFb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uDB40\uDD00b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
// an older UTS#46 table rejects the entries below instead of ignoring them - Node < 24 ships one
|
||||
if (URL.canParse('http://a\u180Eb.example.com/')) {
|
||||
assert.same(new URL('http://a\u115Fb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u17B4b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u206Ab.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\u3164b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(new URL('http://a\uFFA0b.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
}
|
||||
assert.same(new URL('http://\uFF27\uFF4F.com/').hostname, 'go.com', 'full-width form mapped to ASCII');
|
||||
assert.same(new URL('http://\uFF10\uFF38\uFF43\uFF10\uFF0E\uFF10\uFF12\uFF15\uFF10\uFF0E\uFF10\uFF11/').hostname, '192.168.0.1', 'full-width form mapped to an IPv4 address');
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ QUnit.test('URL.parse', assert => {
|
||||
assert.same(parse('https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment'), null, 'https://login:password@examp:le.com:8080/?a=1&b=2&a=3&c=4#fragment');
|
||||
assert.same(parse('http://a\u0001b.example.com/'), null, 'forbidden domain code point');
|
||||
assert.same(parse('http://a\uFE6Ab.example.com/'), null, 'code point mapped onto a forbidden domain code point');
|
||||
assert.same(parse('http://a\u180Eb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.same(parse('http://a\u00ADb.example.com/').hostname, 'ab.example.com', 'ignored code point in a domain');
|
||||
assert.deepEqual(parse('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment');
|
||||
assert.deepEqual(parse('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment', undefined), new URL('https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment', undefined), 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment, undefined');
|
||||
// eslint-disable-next-line unicorn/relative-url-style -- required for testing
|
||||
|
||||
Reference in New Issue
Block a user