mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 10:27:45 +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