OSDN Git Service

am 0fbe1dfb: Merge "cherrypick from master: Change-Id: I169749dc594ca1d79a802db4c53ec...
[android-x86/frameworks-base.git] / core / tests / coretests / src / android / net / LinkPropertiesTest.java
1 /*
2  * Copyright (C) 2010 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package android.net;
18
19 import android.net.LinkProperties;
20 import android.net.RouteInfo;
21 import android.test.suitebuilder.annotation.SmallTest;
22 import junit.framework.TestCase;
23
24 import java.net.InetAddress;
25
26 public class LinkPropertiesTest extends TestCase {
27     private static String ADDRV4 = "75.208.6.1";
28     private static String ADDRV6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
29     private static String DNS1 = "75.208.7.1";
30     private static String DNS2 = "69.78.7.1";
31     private static String GATEWAY1 = "75.208.8.1";
32     private static String GATEWAY2 = "69.78.8.1";
33     private static String NAME = "qmi0";
34
35     @SmallTest
36     public void testEqualsNull() {
37         LinkProperties source = new LinkProperties();
38         LinkProperties target = new LinkProperties();
39
40         assertFalse(source == target);
41         assertTrue(source.equals(target));
42         assertTrue(source.hashCode() == target.hashCode());
43     }
44
45     @SmallTest
46     public void testEqualsSameOrder() {
47         try {
48             LinkProperties source = new LinkProperties();
49             source.setInterfaceName(NAME);
50             // set 2 link addresses
51             source.addLinkAddress(new LinkAddress(
52                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
53             source.addLinkAddress(new LinkAddress(
54                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
55             // set 2 dnses
56             source.addDns(NetworkUtils.numericToInetAddress(DNS1));
57             source.addDns(NetworkUtils.numericToInetAddress(DNS2));
58             // set 2 gateways
59             source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
60             source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
61
62             LinkProperties target = new LinkProperties();
63
64             // All fields are same
65             target.setInterfaceName(NAME);
66             target.addLinkAddress(new LinkAddress(
67                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
68             target.addLinkAddress(new LinkAddress(
69                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
70             target.addDns(NetworkUtils.numericToInetAddress(DNS1));
71             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
72             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
73             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
74
75             assertTrue(source.equals(target));
76             assertTrue(source.hashCode() == target.hashCode());
77
78             target.clear();
79             // change Interface Name
80             target.setInterfaceName("qmi1");
81             target.addLinkAddress(new LinkAddress(
82                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
83             target.addLinkAddress(new LinkAddress(
84                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
85             target.addDns(NetworkUtils.numericToInetAddress(DNS1));
86             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
87             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
88             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
89             assertFalse(source.equals(target));
90
91             target.clear();
92             target.setInterfaceName(NAME);
93             // change link addresses
94             target.addLinkAddress(new LinkAddress(
95                     NetworkUtils.numericToInetAddress("75.208.6.2"), 32));
96             target.addLinkAddress(new LinkAddress(
97                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
98             target.addDns(NetworkUtils.numericToInetAddress(DNS1));
99             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
100             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
101             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
102             assertFalse(source.equals(target));
103
104             target.clear();
105             target.setInterfaceName(NAME);
106             target.addLinkAddress(new LinkAddress(
107                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
108             target.addLinkAddress(new LinkAddress(
109                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
110             // change dnses
111             target.addDns(NetworkUtils.numericToInetAddress("75.208.7.2"));
112             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
113             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
114             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
115             assertFalse(source.equals(target));
116
117             target.clear();
118             target.setInterfaceName(NAME);
119             target.addLinkAddress(new LinkAddress(
120                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
121             target.addLinkAddress(new LinkAddress(
122                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
123             target.addDns(NetworkUtils.numericToInetAddress(DNS1));
124             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
125             // change gateway
126             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress("75.208.8.2")));
127             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
128             assertFalse(source.equals(target));
129
130         } catch (Exception e) {
131             throw new RuntimeException(e.toString());
132             //fail();
133         }
134     }
135
136     @SmallTest
137     public void testEqualsDifferentOrder() {
138         try {
139             LinkProperties source = new LinkProperties();
140             source.setInterfaceName(NAME);
141             // set 2 link addresses
142             source.addLinkAddress(new LinkAddress(
143                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
144             source.addLinkAddress(new LinkAddress(
145                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
146             // set 2 dnses
147             source.addDns(NetworkUtils.numericToInetAddress(DNS1));
148             source.addDns(NetworkUtils.numericToInetAddress(DNS2));
149             // set 2 gateways
150             source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
151             source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
152
153             LinkProperties target = new LinkProperties();
154             // Exchange order
155             target.setInterfaceName(NAME);
156             target.addLinkAddress(new LinkAddress(
157                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
158             target.addLinkAddress(new LinkAddress(
159                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
160             target.addDns(NetworkUtils.numericToInetAddress(DNS2));
161             target.addDns(NetworkUtils.numericToInetAddress(DNS1));
162             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
163             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
164
165             assertTrue(source.equals(target));
166             assertTrue(source.hashCode() == target.hashCode());
167         } catch (Exception e) {
168             fail();
169         }
170     }
171
172     @SmallTest
173     public void testEqualsDuplicated() {
174         try {
175             LinkProperties source = new LinkProperties();
176             // set 3 link addresses, eg, [A, A, B]
177             source.addLinkAddress(new LinkAddress(
178                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
179             source.addLinkAddress(new LinkAddress(
180                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
181             source.addLinkAddress(new LinkAddress(
182                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
183
184             LinkProperties target = new LinkProperties();
185             // set 3 link addresses, eg, [A, B, B]
186             target.addLinkAddress(new LinkAddress(
187                     NetworkUtils.numericToInetAddress(ADDRV4), 32));
188             target.addLinkAddress(new LinkAddress(
189                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
190             target.addLinkAddress(new LinkAddress(
191                     NetworkUtils.numericToInetAddress(ADDRV6), 128));
192
193             assertTrue(source.equals(target));
194             assertTrue(source.hashCode() == target.hashCode());
195         } catch (Exception e) {
196             fail();
197         }
198     }
199
200 }