11cb0ef41Sopenharmony_ci// Flags: --expose-internals
21cb0ef41Sopenharmony_ci'use strict';
31cb0ef41Sopenharmony_cirequire('../common');
41cb0ef41Sopenharmony_ci
51cb0ef41Sopenharmony_ci// Test conversion of IP addresses to the format returned
61cb0ef41Sopenharmony_ci// for addresses in Subject Alternative Name section
71cb0ef41Sopenharmony_ci// of a TLS certificate
81cb0ef41Sopenharmony_ci
91cb0ef41Sopenharmony_ciconst assert = require('assert');
101cb0ef41Sopenharmony_ciconst { internalBinding } = require('internal/test/binding');
111cb0ef41Sopenharmony_ciconst { canonicalizeIP } = internalBinding('cares_wrap');
121cb0ef41Sopenharmony_ci
131cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('127.0.0.1'), '127.0.0.1');
141cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('10.1.0.1'), '10.1.0.1');
151cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('::1'), '::1');
161cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:1'), 'fe80::1');
171cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('fe80:0:0:0:0:0:0:0'), 'fe80::');
181cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('fe80::0000:0010:0001'), 'fe80::10:1');
191cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666:7777:0088'),
201cb0ef41Sopenharmony_ci                   '1:2222:3333:4444:5555:6666:7777:88');
211cb0ef41Sopenharmony_ci
221cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('0001:2222:3333:4444:5555:6666::'),
231cb0ef41Sopenharmony_ci                   '1:2222:3333:4444:5555:6666::');
241cb0ef41Sopenharmony_ci
251cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('a002:B12:00Ba:4444:5555:6666:0:0'),
261cb0ef41Sopenharmony_ci                   'a002:b12:ba:4444:5555:6666::');
271cb0ef41Sopenharmony_ci
281cb0ef41Sopenharmony_ci// IPv4 address represented in IPv6
291cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('0:0:0:0:0:ffff:c0a8:101'),
301cb0ef41Sopenharmony_ci                   '::ffff:192.168.1.1');
311cb0ef41Sopenharmony_ci
321cb0ef41Sopenharmony_ciassert.strictEqual(canonicalizeIP('::ffff:192.168.1.1'),
331cb0ef41Sopenharmony_ci                   '::ffff:192.168.1.1');
34