Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit 654efea

Browse files
theScrabiabelgardep
authored andcommitted
add tests for cookie jar
1 parent c3189b7 commit 654efea

File tree

2 files changed

+79
-5
lines changed

2 files changed

+79
-5
lines changed

owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/CookieJarImpl.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class CookieJarImpl(
88
private val sCookieStore: HashMap<String, List<Cookie>>
99
) : CookieJar {
1010

11-
private fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
11+
fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
1212
for (cookie: Cookie in cookies) {
1313
if (cookie.name == name) {
1414
return true;
@@ -17,7 +17,7 @@ class CookieJarImpl(
1717
return false;
1818
}
1919

20-
private fun getUpdatedCookies(oldCookies: List<Cookie>, newCookies: List<Cookie>): List<Cookie> {
20+
fun getUpdatedCookies(oldCookies: List<Cookie>, newCookies: List<Cookie>): List<Cookie> {
2121
val updatedList = ArrayList<Cookie>(newCookies);
2222
for (oldCookie: Cookie in oldCookies) {
2323
if (!containsCookieWithName(updatedList, oldCookie.name)) {
@@ -27,11 +27,11 @@ class CookieJarImpl(
2727
return updatedList;
2828
}
2929

30-
override fun saveFromResponse(url: HttpUrl, newCookies: List<Cookie>) {
30+
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
3131
// Avoid duplicated cookies but update
3232
val currentCookies: List<Cookie> = sCookieStore[url.host] ?: ArrayList()
33-
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, newCookies);
34-
sCookieStore.put(url.host, updatedCookies);
33+
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, cookies);
34+
sCookieStore[url.host] = updatedCookies;
3535
}
3636

3737
override fun loadForRequest(url: HttpUrl) =
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package com.owncloud.android.lib
2+
3+
import com.owncloud.android.lib.common.http.CookieJarImpl
4+
import junit.framework.Assert.assertEquals
5+
import junit.framework.Assert.assertFalse
6+
import junit.framework.Assert.assertTrue
7+
import okhttp3.Cookie
8+
import okhttp3.HttpUrl.Companion.toHttpUrl
9+
import org.junit.Test
10+
11+
class CookieJarImplTest {
12+
13+
private val oldCookies = ArrayList<Cookie>().apply {
14+
add(COOKIE_A)
15+
add(COOKIE_B_OLD)
16+
}
17+
18+
private val newCookies = ArrayList<Cookie>().apply {
19+
add(COOKIE_B_NEW)
20+
}
21+
22+
private val updatedCookies = ArrayList<Cookie>().apply {
23+
add(COOKIE_A)
24+
add(COOKIE_B_NEW)
25+
}
26+
27+
private val cookieStore = HashMap<String, List<Cookie>>().apply {
28+
put(SOME_HOST, oldCookies)
29+
}
30+
31+
private val cookieJarImpl = CookieJarImpl(cookieStore)
32+
33+
@Test
34+
fun testContainsCookieWithNameReturnsTrue() {
35+
assertTrue(cookieJarImpl.containsCookieWithName(oldCookies, COOKIE_B_OLD.name))
36+
}
37+
38+
@Test
39+
fun testContainsCookieWithNameReturnsFalse() {
40+
assertFalse(cookieJarImpl.containsCookieWithName(newCookies, COOKIE_A.name))
41+
}
42+
43+
@Test
44+
fun testGetUpdatedCookies() {
45+
val generatedUpdatedCookies = cookieJarImpl.getUpdatedCookies(oldCookies, newCookies)
46+
assertEquals(2, generatedUpdatedCookies.size)
47+
assertEquals(updatedCookies[0], generatedUpdatedCookies[1])
48+
assertEquals(updatedCookies[1], generatedUpdatedCookies[0])
49+
}
50+
51+
@Test
52+
fun testCookieStoreUpdateViaSaveFromResponse() {
53+
cookieJarImpl.saveFromResponse(SOME_URL, newCookies)
54+
val generatedUpdatedCookies = cookieStore[SOME_HOST]
55+
assertEquals(2, generatedUpdatedCookies?.size)
56+
assertEquals(updatedCookies[0], generatedUpdatedCookies?.get(1))
57+
assertEquals(updatedCookies[1], generatedUpdatedCookies?.get(0))
58+
}
59+
60+
@Test
61+
fun testLoadForRequest() {
62+
val cookies = cookieJarImpl.loadForRequest(SOME_URL)
63+
assertEquals(oldCookies[0], cookies[0])
64+
assertEquals(oldCookies[1], cookies[1])
65+
}
66+
67+
companion object {
68+
const val SOME_HOST = "some.host.com"
69+
val SOME_URL = "https://$SOME_HOST".toHttpUrl()
70+
val COOKIE_A = Cookie.parse(SOME_URL, "CookieA=CookieValueA")!!
71+
val COOKIE_B_OLD = Cookie.parse(SOME_URL, "CookieB=CookieOldValueB")!!
72+
val COOKIE_B_NEW = Cookie.parse(SOME_URL, "CookieB=CookieNewValueB")!!
73+
}
74+
}

0 commit comments

Comments
 (0)