1 package android.webkit; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.os.Build.VERSION; 6 import android.os.Build.VERSION_CODES; 7 import androidx.test.core.app.ApplicationProvider; 8 import androidx.test.ext.junit.runners.AndroidJUnit4; 9 import org.junit.After; 10 import org.junit.Before; 11 import org.junit.Test; 12 import org.junit.runner.RunWith; 13 import org.robolectric.annotation.internal.DoNotInstrument; 14 15 /** Compatibility test for {@link CookieManager} */ 16 @DoNotInstrument 17 @RunWith(AndroidJUnit4.class) 18 public class CookieManagerTest { 19 20 @Before setUp()21 public void setUp() { 22 // Required to initialize native CookieManager for emulators with SDK < 19. 23 if (VERSION.SDK_INT < VERSION_CODES.KITKAT) { 24 CookieSyncManager.createInstance(ApplicationProvider.getApplicationContext()); 25 } 26 } 27 28 @After tearDown()29 public void tearDown() { 30 CookieManager.getInstance().removeAllCookie(); 31 } 32 33 @Test setCookie_doesNotAllowMultipleCookies()34 public void setCookie_doesNotAllowMultipleCookies() { 35 final String httpsUrl = "https://robolectric.org/"; 36 final CookieManager cookieManager = CookieManager.getInstance(); 37 cookieManager.setCookie(httpsUrl, "A=100; B=200"); 38 String cookie = cookieManager.getCookie(httpsUrl); 39 assertThat(cookie).isEqualTo("A=100"); 40 } 41 42 @Test setCookie_multipleCookies()43 public void setCookie_multipleCookies() { 44 final String httpsUrl = "https://robolectric.org/"; 45 final CookieManager cookieManager = CookieManager.getInstance(); 46 cookieManager.setCookie(httpsUrl, "A=100;"); 47 cookieManager.setCookie(httpsUrl, "B=100;"); 48 String cookie = cookieManager.getCookie(httpsUrl); 49 assertThat(cookie).isEqualTo("A=100; B=100"); 50 } 51 52 @Test setCookie_overrideCookieHasTheSameKey()53 public void setCookie_overrideCookieHasTheSameKey() { 54 final String httpsUrl = "https://robolectric.org/"; 55 final CookieManager cookieManager = CookieManager.getInstance(); 56 cookieManager.setCookie(httpsUrl, "A=100;"); 57 cookieManager.setCookie(httpsUrl, "A=200;"); 58 String cookie = cookieManager.getCookie(httpsUrl); 59 assertThat(cookie).isEqualTo("A=200"); 60 } 61 62 @Test getCookie_doesNotReturnAttributes()63 public void getCookie_doesNotReturnAttributes() { 64 final String httpsUrl = "https://robolectric.org/"; 65 final CookieManager cookieManager = CookieManager.getInstance(); 66 cookieManager.setCookie(httpsUrl, "ID=test-id; Path=/; Domain=.robolectric.org"); 67 String cookie = cookieManager.getCookie(httpsUrl); 68 assertThat(cookie).isEqualTo("ID=test-id"); 69 } 70 } 71