19b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtelpackage com.xtremelabs.robolectric.shadows;
29b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
363dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Graftonimport android.webkit.CookieManager;
463dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Graftonimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
59b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtelimport org.junit.Test;
69b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtelimport org.junit.runner.RunWith;
79b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
863dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Graftonimport static org.hamcrest.CoreMatchers.is;
9405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuwimport static org.junit.Assert.*;
109b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
119b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel@RunWith(WithTestDefaultsRunner.class)
129b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtelpublic class CookieManagerTest {
139b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
149b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel	@Test
159b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel	public void shouldGetASingletonInstance() {
169b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    assertNotNull(CookieManager.getInstance());
179b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel		assertThat( CookieManager.getInstance(), is(CookieManager.getInstance()));
189b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel	}
199b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
209b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  @Test
219b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  public void shouldSetAndGetACookie() {
229b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      CookieManager cookieManager = CookieManager.getInstance();
239b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String url = "http://www.google.com";
249b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String value = "my cookie";
259b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      cookieManager.setCookie(url, value);
269b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      assertThat(cookieManager.getCookie(url), is(value));
279b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  }
289b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
299b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  @Test
309b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  public void shouldGetCookieForUrl() {
319b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      CookieManager cookieManager = CookieManager.getInstance();
329b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String url1 = "http://www.google.com";
339b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String value1 = "my cookie";
349b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      cookieManager.setCookie(url1, value1);
359b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
369b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String url2 = "http://www.hotbot.com";
379b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      String value2 = "some special value: thing";
389b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      cookieManager.setCookie(url2, value2);
399b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
409b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      assertThat(cookieManager.getCookie("http://www.google.com"), is(value1));
419b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel      assertThat(cookieManager.getCookie(url2), is(value2));
429b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel  }
439b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
4463dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton  @Test
4563dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton  public void shouldRecordAcceptCookie() {
4663dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton      CookieManager cookieManager = CookieManager.getInstance();
47405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      cookieManager.setCookie("foo", "bar");
48405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      cookieManager.setCookie("baz", "qux");
49405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      assertNotNull(cookieManager.getCookie("foo"));
50405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      cookieManager.removeAllCookie();
51405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      assertNull(cookieManager.getCookie("foo"));
52405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw      assertNull(cookieManager.getCookie("baz"));
53405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw  }
549b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel}
559b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
56