{
  "uri-js scheme: uri:": {
    "msg": "uri:",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": null,
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js userinfo: uri://@": {
    "msg": "uri://@",
    "uri": {
      "scheme": "uri",
      "userinfo": "",
      "host": "",
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js empty host: uri://@:": {
    "msg": "uri://@:",
    "uri": {
      "scheme": "uri",
      "userinfo": "",
      "host": "",
      "port": "",
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js host: uri://": {
    "msg": "uri://",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "",
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js port: uri://:": {
    "msg": "uri://:",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "",
      "port": "",
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js query: uri:?": {
    "msg": "uri:?",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": null,
      "port": null,
      "path": "",
      "query": "",
      "fragment": null
    }
  },
  "uri-js fragment: uri:#": {
    "msg": "uri:#",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": null,
      "port": null,
      "path": "",
      "query": null,
      "fragment": ""
    }
  },
  "uri-js all: uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body": {
    "msg": "uri://user:pass@example.com:123/one/two.three?q1=a1&q2=a2#body",
    "uri": {
      "scheme": "uri",
      "userinfo": "user:pass",
      "host": "example.com",
      "port": 123,
      "path": "/one/two.three",
      "query": "q1=a1&q2=a2",
      "fragment": "body"
    }
  },
  "uri-js IPv4address: uri://10.10.10.10": {
    "msg": "uri://10.10.10.10",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "10.10.10.10",
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js IPv6address: uri://[2001:db8::7]": {
    "msg": "uri://[2001:db8::7]",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "2001:db8::7",
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js mixed IPv6address & IPv4address: uri://[::ffff:129.144.52.38]": {
    "msg": "uri://[::ffff:129.144.52.38]",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "::ffff:129.144.52.38",
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js mixed IPv4address & reg-name: uri://10.10.10.10.example.com/en/process": {
    "msg": "uri://10.10.10.10.example.com/en/process",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "10.10.10.10.example.com",
      "port": null,
      "path": "/en/process",
      "query": null,
      "fragment": null
    }
  },
  "uri-js IPv6address, example from bkw: uri://[2606:2800:220:1:248:1893:25c8:1946]/test": {
    "msg": "uri://[2606:2800:220:1:248:1893:25c8:1946]/test",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "2606:2800:220:1:248:1893:25c8:1946",
      "port": null,
      "path": "/test",
      "query": null,
      "fragment": null
    }
  },
  "uri-js IPv6address, example from RFC 5952: uri://[2001:db8::1]:80": {
    "msg": "uri://[2001:db8::1]:80",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": "2001:db8::1",
      "port": 80,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "uri-js end test: uri:": {
    "msg": "uri:",
    "uri": {
      "scheme": "uri",
      "userinfo": null,
      "host": null,
      "port": null,
      "path": "",
      "query": null,
      "fragment": null
    }
  },
  "IPv4address: uri://[::10.10.10.10]": {
    "msg": "uri://[::10.10.10.10]",
    "uri": {
      "host": "::10.10.10.10"
    }
  },
  "IPv4address leading zeros: uri://[::000.000.010.001]": {
    "msg": "uri://[::000.000.010.001]",
    "uri": {
      "host": "::000.000.010.001"
    }
  },
  "IPv4address max value: uri://[::001.099.200.255]": {
    "msg": "uri://[::001.099.200.255]",
    "uri": {
      "host": "::001.099.200.255"
    }
  },
  "IPv6address no ::  : uri://[ffff:abcd:0:10:200:3000:f8a:1]": {
    "msg": "uri://[ffff:abcd:0:10:200:3000:f8a:1]",
    "uri": {
      "host": "ffff:abcd:0:10:200:3000:f8a:1"
    }
  },
  "IPv6address no :: & IPv4: uri://[ffff:abcd:0:10:200:3000:255.255.255.255]": {
    "msg": "uri://[ffff:abcd:0:10:200:3000:255.255.255.255]",
    "uri": {
      "host": "ffff:abcd:0:10:200:3000:255.255.255.255"
    }
  },
  "IPv6address leading :: no IPv4: uri://[::]": {
    "msg": "uri://[::]",
    "uri": {
      "host": "::"
    }
  },
  "IPv6address leading :: no IPv4: uri://[::ffff]": {
    "msg": "uri://[::ffff]",
    "uri": {
      "host": "::ffff"
    }
  },
  "IPv6address leading :: no IPv4: uri://[::1:2:3:4:5:6:7]": {
    "msg": "uri://[::1:2:3:4:5:6:7]",
    "uri": {
      "host": "::1:2:3:4:5:6:7"
    }
  },
  "IPv6address leading :: with IPv4: uri://[::198.162.10.255]": {
    "msg": "uri://[::198.162.10.255]",
    "uri": {
      "host": "::198.162.10.255"
    }
  },
  "IPv6address leading :: with IPv4: uri://[::ffff:198.162.10.255]": {
    "msg": "uri://[::ffff:198.162.10.255]",
    "uri": {
      "host": "::ffff:198.162.10.255"
    }
  },
  "IPv6address leading :: with IPv4: uri://[::1:2:3:4:5:198.162.10.255]": {
    "msg": "uri://[::1:2:3:4:5:198.162.10.255]",
    "uri": {
      "host": "::1:2:3:4:5:198.162.10.255"
    }
  },
  "IPv6address trailing :: no IPv4: uri://[1::]": {
    "msg": "uri://[1::]",
    "uri": {
      "host": "1::"
    }
  },
  "IPv6address trailing :: no IPv4: uri://[1:2:3:4:5:6:7::]": {
    "msg": "uri://[1:2:3:4:5:6:7::]",
    "uri": {
      "host": "1:2:3:4:5:6:7::"
    }
  },
  "IPv6address trailing :: with IPv4: uri://[1::198.162.10.255]": {
    "msg": "uri://[1::198.162.10.255]",
    "uri": {
      "host": "1::198.162.10.255"
    }
  },
  "IPv6address trailing :: with IPv4: uri://[1:2:3:4:5::198.162.10.255]": {
    "msg": "uri://[1:2:3:4:5::198.162.10.255]",
    "uri": {
      "host": "1:2:3:4:5::198.162.10.255"
    }
  },
  "IPv6address leading & trailing :: no IPv4: uri://[1::2]": {
    "msg": "uri://[1::2]",
    "uri": {
      "host": "1::2"
    }
  },
  "IPv6address leading & trailing :: no IPv4: uri://[1:2:3:4:5:6::7]": {
    "msg": "uri://[1:2:3:4:5:6::7]",
    "uri": {
      "host": "1:2:3:4:5:6::7"
    }
  },
  "IPv6address leading & trailing :: no IPv4: uri://[ffff:aaaa:bbbb::cccc:dddd:eeee:9999]": {
    "msg": "uri://[ffff:aaaa:bbbb::cccc:dddd:eeee:9999]",
    "uri": {
      "host": "ffff:aaaa:bbbb::cccc:dddd:eeee:9999"
    }
  },
  "IPv6address leading & trailing :: with IPv4: uri://[1::2:198.162.10.255]": {
    "msg": "uri://[1::2:198.162.10.255]",
    "uri": {
      "host": "1::2:198.162.10.255"
    }
  },
  "IPv6address leading & trailing :: with IPv4: uri://[1:2:3:4::7:198.162.10.255]": {
    "msg": "uri://[1:2:3:4::7:198.162.10.255]",
    "uri": {
      "host": "1:2:3:4::7:198.162.10.255"
    }
  },
  "IPv6address leading & trailing :: with IPv4: uri://[ffff:aaaa:bbbb::cccc:dddd:198.162.10.255]": {
    "msg": "uri://[ffff:aaaa:bbbb::cccc:dddd:198.162.10.255]",
    "uri": {
      "host": "ffff:aaaa:bbbb::cccc:dddd:198.162.10.255"
    }
  }
}
