Add recaptcha

This commit is contained in:
seven332 committed 2017-09-06 16:49:48 +08:00
1 parent 550d3735c7
commit 2c3fa31e91
29 files changed
+1591 -519

No files matched your search

@@ -0,0 +1,51 @@
/*
* Copyright 2017 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.database;
/*
* Created by Hippo on 2017/9/4.
*/
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class MSQLiteBuilderTest {
@Test
public void testGetStatements() {
MSQLiteBuilder builder = new MSQLiteBuilder()
.version(1)
.statement("11")
.statement("12")
.version(3)
.statement("31")
.statement("32");
List<String> list = new ArrayList<>();
list.add("31");
list.add("32");
assertEquals(list, builder.getStatements(1, 3));
}
}
@@ -0,0 +1,336 @@
/*
* Copyright 2017 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.network;
/*
* Created by Hippo on 2017/9/4.
*/
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import android.content.Context;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import okhttp3.Cookie;
import okhttp3.HttpUrl;
import org.joor.Reflect;
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 CookieRepositoryTest {
private void equals(CookieSet cookieSet, List<Cookie> cookies) {
assertNotNull(cookieSet);
assertNotNull(cookies);
Map<CookieSet.Key, Cookie> map = Reflect.on(cookieSet).field("map").get();
assertEquals(cookies.size(), map.size());
for (Cookie cookie: cookies) {
assertEquals(cookie, map.get(new CookieSet.Key(cookie)));
}
}
private void equals(List<Cookie> cookies1, List<Cookie> cookies2) {
assertNotNull(cookies1);
assertNotNull(cookies2);
assertEquals(cookies1.size(), cookies2.size());
for (Cookie cookie: cookies1) {
assertTrue(cookies2.contains(cookie));
}
}
@Test
public void testPersistent() {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh = HttpUrl.parse("http://www.ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder()
.name("user")
.value("1234567890")
.domain("ehviewer.com")
.path("/")
.build();
Cookie cookieEh2 = new Cookie.Builder()
.name("level")
.value("999")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
Cookie cookieEh3 = new Cookie.Builder()
.name("speed")
.value("10")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
HttpUrl urlNMB = HttpUrl.parse("http://h.nimingban.com/");
Cookie cookieNMB = new Cookie.Builder()
.name("hash")
.value("0987654321")
.domain("nimingban.com")
.expiresAt(System.currentTimeMillis() + 100000)
.path("/")
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh, Arrays.asList(cookieEh1, cookieEh2, cookieEh3));
repository.saveFromResponse(urlNMB, Collections.singletonList(cookieNMB));
Map<String, CookieSet> map = Reflect.on(repository).field("map").get();
assertEquals(3, map.size());
equals(map.get("ehviewer.com"), Collections.singletonList(cookieEh1));
equals(map.get("www.ehviewer.com"), Arrays.asList(cookieEh2, cookieEh3));
equals(map.get("nimingban.com"), Collections.singletonList(cookieNMB));
repository.close();
repository = new CookieRepository(app, "cookie.db");
map = Reflect.on(repository).field("map").get();
assertEquals(2, map.size());
equals(map.get("www.ehviewer.com"), Arrays.asList(cookieEh2, cookieEh3));
equals(map.get("nimingban.com"), Collections.singletonList(cookieNMB));
repository.close();
}
@Test
public void testUpdate() {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh = HttpUrl.parse("http://www.ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder()
.name("level")
.value("999")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
Cookie cookieEh2 = new Cookie.Builder()
.name("level")
.value("0")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh1));
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh2));
Map<String, CookieSet> map = Reflect.on(repository).field("map").get();
assertEquals(1, map.size());
equals(map.get("www.ehviewer.com"), Collections.singletonList(cookieEh2));
repository.close();
repository = new CookieRepository(app, "cookie.db");
map = Reflect.on(repository).field("map").get();
assertEquals(1, map.size());
equals(map.get("www.ehviewer.com"), Collections.singletonList(cookieEh2));
repository.close();
}
@Test
public void testRemoveByExpired() {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh = HttpUrl.parse("http://www.ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder()
.name("level")
.value("999")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
Cookie cookieEh2 = new Cookie.Builder()
.name("level")
.value("0")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() - 100000)
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh1));
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh2));
Map<String, CookieSet> map = Reflect.on(repository).field("map").get();
assertEquals(1, map.size());
equals(map.get("www.ehviewer.com"), Collections.<Cookie>emptyList());
repository.close();
repository = new CookieRepository(app, "cookie.db");
map = Reflect.on(repository).field("map").get();
assertEquals(0, map.size());
repository.close();
}
@Test
public void testRemoveByNonPersistent() {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh = HttpUrl.parse("http://www.ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder()
.name("level")
.value("999")
.domain("www.ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 100000)
.build();
Cookie cookieEh2 = new Cookie.Builder()
.name("level")
.value("0")
.domain("www.ehviewer.com")
.path("/")
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh1));
repository.saveFromResponse(urlEh, Collections.singletonList(cookieEh2));
Map<String, CookieSet> map = Reflect.on(repository).field("map").get();
assertEquals(1, map.size());
equals(map.get("www.ehviewer.com"), Collections.singletonList(cookieEh2));
repository.close();
repository = new CookieRepository(app, "cookie.db");
map = Reflect.on(repository).field("map").get();
assertEquals(0, map.size());
repository.close();
}
@Test
public void testGet() throws InterruptedException {
Context app = RuntimeEnvironment.application;
HttpUrl urlEh1 = HttpUrl.parse("http://www.ehviewer.com/");
HttpUrl urlEh2 = HttpUrl.parse("http://ehviewer.com/");
Cookie cookieEh1 = new Cookie.Builder()
.name("user")
.value("1234567890")
.domain("ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 3000)
.build();
Cookie cookieEh2 = new Cookie.Builder()
.name("level")
.value("999")
.domain("www.ehviewer.com")
.path("/")
.build();
Cookie cookieEh3 = new Cookie.Builder()
.name("speed")
.value("10")
.domain("ehviewer.com")
.path("/")
.build();
HttpUrl urlNMB = HttpUrl.parse("http://h.nimingban.com/");
Cookie cookieNMB = new Cookie.Builder()
.name("hash")
.value("0987654321")
.domain("nimingban.com")
.path("/")
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(urlEh1, Arrays.asList(cookieEh1, cookieEh2));
repository.saveFromResponse(urlEh1, Collections.singletonList(cookieEh3));
repository.saveFromResponse(urlNMB, Collections.singletonList(cookieNMB));
equals(Arrays.asList(cookieEh1, cookieEh3), repository.loadForRequest(urlEh2, null));
Thread.sleep(3000);
equals(Collections.singletonList(cookieEh3), repository.loadForRequest(urlEh2, null));
repository.close();
}
@Test
public void testClear() {
Context app = RuntimeEnvironment.application;
HttpUrl url = HttpUrl.parse("http://www.ehviewer.com/");
Cookie cookie = new Cookie.Builder()
.name("user")
.value("1234567890")
.domain("ehviewer.com")
.path("/")
.expiresAt(System.currentTimeMillis() + 3000)
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(url, Collections.singletonList(cookie));
Map<String, CookieSet> map = Reflect.on(repository).field("map").get();
assertEquals(1, map.size());
equals(map.get("ehviewer.com"), Collections.singletonList(cookie));
repository.clear();
map = Reflect.on(repository).field("map").get();
assertEquals(0, map.size());
repository.close();
repository = new CookieRepository(app, "cookie.db");
map = Reflect.on(repository).field("map").get();
assertEquals(0, map.size());
repository.close();
}
@Test
public void testSort() {
Context app = RuntimeEnvironment.application;
HttpUrl url = HttpUrl.parse("http://www.ehviewer.com/long/long/long/");
Cookie cookie1 = new Cookie.Builder()
.name("user")
.value("1234567890")
.domain("ehviewer.com")
.path("/")
.build();
Cookie cookie2 = new Cookie.Builder()
.name("supersuperme")
.value("99999")
.domain("ehviewer.com")
.path("/long/")
.build();
Cookie cookie3 = new Cookie.Builder()
.name("a")
.value("b")
.domain("ehviewer.com")
.path("/long/long/long/")
.build();
Cookie cookie4 = new Cookie.Builder()
.name("speed")
.value("100")
.domain("ehviewer.com")
.path("/long/long/")
.build();
CookieRepository repository = new CookieRepository(app, "cookie.db");
repository.saveFromResponse(url, Arrays.asList(cookie1, cookie2, cookie3, cookie4));
List<Cookie> list = repository.loadForRequest(url, null);
List<Cookie> expected = Arrays.asList(cookie3, cookie4, cookie2, cookie1);
assertEquals(expected.size(), list.size());
for (int i = 0; i < list.size(); i++) {
assertEquals(expected.get(i), list.get(i));
}
repository.close();
}
}