mirror of
https://github.com/owncloud/android-library.git
synced 2025-06-07 16:06:08 +00:00
add tests for cookie jar
This commit is contained in:
parent
c3189b7b46
commit
654efea7e5
@ -8,7 +8,7 @@ class CookieJarImpl(
|
||||
private val sCookieStore: HashMap<String, List<Cookie>>
|
||||
) : CookieJar {
|
||||
|
||||
private fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
|
||||
fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
|
||||
for (cookie: Cookie in cookies) {
|
||||
if (cookie.name == name) {
|
||||
return true;
|
||||
@ -17,7 +17,7 @@ class CookieJarImpl(
|
||||
return false;
|
||||
}
|
||||
|
||||
private fun getUpdatedCookies(oldCookies: List<Cookie>, newCookies: List<Cookie>): List<Cookie> {
|
||||
fun getUpdatedCookies(oldCookies: List<Cookie>, newCookies: List<Cookie>): List<Cookie> {
|
||||
val updatedList = ArrayList<Cookie>(newCookies);
|
||||
for (oldCookie: Cookie in oldCookies) {
|
||||
if (!containsCookieWithName(updatedList, oldCookie.name)) {
|
||||
@ -27,11 +27,11 @@ class CookieJarImpl(
|
||||
return updatedList;
|
||||
}
|
||||
|
||||
override fun saveFromResponse(url: HttpUrl, newCookies: List<Cookie>) {
|
||||
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
||||
// Avoid duplicated cookies but update
|
||||
val currentCookies: List<Cookie> = sCookieStore[url.host] ?: ArrayList()
|
||||
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, newCookies);
|
||||
sCookieStore.put(url.host, updatedCookies);
|
||||
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, cookies);
|
||||
sCookieStore[url.host] = updatedCookies;
|
||||
}
|
||||
|
||||
override fun loadForRequest(url: HttpUrl) =
|
||||
|
@ -0,0 +1,74 @@
|
||||
package com.owncloud.android.lib
|
||||
|
||||
import com.owncloud.android.lib.common.http.CookieJarImpl
|
||||
import junit.framework.Assert.assertEquals
|
||||
import junit.framework.Assert.assertFalse
|
||||
import junit.framework.Assert.assertTrue
|
||||
import okhttp3.Cookie
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import org.junit.Test
|
||||
|
||||
class CookieJarImplTest {
|
||||
|
||||
private val oldCookies = ArrayList<Cookie>().apply {
|
||||
add(COOKIE_A)
|
||||
add(COOKIE_B_OLD)
|
||||
}
|
||||
|
||||
private val newCookies = ArrayList<Cookie>().apply {
|
||||
add(COOKIE_B_NEW)
|
||||
}
|
||||
|
||||
private val updatedCookies = ArrayList<Cookie>().apply {
|
||||
add(COOKIE_A)
|
||||
add(COOKIE_B_NEW)
|
||||
}
|
||||
|
||||
private val cookieStore = HashMap<String, List<Cookie>>().apply {
|
||||
put(SOME_HOST, oldCookies)
|
||||
}
|
||||
|
||||
private val cookieJarImpl = CookieJarImpl(cookieStore)
|
||||
|
||||
@Test
|
||||
fun testContainsCookieWithNameReturnsTrue() {
|
||||
assertTrue(cookieJarImpl.containsCookieWithName(oldCookies, COOKIE_B_OLD.name))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testContainsCookieWithNameReturnsFalse() {
|
||||
assertFalse(cookieJarImpl.containsCookieWithName(newCookies, COOKIE_A.name))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testGetUpdatedCookies() {
|
||||
val generatedUpdatedCookies = cookieJarImpl.getUpdatedCookies(oldCookies, newCookies)
|
||||
assertEquals(2, generatedUpdatedCookies.size)
|
||||
assertEquals(updatedCookies[0], generatedUpdatedCookies[1])
|
||||
assertEquals(updatedCookies[1], generatedUpdatedCookies[0])
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testCookieStoreUpdateViaSaveFromResponse() {
|
||||
cookieJarImpl.saveFromResponse(SOME_URL, newCookies)
|
||||
val generatedUpdatedCookies = cookieStore[SOME_HOST]
|
||||
assertEquals(2, generatedUpdatedCookies?.size)
|
||||
assertEquals(updatedCookies[0], generatedUpdatedCookies?.get(1))
|
||||
assertEquals(updatedCookies[1], generatedUpdatedCookies?.get(0))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testLoadForRequest() {
|
||||
val cookies = cookieJarImpl.loadForRequest(SOME_URL)
|
||||
assertEquals(oldCookies[0], cookies[0])
|
||||
assertEquals(oldCookies[1], cookies[1])
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val SOME_HOST = "some.host.com"
|
||||
val SOME_URL = "https://$SOME_HOST".toHttpUrl()
|
||||
val COOKIE_A = Cookie.parse(SOME_URL, "CookieA=CookieValueA")!!
|
||||
val COOKIE_B_OLD = Cookie.parse(SOME_URL, "CookieB=CookieOldValueB")!!
|
||||
val COOKIE_B_NEW = Cookie.parse(SOME_URL, "CookieB=CookieNewValueB")!!
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user