@@ -133,21 +133,29 @@ defmodule URITest do
133133 end
134134
135135 test :ipv6_addresses do
136- simple_uri = URI . parse ( "http://[2607:f3f0:2:0:216:3cff:fef0:174a]/" )
137- assert simple_uri . host == "2607:f3f0:2:0:216:3cff:fef0:174a"
138-
139- userinfo_uri = URI . parse ( "http://user:pass@[2607:f3f0:2:0:216:3cff:fef0:174a]/" )
140- assert userinfo_uri . host == "2607:f3f0:2:0:216:3cff:fef0:174a"
141- assert userinfo_uri . userinfo == "user:pass"
142-
143- port_uri = URI . parse ( "http://[2607:f3f0:2:0:216:3cff:fef0:174a]:2222/" )
144- assert port_uri . host == "2607:f3f0:2:0:216:3cff:fef0:174a"
145- assert port_uri . port == 2222
146-
147- userinfo_port_uri = URI . parse ( "http://user:pass@[2607:f3f0:2:0:216:3cff:fef0:174a]:2222/" )
148- assert userinfo_port_uri . host == "2607:f3f0:2:0:216:3cff:fef0:174a"
149- assert userinfo_port_uri . userinfo == "user:pass"
150- assert userinfo_port_uri . port == 2222
136+ addrs = [
137+ "::1" ,
138+ "2607:f3f0:2:0:216:3cff:fef0:174a" ,
139+ "2051:0db8:2d5a:3521:8313:ffad:1242:8e2e"
140+ ]
141+
142+ Enum . each addrs , fn ( addr ) ->
143+ simple_uri = URI . parse ( "http://[#{ addr } ]/" )
144+ assert simple_uri . host == addr
145+
146+ userinfo_uri = URI . parse ( "http://user:pass@[#{ addr } ]/" )
147+ assert userinfo_uri . host == addr
148+ assert userinfo_uri . userinfo == "user:pass"
149+
150+ port_uri = URI . parse ( "http://[#{ addr } ]:2222/" )
151+ assert port_uri . host == addr
152+ assert port_uri . port == 2222
153+
154+ userinfo_port_uri = URI . parse ( "http://user:pass@[#{ addr } ]:2222/" )
155+ assert userinfo_port_uri . host == addr
156+ assert userinfo_port_uri . userinfo == "user:pass"
157+ assert userinfo_port_uri . port == 2222
158+ end
151159 end
152160
153161 test :downcase_scheme do
0 commit comments