1 package android.webkit; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import androidx.test.ext.junit.runners.AndroidJUnit4; 6 import org.junit.After; 7 import org.junit.Test; 8 import org.junit.runner.RunWith; 9 10 /** Compatibility test for {@link CookieManager} */ 11 @RunWith(AndroidJUnit4.class) 12 public class CookieManagerTest { 13 14 @After tearDown()15 public void tearDown() { 16 CookieManager.getInstance().removeAllCookie(); 17 } 18 19 @Test setCookie_doesNotAllowMultipleCookies()20 public void setCookie_doesNotAllowMultipleCookies() { 21 final String httpsUrl = "https://robolectric.org/"; 22 final CookieManager cookieManager = CookieManager.getInstance(); 23 cookieManager.setCookie(httpsUrl, "A=100; B=200"); 24 String cookie = cookieManager.getCookie(httpsUrl); 25 assertThat(cookie).isEqualTo("A=100"); 26 } 27 28 @Test setCookie_multipleCookies()29 public void setCookie_multipleCookies() { 30 final String httpsUrl = "https://robolectric.org/"; 31 final CookieManager cookieManager = CookieManager.getInstance(); 32 cookieManager.setCookie(httpsUrl, "A=100;"); 33 cookieManager.setCookie(httpsUrl, "B=100;"); 34 String cookie = cookieManager.getCookie(httpsUrl); 35 assertThat(cookie).isEqualTo("A=100; B=100"); 36 } 37 38 @Test setCookie_overrideCookieHasTheSameKey()39 public void setCookie_overrideCookieHasTheSameKey() { 40 final String httpsUrl = "https://robolectric.org/"; 41 final CookieManager cookieManager = CookieManager.getInstance(); 42 cookieManager.setCookie(httpsUrl, "A=100;"); 43 cookieManager.setCookie(httpsUrl, "A=200;"); 44 String cookie = cookieManager.getCookie(httpsUrl); 45 assertThat(cookie).isEqualTo("A=200"); 46 } 47 48 @Test getCookie_doesNotReturnAttributes()49 public void getCookie_doesNotReturnAttributes() { 50 final String httpsUrl = "https://robolectric.org/"; 51 final CookieManager cookieManager = CookieManager.getInstance(); 52 cookieManager.setCookie(httpsUrl, "ID=test-id; Path=/; Domain=.robolectric.org"); 53 String cookie = cookieManager.getCookie(httpsUrl); 54 assertThat(cookie).isEqualTo("ID=test-id"); 55 } 56 57 @Test shouldSetAndGetCookieWithWhitespacesInUrlParameters()58 public void shouldSetAndGetCookieWithWhitespacesInUrlParameters() { 59 CookieManager cookieManager = CookieManager.getInstance(); 60 String url = "http://www.google.com/?q=This is a test query"; 61 String value = "my cookie"; 62 cookieManager.setCookie(url, value); 63 assertThat(cookieManager.getCookie(url)).isEqualTo(value); 64 } 65 66 @Test shouldSetAndGetCookieWithEncodedWhitespacesInUrlParameters()67 public void shouldSetAndGetCookieWithEncodedWhitespacesInUrlParameters() { 68 CookieManager cookieManager = CookieManager.getInstance(); 69 String url = "http://www.google.com/?q=This%20is%20a%20test%20query"; 70 String value = "my cookie"; 71 cookieManager.setCookie(url, value); 72 assertThat(cookieManager.getCookie(url)).isEqualTo(value); 73 } 74 } 75