Add recaptcha
This commit is contained in:
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();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user