mirror of
https://github.com/hanzoai/core-js.git
synced 2026-09-24 16:58:15 +00:00
29 lines
2.3 KiB
JavaScript
29 lines
2.3 KiB
JavaScript
import URL from 'core-js-pure/stable/url';
|
|
import parse from 'core-js-pure/stable/url/parse';
|
|
|
|
QUnit.test('URL.parse', assert => {
|
|
assert.isFunction(parse);
|
|
assert.arity(parse, 1);
|
|
assert.name(parse, 'parse');
|
|
|
|
assert.same(parse(undefined), null, 'undefined');
|
|
assert.same(parse(undefined, undefined), null, 'undefined, undefined');
|
|
assert.deepEqual(parse('q:w'), new URL('q:w'), 'q:w');
|
|
assert.deepEqual(parse('q:w', undefined), new URL('q:w'), 'q:w, undefined');
|
|
assert.deepEqual(parse('q:/w'), new URL('q:/w'), 'q:/w');
|
|
assert.deepEqual(parse('q:/w', undefined), new URL('q:/w', undefined), 'q:/w, undefined');
|
|
assert.deepEqual(parse(undefined, 'q:/w'), new URL(undefined, 'q:/w'), 'undefined, q:/w');
|
|
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\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
|
|
assert.deepEqual(parse('x', 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), new URL('x', 'https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment'), 'x, https://login:[email protected]:8080/?a=1&b=2&a=3&c=4#fragment');
|
|
|
|
assert.throws(() => parse(), 'no args');
|
|
assert.throws(() => parse({ toString() { throw new Error('thrower'); } }), 'conversion thrower #1');
|
|
assert.throws(() => parse('q:w', { toString() { throw new Error('thrower'); } }), 'conversion thrower #2');
|
|
});
|