package com.qiniu.android.dns;
import android.test.AndroidTestCase;
import com.qiniu.android.dns.local.AndroidDnsServer;
import com.qiniu.android.dns.local.Resolver;
import junit.framework.Assert;
import java.io.IOException;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
/**
* Created by bailong on 15/6/17.
*/
public class LocalResolverTest extends AndroidTestCase {
private void template(String ip) throws UnknownHostException {
Resolver resolver = new Resolver(InetAddress.getByName(ip));
template(resolver);
}
private void template(IResolver resolver) {
try {
Record[] records = resolver.resolve(new Domain("baidu.com"), null);
Assert.assertNotNull(records);
Assert.assertTrue(records.length > 0);
records = resolver.resolve(new Domain("www.qiniu.com"), null);
Assert.assertNotNull(records);
Assert.assertTrue(records.length >= 3);
for (Record r : records) {
Assert.assertTrue(r.value, r.ttl >= 600);
Assert.assertTrue(r.value, r.isA() || r.isCname());
Assert.assertFalse(r.value, r.isExpired());
}
} catch (IOException e) {
Assert.fail(e.getMessage());
}
}
public void testLocal() {
template(AndroidDnsServer.defaultResolver());
}
// http://www.alidns.com/
// public void testAli() throws UnknownHostException {
// template("223.5.5.5");
// }
// https://www.114dns.com/
public void test114() throws UnknownHostException {
template("114.114.115.115");
}
// http://dudns.baidu.com/
// public void testBaidu() throws UnknownHostException {
// template("180.76.76.76");
// }
// http://www.sdns.cn/ cnnic
// public void testCnnic() throws UnknownHostException {
// template("1.2.4.8");
// }
public void testGoogle() throws UnknownHostException {
template("8.8.4.4");
}
public void testDnspod() throws UnknownHostException {
template("119.29.29.29");
}
// http://www.dnspai.com/ 360dns
// public void testDnspai() throws UnknownHostException {
// template("101.226.4.6");
// }
public void testTimeout() throws UnknownHostException {
Resolver resolver = new Resolver(InetAddress.getByName("8.1.1.1"), 5);
try {
Record[] records = resolver.resolve(new Domain("baidu.com"), null);
Assert.fail("no timeout");
} catch (IOException e) {
Assert.assertTrue(e instanceof SocketTimeoutException);
}
}
}