ShadowCookieSyncManager.java revision 32fa4fc29ce30047ce5c3c00e3eea5cf1c27b056
1package com.xtremelabs.robolectric.shadows;
2
3import android.content.Context;
4import android.webkit.CookieSyncManager;
5
6import com.xtremelabs.robolectric.Robolectric;
7import com.xtremelabs.robolectric.internal.Implementation;
8import com.xtremelabs.robolectric.internal.Implements;
9
10/**
11 * Shadows the {@code android.webkit.CookieSyncManager} class.
12 */
13@Implements(CookieSyncManager.class)
14public class ShadowCookieSyncManager {
15
16    private static CookieSyncManager sRef;
17
18    private boolean synced = false;
19
20    @Implementation
21    public static synchronized CookieSyncManager createInstance( Context ctx ) {
22
23    	if( sRef == null ) {
24    		sRef = Robolectric.newInstanceOf( CookieSyncManager.class );
25    	}
26
27    	return sRef;
28    }
29
30    @Implementation
31    public static CookieSyncManager getInstance() {
32    	if( sRef == null ) { throw new IllegalStateException( "createInstance must be called first" ); }
33    	return sRef;
34    }
35
36    @Implementation
37    public void sync() { synced = true; }
38
39    public boolean synced() { return synced; }
40}
41