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>>
|
private val sCookieStore: HashMap<String, List<Cookie>>
|
||||||
) : CookieJar {
|
) : CookieJar {
|
||||||
|
|
||||||
private fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
|
fun containsCookieWithName(cookies: List<Cookie>, name: String): Boolean {
|
||||||
for (cookie: Cookie in cookies) {
|
for (cookie: Cookie in cookies) {
|
||||||
if (cookie.name == name) {
|
if (cookie.name == name) {
|
||||||
return true;
|
return true;
|
||||||
@ -17,7 +17,7 @@ class CookieJarImpl(
|
|||||||
return false;
|
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);
|
val updatedList = ArrayList<Cookie>(newCookies);
|
||||||
for (oldCookie: Cookie in oldCookies) {
|
for (oldCookie: Cookie in oldCookies) {
|
||||||
if (!containsCookieWithName(updatedList, oldCookie.name)) {
|
if (!containsCookieWithName(updatedList, oldCookie.name)) {
|
||||||
@ -27,11 +27,11 @@ class CookieJarImpl(
|
|||||||
return updatedList;
|
return updatedList;
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun saveFromResponse(url: HttpUrl, newCookies: List<Cookie>) {
|
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
||||||
// Avoid duplicated cookies but update
|
// Avoid duplicated cookies but update
|
||||||
val currentCookies: List<Cookie> = sCookieStore[url.host] ?: ArrayList()
|
val currentCookies: List<Cookie> = sCookieStore[url.host] ?: ArrayList()
|
||||||
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, newCookies);
|
val updatedCookies: List<Cookie> = getUpdatedCookies(currentCookies, cookies);
|
||||||
sCookieStore.put(url.host, updatedCookies);
|
sCookieStore[url.host] = updatedCookies;
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun loadForRequest(url: HttpUrl) =
|
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