1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.net;
29
30 import org.junit.jupiter.api.Assertions;
31 import org.junit.jupiter.api.Test;
32
33
34
35
36 public class TestInetAddressUtils {
37
38 @Test
39 public void testValidIPv4Address() {
40 Assertions.assertTrue(InetAddressUtils.isIPv4Address("127.0.0.1"));
41 Assertions.assertTrue(InetAddressUtils.isIPv4Address("192.168.0.0"));
42 Assertions.assertTrue(InetAddressUtils.isIPv4Address("255.255.255.255"));
43 }
44
45 @Test
46 public void testInvalidIPv4Address() {
47 Assertions.assertFalse(InetAddressUtils.isIPv4Address(" 127.0.0.1 "));
48 Assertions.assertFalse(InetAddressUtils.isIPv4Address("g.ar.ba.ge"));
49 Assertions.assertFalse(InetAddressUtils.isIPv4Address("192.168.0"));
50 Assertions.assertFalse(InetAddressUtils.isIPv4Address("256.255.255.255"));
51 Assertions.assertFalse(InetAddressUtils.isIPv4Address("0.168.0.0"));
52 }
53
54 @Test
55 public void testValidIPv6Address() {
56 Assertions.assertTrue(InetAddressUtils.isIPv6StdAddress("2001:0db8:0000:0000:0000:0000:1428:57ab"));
57 Assertions.assertTrue(InetAddressUtils.isIPv6StdAddress("2001:db8:0:0:0:0:1428:57ab"));
58 Assertions.assertTrue(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:0"));
59 Assertions.assertTrue(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:1"));
60
61 Assertions.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:0db8:0:0::1428:57ab"));
62 Assertions.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:0db8::1428:57ab"));
63 Assertions.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:db8::1428:57ab"));
64 Assertions.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("::1"));
65 Assertions.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("::"));
66
67 Assertions.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8:0000:0000:0000:0000:1428:57ab"));
68 Assertions.assertTrue(InetAddressUtils.isIPv6Address("2001:db8:0:0:0:0:1428:57ab"));
69 Assertions.assertTrue(InetAddressUtils.isIPv6Address("0:0:0:0:0:0:0:0"));
70 Assertions.assertTrue(InetAddressUtils.isIPv6Address("0:0:0:0:0:0:0:1"));
71 Assertions.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab"));
72 Assertions.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8::1428:57ab"));
73 Assertions.assertTrue(InetAddressUtils.isIPv6Address("2001:db8::1428:57ab"));
74 Assertions.assertTrue(InetAddressUtils.isIPv6Address("::1"));
75 Assertions.assertTrue(InetAddressUtils.isIPv6Address("::"));
76
77
78 Assertions.assertTrue(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a"));
79 Assertions.assertTrue(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%eth2"));
80 Assertions.assertTrue(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%3"));
81 }
82
83 @Test
84 public void testInvalidIPv6Address() {
85 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0000:garb:age0:0000:1428:57ab"));
86 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0gb8:0000:0000:0000:0000:1428:57ab"));
87 Assertions.assertFalse(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:0:0"));
88 Assertions.assertFalse(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0"));
89 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress(":1"));
90 Assertions.assertFalse(InetAddressUtils.isIPv6Address(":1"));
91 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8::0000::57ab"));
92 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2:3:4:5:6:7::9"));
93 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1::3:4:5:6:7:8:9"));
94 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("::3:4:5:6:7:8:9"));
95 Assertions.assertFalse(InetAddressUtils.isIPv6Address(""));
96
97
98 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%eth2#"));
99 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%3@"));
100 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a#eth2"));
101 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%"));
102 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%eth2!"));
103 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab%"));
104 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab%eth2#"));
105 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%eth2#3"));
106 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab%eth2#3"));
107 Assertions.assertFalse(InetAddressUtils.isIPv6Address("fe80::1ff:fe23:4567:890a%3#eth2"));
108 Assertions.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab%3#eth2"));
109 }
110
111 @Test
112 public void testValidIPv6BracketAddress() {
113 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0000:0000:0000:0000:1428:57ab]"));
114 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:db8:0:0:0:0:1428:57ab]"));
115 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:0]"));
116 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:1]"));
117 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0:0::1428:57ab]"));
118 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8::1428:57ab]"));
119 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:db8::1428:57ab]"));
120 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[::1]"));
121
122 Assertions.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[::]"));
123 }
124
125 @Test
126 public void testInvalidIPv6BracketAddress() {
127 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0db8:0000:garb:age0:0000:1428:57ab"));
128 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0000:garb:age0:0000:1428:57ab]"));
129 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0gb8:0000:0000:0000:0000:1428:57ab"));
130 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0gb8:0000:0000:0000:0000:1428:57ab]"));
131
132 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("0:0:0:0:0:0:0:0:0"));
133 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:0:0]"));
134
135 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("0:0:0:0:0:0:0"));
136 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0]"));
137 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress(":1"));
138 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[:1]"));
139
140 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0db8::0000::57ab"));
141 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8::0000::57ab]"));
142
143 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("1:2:3:4:5:6:7::9"));
144 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[1:2:3:4:5:6:7::9]"));
145
146 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("1::3:4:5:6:7:8:9"));
147 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[1::3:4:5:6:7:8:9]"));
148
149 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::3:4:5:6:7:8:9"));
150 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[::3:4:5:6:7:8:9]"));
151
152 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress(""));
153 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[]"));
154
155
156 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::"));
157 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::1"));
158 Assertions.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:db8::1428:57ab"));
159 }
160
161 @Test
162
163 public void testInvalidIPv6AddressIncorrectGroupCount() {
164 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2::4:5:6:7:8:9"));
165 Assertions.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2:3:4:5:6::8:9"));
166 }
167
168 @Test
169 public void testHasValidIPv6ColonCount() {
170 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(""));
171 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(":"));
172 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("127.0.0.1"));
173 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(":0"));
174 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("0:"));
175 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("1:2:3:4:5:6:7:8:"));
176 Assertions.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("1:2:3:4:5:6:7:8:9"));
177
178 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8:0000:0000:0000:0000:1428:57ab"));
179 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:db8:0:0:0:0:1428:57ab"));
180 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("0:0:0:0:0:0:0:0"));
181 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("0:0:0:0:0:0:0:1"));
182 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8:0:0::1428:57ab"));
183 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8::1428:57ab"));
184 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:db8::1428:57ab"));
185 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("::1"));
186 Assertions.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("::"));
187 }
188
189 @Test
190 public void testValidIPv4MappedIPv6Address() {
191 Assertions.assertTrue(InetAddressUtils.isIPv4MappedIPv64Address("::FFFF:1.2.3.4"));
192 Assertions.assertTrue(InetAddressUtils.isIPv4MappedIPv64Address("::ffff:255.255.255.255"));
193 }
194
195 @Test
196 public void testInValidIPv4MappedIPv6Address() {
197 Assertions.assertFalse(InetAddressUtils.isIPv4MappedIPv64Address("2001:0db8:0000:0000:0000:0000:1428:57ab"));
198 Assertions.assertFalse(InetAddressUtils.isIPv4MappedIPv64Address("::ffff:1:2:3:4"));
199 }
200
201 }