mirror of
https://github.com/nodejs/node.git
synced 2025-08-16 06:08:50 +02:00

This commit contains three separate changes: - Always return a string from ToUnicode no matter if an error occurred. - Disable CheckHyphens boolean flag. This flag will soon be enabled in the URL Standard, but is implemented manually by selectively ignoring certain errors. - Enable CheckBidi boolean flag per URL Standard update. This allows domain names with hyphens at 3 and 4th position, as well as those with leading and trailing hyphens. They are technically invalid, but seen in the wild. Tests are updated and simplified accordingly. PR-URL: https://github.com/nodejs/node/pull/12966 Fixes: https://github.com/nodejs/node/issues/12965 Refs: https://github.com/whatwg/url/pull/309 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Timothy Gu <timothygu99@gmail.com>
28 lines
911 B
JavaScript
28 lines
911 B
JavaScript
'use strict';
|
||
|
||
require('../common');
|
||
const strictEqual = require('assert').strictEqual;
|
||
const url = require('url');
|
||
|
||
const domainToASCII = url.domainToASCII;
|
||
const domainToUnicode = url.domainToUnicode;
|
||
|
||
const domainWithASCII = [
|
||
['ıíd', 'xn--d-iga7r'],
|
||
['يٴ', 'xn--mhb8f'],
|
||
['www.ϧƽəʐ.com', 'www.xn--cja62apfr6c.com'],
|
||
['новини.com', 'xn--b1amarcd.com'],
|
||
['名がドメイン.com', 'xn--v8jxj3d1dzdz08w.com'],
|
||
['افغانستا.icom.museum', 'xn--mgbaal8b0b9b2b.icom.museum'],
|
||
['الجزائر.icom.fake', 'xn--lgbbat1ad8j.icom.fake'],
|
||
['भारत.org', 'xn--h2brj9c.org']
|
||
];
|
||
|
||
domainWithASCII.forEach((pair) => {
|
||
const domain = pair[0];
|
||
const ascii = pair[1];
|
||
const domainConvertedToASCII = domainToASCII(domain);
|
||
strictEqual(domainConvertedToASCII, ascii);
|
||
const asciiConvertedToUnicode = domainToUnicode(ascii);
|
||
strictEqual(asciiConvertedToUnicode, domain);
|
||
});
|