1// Flags: --expose-internals 2'use strict'; 3require('../common'); 4 5// Test conversion of IP addresses to the format returned 6// for addresses in Subject Alternative Name section 7// of a TLS certificate 8 9const assert = require('assert'); 10const { internalBinding } = require('internal/test/binding'); 11const { canonicalizeIP } = internalBinding('cares_wrap'); 12 13assert.strictEqual(canonicalizeIP('127.0.0.1'), '127.0.0.1'); 14assert.strictEqual(canonicalizeIP('10.1.0.1'), '10.1.0.1'); 15assert.strictEqual(canonicalizeIP('::1'), '::1'); 16assert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:1'), 'fe80::1'); 17assert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:0'), 'fe80::'); 18assert.strictEqual(canonicalizeIP('fe80::0000:0010:0001'), 'fe80::10:1'); 19assert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666:7777:0088'), 20 '1:2222:3333:4444:5555:6666:7777:88'); 21 22assert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666::'), 23 '1:2222:3333:4444:5555:6666::'); 24 25assert.strictEqual(canonicalizeIP('a002:B12:00Ba:4444:5555:6666:0:0'), 26 'a002:b12:ba:4444:5555:6666::'); 27 28// IPv4 address represented in IPv6 29assert.strictEqual(canonicalizeIP('0:0:0:0:0:ffff:c0a8:101'), 30 '::ffff:192.168.1.1'); 31 32assert.strictEqual(canonicalizeIP('::ffff:192.168.1.1'), 33 '::ffff:192.168.1.1'); 34