| 12345678910111213141516171819202122232425262728293031323334 |
- 'use strict'
- const test = require('tape')
- const fastURI = require('..')
- test('IPv6 hosts normalize to the RFC 5952 canonical form', (t) => {
- const cases = [
- ['http://[0:0:0:0:0:0:0:1]/', 'http://[::1]/'],
- ['http://[0:0:0:0:0:0:0:0]/', 'http://[::]/'],
- ['http://[2001:0db8:0000:0000:0000:0000:0000:0001]/', 'http://[2001:db8::1]/'],
- ['http://[2001:0:0:0:0:0:0:1]/', 'http://[2001::1]/'],
- ['http://[fe80:0:0:0:0:0:0:1]/', 'http://[fe80::1]/'],
- ['http://[1:0:0:0:2:0:0:3]/', 'http://[1::2:0:0:3]/']
- ]
- for (const [uri, normalized] of cases) {
- t.equal(fastURI.normalize(uri), normalized, `${uri} normalizes to ${normalized}`)
- }
- t.end()
- })
- test('IPv6 equal() matches the same address across compressed and expanded forms', (t) => {
- const pairs = [
- ['http://[::1]/', 'http://[0:0:0:0:0:0:0:1]/'],
- ['http://[::]/', 'http://[0:0:0:0:0:0:0:0]/'],
- ['http://[2001:db8::1]/', 'http://[2001:0db8:0000:0000:0000:0000:0000:0001]/'],
- ['http://[1::2:0:0:3]/', 'http://[1:0:0:0:2:0:0:3]/']
- ]
- for (const [a, b] of pairs) {
- t.equal(fastURI.equal(a, b), true, `${a} equals ${b}`)
- }
- t.end()
- })
|