mirror of
				https://github.com/owncloud/android-library.git
				synced 2025-10-31 02:17:41 +00:00 
			
		
		
		
	add tests for cookie jar
This commit is contained in:
		
							parent
							
								
									edcbddfd25
								
							
						
					
					
						commit
						f4e3640e66
					
				| @ -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