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