// Flags: --expose-internals 'use strict'; require('../common'); // Test conversion of IP addresses to the format returned // for addresses in Subject Alternative Name section // of a TLS certificate const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); const { canonicalizeIP } = internalBinding('cares_wrap'); assert.strictEqual(canonicalizeIP('127.0.0.1'), '127.0.0.1'); assert.strictEqual(canonicalizeIP('10.1.0.1'), '10.1.0.1'); assert.strictEqual(canonicalizeIP('::1'), '::1'); assert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:1'), 'fe80::1'); assert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:0'), 'fe80::'); assert.strictEqual(canonicalizeIP('fe80::0000:0010:0001'), 'fe80::10:1'); assert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666:7777:0088'), '1:2222:3333:4444:5555:6666:7777:88'); assert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666::'), '1:2222:3333:4444:5555:6666::'); assert.strictEqual(canonicalizeIP('a002:B12:00Ba:4444:5555:6666:0:0'), 'a002:b12:ba:4444:5555:6666::'); // IPv4 address represented in IPv6 assert.strictEqual(canonicalizeIP('0:0:0:0:0:ffff:c0a8:101'), '::ffff:192.168.1.1'); assert.strictEqual(canonicalizeIP('::ffff:192.168.1.1'), '::ffff:192.168.1.1');