1b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamspackage com.xtremelabs.robolectric.shadows;
2b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams
3b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamsimport android.webkit.CookieManager;
4b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamsimport com.xtremelabs.robolectric.Robolectric;
5b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamsimport com.xtremelabs.robolectric.internal.Implementation;
6b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamsimport com.xtremelabs.robolectric.internal.Implements;
7b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams
863dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Graftonimport java.util.HashMap;
963dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Graftonimport java.util.Map;
1063dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton
11b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams/**
12b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams * Shadows the {@code android.telephony.TelephonyManager} class.
13b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams */
14b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams@SuppressWarnings({"UnusedDeclaration"})
15b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams@Implements(CookieManager.class)
16b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williamspublic class ShadowCookieManager {
17b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams    private static CookieManager sRef;
189b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    private Map<String,String> cookies = new HashMap<String, String>();
1963dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    private boolean accept;
20b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams
21b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams    @Implementation
22b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams    public static CookieManager getInstance() {
23b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams        if (sRef == null) {
24b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams            sRef = Robolectric.newInstanceOf(CookieManager.class);
25b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams        }
26b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams        return sRef;
27b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams    }
289b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
299b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    @Implementation
309b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    public void setCookie(String url, String value) {
319b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel        cookies.put(url, value);
329b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    }
339b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel
349b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    @Implementation
359b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    public String getCookie(String url) {
369b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel        return cookies.get(url);
379b9523e33344ef3d90aaf5ae54d358c6b2806567Stephen Wolter & James Brechtel    }
3863dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton
3963dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    @Implementation
4063dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    public void setAcceptCookie(boolean accept) {
4163dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton        this.accept = accept;
4263dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    }
4363dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton
4463dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    @Implementation
4563dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    public boolean acceptCookie() {
4663dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton        return this.accept;
4763dda805c3f505f03263a3d4830747e53b421795Greg Choi & Mike Grafton    }
48405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw
49405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw    @Implementation
50405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw    public void removeAllCookie() {
51405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw        cookies.clear();
52405d563a3da601cc85cae96d3ec9f4deeeb99f9aMike Grafton & Tim Labeeuw    }
53b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams}
54