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.Assert;
31 import org.junit.Test;
32
33
34
35
36 public class TestInetAddressUtils {
37
38 @Test
39 public void testValidIPv4Address() {
40 Assert.assertTrue(InetAddressUtils.isIPv4Address("127.0.0.1"));
41 Assert.assertTrue(InetAddressUtils.isIPv4Address("192.168.0.0"));
42 Assert.assertTrue(InetAddressUtils.isIPv4Address("255.255.255.255"));
43 }
44
45 @Test
46 public void testInvalidIPv4Address() {
47 Assert.assertFalse(InetAddressUtils.isIPv4Address(" 127.0.0.1 "));
48 Assert.assertFalse(InetAddressUtils.isIPv4Address("g.ar.ba.ge"));
49 Assert.assertFalse(InetAddressUtils.isIPv4Address("192.168.0"));
50 Assert.assertFalse(InetAddressUtils.isIPv4Address("256.255.255.255"));
51 Assert.assertFalse(InetAddressUtils.isIPv4Address("0.168.0.0"));
52 }
53
54 @Test
55 public void testValidIPv6Address() {
56 Assert.assertTrue(InetAddressUtils.isIPv6StdAddress("2001:0db8:0000:0000:0000:0000:1428:57ab"));
57 Assert.assertTrue(InetAddressUtils.isIPv6StdAddress("2001:db8:0:0:0:0:1428:57ab"));
58 Assert.assertTrue(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:0"));
59 Assert.assertTrue(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:1"));
60
61 Assert.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:0db8:0:0::1428:57ab"));
62 Assert.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:0db8::1428:57ab"));
63 Assert.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("2001:db8::1428:57ab"));
64 Assert.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("::1"));
65 Assert.assertTrue(InetAddressUtils.isIPv6HexCompressedAddress("::"));
66
67 Assert.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8:0000:0000:0000:0000:1428:57ab"));
68 Assert.assertTrue(InetAddressUtils.isIPv6Address("2001:db8:0:0:0:0:1428:57ab"));
69 Assert.assertTrue(InetAddressUtils.isIPv6Address("0:0:0:0:0:0:0:0"));
70 Assert.assertTrue(InetAddressUtils.isIPv6Address("0:0:0:0:0:0:0:1"));
71 Assert.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8:0:0::1428:57ab"));
72 Assert.assertTrue(InetAddressUtils.isIPv6Address("2001:0db8::1428:57ab"));
73 Assert.assertTrue(InetAddressUtils.isIPv6Address("2001:db8::1428:57ab"));
74 Assert.assertTrue(InetAddressUtils.isIPv6Address("::1"));
75 Assert.assertTrue(InetAddressUtils.isIPv6Address("::"));
76 }
77
78 @Test
79 public void testInvalidIPv6Address() {
80 Assert.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8:0000:garb:age0:0000:1428:57ab"));
81 Assert.assertFalse(InetAddressUtils.isIPv6Address("2001:0gb8:0000:0000:0000:0000:1428:57ab"));
82 Assert.assertFalse(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0:0:0"));
83 Assert.assertFalse(InetAddressUtils.isIPv6StdAddress("0:0:0:0:0:0:0"));
84 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress(":1"));
85 Assert.assertFalse(InetAddressUtils.isIPv6Address(":1"));
86 Assert.assertFalse(InetAddressUtils.isIPv6Address("2001:0db8::0000::57ab"));
87 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2:3:4:5:6:7::9"));
88 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1::3:4:5:6:7:8:9"));
89 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("::3:4:5:6:7:8:9"));
90 Assert.assertFalse(InetAddressUtils.isIPv6Address(""));
91 }
92
93 @Test
94 public void testValidIPv6BracketAddress() {
95 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0000:0000:0000:0000:1428:57ab]"));
96 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:db8:0:0:0:0:1428:57ab]"));
97 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:0]"));
98 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:1]"));
99 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0:0::1428:57ab]"));
100 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8::1428:57ab]"));
101 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[2001:db8::1428:57ab]"));
102 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[::1]"));
103
104 Assert.assertTrue(InetAddressUtils.isIPv6URLBracketedAddress("[::]"));
105 }
106
107 @Test
108 public void testInvalidIPv6BracketAddress() {
109 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0db8:0000:garb:age0:0000:1428:57ab"));
110 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8:0000:garb:age0:0000:1428:57ab]"));
111 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0gb8:0000:0000:0000:0000:1428:57ab"));
112 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0gb8:0000:0000:0000:0000:1428:57ab]"));
113
114 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("0:0:0:0:0:0:0:0:0"));
115 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0:0:0]"));
116
117 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("0:0:0:0:0:0:0"));
118 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[0:0:0:0:0:0:0]"));
119 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress(":1"));
120 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[:1]"));
121
122 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:0db8::0000::57ab"));
123 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[2001:0db8::0000::57ab]"));
124
125 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("1:2:3:4:5:6:7::9"));
126 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[1:2:3:4:5:6:7::9]"));
127
128 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("1::3:4:5:6:7:8:9"));
129 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[1::3:4:5:6:7:8:9]"));
130
131 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::3:4:5:6:7:8:9"));
132 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[::3:4:5:6:7:8:9]"));
133
134 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress(""));
135 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("[]"));
136
137
138 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::"));
139 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("::1"));
140 Assert.assertFalse(InetAddressUtils.isIPv6URLBracketedAddress("2001:db8::1428:57ab"));
141 }
142
143 @Test
144
145 public void testInvalidIPv6AddressIncorrectGroupCount() {
146 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2::4:5:6:7:8:9"));
147 Assert.assertFalse(InetAddressUtils.isIPv6HexCompressedAddress("1:2:3:4:5:6::8:9"));
148 }
149
150 @Test
151 public void testHasValidIPv6ColonCount() {
152 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(""));
153 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(":"));
154 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("127.0.0.1"));
155 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount(":0"));
156 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("0:"));
157 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("1:2:3:4:5:6:7:8:"));
158 Assert.assertFalse(InetAddressUtils.hasValidIPv6ColonCount("1:2:3:4:5:6:7:8:9"));
159
160 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8:0000:0000:0000:0000:1428:57ab"));
161 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:db8:0:0:0:0:1428:57ab"));
162 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("0:0:0:0:0:0:0:0"));
163 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("0:0:0:0:0:0:0:1"));
164 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8:0:0::1428:57ab"));
165 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:0db8::1428:57ab"));
166 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("2001:db8::1428:57ab"));
167 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("::1"));
168 Assert.assertTrue(InetAddressUtils.hasValidIPv6ColonCount("::"));
169 }
170
171 @Test
172 public void testValidIPv4MappedIPv6Address() {
173 Assert.assertTrue(InetAddressUtils.isIPv4MappedIPv64Address("::FFFF:1.2.3.4"));
174 Assert.assertTrue(InetAddressUtils.isIPv4MappedIPv64Address("::ffff:255.255.255.255"));
175 }
176
177 @Test
178 public void testInValidIPv4MappedIPv6Address() {
179 Assert.assertFalse(InetAddressUtils.isIPv4MappedIPv64Address("2001:0db8:0000:0000:0000:0000:1428:57ab"));
180 Assert.assertFalse(InetAddressUtils.isIPv4MappedIPv64Address("::ffff:1:2:3:4"));
181 }
182
183 }