package com.limegroup.gnutella.filters;
import junit.framework.Test;
import org.limewire.io.IP;
import org.limewire.io.SimpleNetworkInstanceUtils;
public class IPListTest extends com.limegroup.gnutella.util.LimeTestCase {
public IPListTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(IPListTest.class);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public void testIsValid() throws Exception {
IPList list = new IPList();
//try a private address
list.add("192.168.1.1");
assertFalse(list.isValidFilter(false, new SimpleNetworkInstanceUtils()));
assertTrue(list.isValidFilter(true, null));
//try filling up the space
list = new IPList();
list.add("*.*.*.*");
assertFalse(list.isValidFilter(false, new SimpleNetworkInstanceUtils()));
//try below max space - 2.5% of 4GB = 6 class A networks
list = new IPList();
list.add("1.*.*.*");
list.add("2.*.*.*");
list.add("3.*.*.*");
list.add("4.*.*.*");
list.add("5.*.*.*");
list.add("6.*.*.*");
assertTrue(list.isValidFilter(false, new SimpleNetworkInstanceUtils()));
list.add("7.*.*.*");
assertFalse(list.isValidFilter(false, new SimpleNetworkInstanceUtils()));
}
public void testIPListLegacy() {
IPList iplist = new IPList();
iplist.add ("192.168.0.1/255.255.255.0");
iplist.add ("10.0.*.*");
assertTrue(!iplist.contains (new IP("192.168.1.2/255.255.255.0")));
assertTrue(iplist.contains (new IP("192.168.0.2")));
assertTrue(iplist.contains (new IP(bytes(192,168,0,2))));
assertTrue(iplist.contains (new IP("192.168.0.1")));
assertTrue(iplist.contains (new IP(bytes(192,168,0,1))));
assertTrue(!iplist.contains (new IP("192.168.1.1")));
assertTrue(!iplist.contains (new IP(bytes(192,168,1,1))));
assertTrue(iplist.contains (new IP("10.0.1.1")));
assertTrue(iplist.contains (new IP(bytes(10,0,1,1))));
assertTrue(!iplist.contains (new IP("10.1.0.1")));
assertTrue(!iplist.contains (new IP(bytes(10,1,0,1))));
}
public void testContains() {
IPList list = new IPList();
list.add("192.168.1.1");
assertTrue(list.contains(new IP("192.168.1.1")));
assertFalse(list.contains(new IP("192.168.1.2")));
assertEquals(1, list.size());
list.add("192.168.2.0/255.255.255.0");
assertTrue(list.contains(new IP("192.168.1.1")));
assertTrue(list.contains(new IP("192.168.2.2")));
assertFalse(list.contains(new IP("192.168.1.2")));
assertEquals(2, list.size());
list.add("192.168.2.1");
assertEquals(2, list.size());
list.add("192.168.2.3");
assertEquals(2, list.size());
list.add("192.168.1.255");
assertEquals(3, list.size());
list.add("192.168.1.254");
assertEquals(4, list.size());
assertTrue(list.contains(new IP("192.168.1.1")));
assertTrue(list.contains(new IP("192.168.2.2")));
assertFalse(list.contains(new IP("192.168.1.2")));
list.add("100.0.0.0/255.0.0.0");
assertEquals(5, list.size());
list.add("100.1.2.3");
assertEquals(5, list.size());
list.add("100.5.4.3");
assertEquals(5, list.size());
assertTrue(list.contains(new IP("100.5.3.2")));
assertTrue(list.contains(new IP("100.2.3.4")));
assertFalse(list.contains(new IP("99.2.1.3")));
list.add("98.1.2.3");
assertEquals(6, list.size());
list.add("98.5.4.3");
assertEquals(7, list.size());
list.add("98.0.0.0/255.0.0.0");
assertEquals(6, list.size());
assertTrue(list.contains(new IP("98.5.3.2")));
assertTrue(list.contains(new IP("98.2.3.4")));
assertFalse(list.contains(new IP("99.2.1.3")));
list.add("69.41.173.34");
assertEquals(7, list.size());
list.add("69.*.*.*");
assertEquals(7, list.size());
list.add("*.*.*.*");
assertEquals(1, list.size());
assertTrue(list.contains(new IP("98.5.3.2")));
assertTrue(list.contains(new IP("98.2.3.4")));
assertTrue(list.contains(new IP("99.2.1.3")));
assertTrue(list.contains(new IP("100.5.3.2")));
assertTrue(list.contains(new IP("100.2.3.4")));
assertTrue(list.contains(new IP("99.2.1.3")));
assertTrue(list.contains(new IP("192.168.1.1")));
assertTrue(list.contains(new IP("192.168.2.2")));
assertTrue(list.contains(new IP("192.168.1.2")));
}
private byte[] bytes(int one, int two, int three, int four) {
return new byte[] { (byte)one, (byte)two, (byte)three, (byte)four };
}
}