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