Files
EhViewer/app/src/test/java/com/hippo/ehviewer/HostsTest.java
T
2018-03-23 12:10:03 +08:00

128 lines
3.9 KiB
Java

/*
* Copyright 2018 Hippo Seven
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hippo.ehviewer;
/*
* Created by Hippo on 2018/3/22.
*/
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import android.util.Pair;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class HostsTest {
@Test
public void testIsValidHost() {
assertTrue(Hosts.isValidHost("ni.hao"));
assertFalse(Hosts.isValidHost("ni.ha~o"));
assertFalse(Hosts.isValidHost(".ni.hao"));
assertFalse(Hosts.isValidHost("ni.hao."));
assertFalse(Hosts.isValidHost("ni..hao."));
assertFalse(Hosts.isValidHost("."));
assertFalse(Hosts.isValidHost(""));
assertFalse(Hosts.isValidHost(null));
}
@Test
public void testIsValidIp() {
assertTrue(Hosts.isValidIp("127.0.0.1"));
assertTrue(Hosts.isValidIp("0.0.0.0"));
assertFalse(Hosts.isValidIp("324.0.0.1"));
assertFalse(Hosts.isValidIp("127.0.0."));
assertFalse(Hosts.isValidIp("127.0.0"));
assertFalse(Hosts.isValidIp("-1.0.0"));
assertFalse(Hosts.isValidIp(""));
assertFalse(Hosts.isValidIp(null));
}
@Test
public void testGet() {
Hosts hosts = new Hosts(RuntimeEnvironment.application, "hosts.db");
assertEquals(null, hosts.get("ni.hao"));
hosts.put("ni.hao", "127.0.0.1");
assertEquals("ni.hao/127.0.0.1", hosts.get("ni.hao").toString());
assertEquals(null, hosts.get(null));
}
@Test
public void testPut() {
Hosts hosts = new Hosts(RuntimeEnvironment.application, "hosts.db");
assertEquals(null, hosts.get("ni.hao"));
assertEquals(true, hosts.put("ni.hao", "127.0.0.1"));
assertEquals("ni.hao/127.0.0.1", hosts.get("ni.hao").toString());
assertEquals(true, hosts.put("ni.hao", "127.0.0.2"));
assertEquals("ni.hao/127.0.0.2", hosts.get("ni.hao").toString());
assertEquals(false, hosts.put(".wo.hao", "127.0.0.1"));
assertEquals(null, hosts.get(".wo.hao"));
assertEquals(false, hosts.put("wo.hao", ".127.0.0.1"));
assertEquals(null, hosts.get("wo.hao"));
assertEquals(false, hosts.put(null, "127.0.0.1"));
assertEquals(false, hosts.put("wo.hao", null));
assertEquals(false, hosts.put(null, null));
assertEquals(null, hosts.get("wo.hao"));
}
@Test
public void testDelete() {
Hosts hosts = new Hosts(RuntimeEnvironment.application, "hosts.db");
hosts.put("ni.hao", "127.0.0.1");
assertEquals("ni.hao/127.0.0.1", hosts.get("ni.hao").toString());
hosts.put("ni.hao", "127.0.0.2");
hosts.delete("ni.hao");
assertEquals(null, hosts.get("ni.hao"));
hosts.delete(null);
}
@Test
public void testGetAll() {
Hosts hosts = new Hosts(RuntimeEnvironment.application, "hosts.db");
List<Pair<String, String>> all = hosts.getAll();
assertEquals(0, all.size());
hosts.put("ni.hao", "127.0.0.1");
hosts.put("wo.hao", "127.0.0.2");
all = hosts.getAll();
assertEquals(2, all.size());
assertEquals("ni.hao", all.get(0).first);
assertEquals("127.0.0.1", all.get(0).second);
assertEquals("wo.hao", all.get(1).first);
assertEquals("127.0.0.2", all.get(1).second);
}
}