@@ -133,21 +133,29 @@ defmodule URITest do
133
133
end
134
134
135
135
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
151
159
end
152
160
153
161
test :downcase_scheme do
0 commit comments