Robolectric.java revision 76209fe88929d880ac6e008d5a3e6e1e1dd4939a
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric;
20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
3c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.app.Activity;
4c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.app.AlertDialog;
5c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.app.Application;
6c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.app.Dialog;
7c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.app.ListActivity;
81fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.appwidget.AppWidgetManager;
9b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williamsimport android.bluetooth.BluetoothAdapter;
10b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williamsimport android.bluetooth.BluetoothDevice;
119893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.content.ContentValues;
121fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Context;
131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.ContextWrapper;
141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Intent;
1570a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport android.content.res.AssetManager;
161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources;
17b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesiimport android.database.sqlite.SQLiteCursor;
189893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.database.sqlite.SQLiteDatabase;
1928dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesiimport android.database.sqlite.SQLiteOpenHelper;
203a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesiimport android.database.sqlite.SQLiteQueryBuilder;
21c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.Bitmap;
22c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.Canvas;
23c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.ColorMatrix;
24c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.Matrix;
25c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.Paint;
26c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.graphics.Path;
271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable;
281fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable;
2931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.hardware.Camera;
3006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richardimport android.location.Geocoder;
311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager;
3236a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesiimport android.media.AudioManager;
3331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.media.MediaRecorder;
347581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager;
357581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo;
361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler;
371fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper;
38c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.view.Display;
39c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.view.LayoutInflater;
40b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwinimport android.view.MenuInflater;
41c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.view.MotionEvent;
42c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.view.View;
43c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.view.ViewGroup;
446cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultzimport android.webkit.WebView;
45c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.AdapterView;
46c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.ExpandableListView;
47c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.ImageView;
48c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.ListView;
49c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.RemoteViews;
50c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.TextView;
51c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.Toast;
52c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport android.widget.ZoomButtonsController;
531fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.GeoPoint;
541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.ItemizedOverlay;
551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapController;
561fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapView;
57b5d56e95f27d484ad3098ac18867262e7c8826c1Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.bytecode.RobolectricInternals;
58b5d56e95f27d484ad3098ac18867262e7c8826c1Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.bytecode.ShadowWrangler;
5922c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements;
60c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.FakeHttpLayer;
61c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAbsSpinner;
62c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAbsoluteLayout;
63c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAbstractCursor;
64c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowActivity;
65c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAdapterView;
66c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAddress;
67c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAlertDialog;
68c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAppWidgetManager;
69c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowApplication;
70c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowArrayAdapter;
71c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAssetManager;
72c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAsyncTask;
73c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowAudioManager;
74c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBaseAdapter;
75c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBitmap;
76c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBitmapDrawable;
77c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBitmapFactory;
78c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBluetoothAdapter;
79c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBluetoothDevice;
80c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowBundle;
81c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowCamera;
82c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowCameraParameters;
83c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowCanvas;
84c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowColorMatrix;
85c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowColorMatrixColorFilter;
86c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowComponentName;
87c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowCompoundButton;
88c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowConnectivityManager;
89c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowContentResolver;
90c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowContentValues;
91c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowContext;
92c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowContextThemeWrapper;
93c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowContextWrapper;
94c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowDefaultRequestDirector;
95c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowDialog;
96c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowDisplay;
97c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowDrawable;
98c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowEditText;
99c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowExpandableListView;
100c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowFloatMath;
101c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowGeoPoint;
102c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowGeocoder;
103c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowHandler;
104c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowImageView;
105c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowIntent;
106c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowIntentFilter;
107c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowItemizedOverlay;
108c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowLayoutInflater;
109c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowLayoutParams;
110c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowListActivity;
111c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowListView;
112c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowLocation;
113c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowLocationManager;
114c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowLooper;
115c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMapActivity;
116c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMapController;
117c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMapView;
118c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMatrix;
119c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMediaRecorder;
120c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMediaStore;
121b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMenuInflater;
122c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowMotionEvent;
123c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowNetworkInfo;
124c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowOverlayItem;
125c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPaint;
126c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPath;
127c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPendingIntent;
128c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPoint;
129c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPointF;
130c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowPreferenceManager;
131c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowRect;
132c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowRemoteViews;
133c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowResources;
134c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSQLiteCursor;
135c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSQLiteDatabase;
136c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSQLiteOpenHelper;
137c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSQLiteQueryBuilder;
138c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowService;
139c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSettings;
140c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSpannableStringBuilder;
141c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowSurfaceView;
142c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowTextUtils;
143c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowTextView;
144c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowToast;
145c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowTypedValue;
146c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowURLSpan;
147c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowView;
148c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowViewGroup;
149c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowWebView;
150c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowWifiManager;
151c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwinimport com.xtremelabs.robolectric.shadows.ShadowZoomButtonsController;
1527cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.util.HttpRequestInfo;
15371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williamsimport com.xtremelabs.robolectric.util.Scheduler;
154cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultzimport org.apache.http.HttpRequest;
155cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultzimport org.apache.http.HttpResponse;
156b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultzimport org.apache.http.impl.client.DefaultRequestDirector;
1570b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
1580b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.Constructor;
1590b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.InvocationTargetException;
1600b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays;
1610b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List;
1620b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
163bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin@SuppressWarnings({"UnusedDeclaration"})
164345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric {
1658baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard    public static Application application;
1668baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard
1670b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    public static <T> T newInstanceOf(Class<T> clazz) {
1680b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        try {
1690b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            Constructor<T> defaultConstructor = clazz.getDeclaredConstructor();
1700b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            defaultConstructor.setAccessible(true);
1710b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            return defaultConstructor.newInstance();
1720b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (InstantiationException e) {
1730b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
1740b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (IllegalAccessException e) {
1750b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
1760b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (NoSuchMethodException e) {
1770b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
1780b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        } catch (InvocationTargetException e) {
1790b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher            throw new RuntimeException(e);
1800b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        }
1810b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
1820b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
183e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindShadowClass(Class<?> shadowClass) {
184e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        Implements realClass = shadowClass.getAnnotation(Implements.class);
18509aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams        if (realClass == null) {
18609aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams            throw new IllegalArgumentException(shadowClass + " is not annotated with @Implements");
18709aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams        }
188673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz
189673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz        try {
190237888bb1e926aea523388de5d511a35f38506efPhil Goodwin & Tyler Schultz            ShadowWrangler.getInstance().bindShadowClass(realClass.value(), shadowClass);
191673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz        } catch (TypeNotPresentException ignored) {
192673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz            //this allows users of the robolectric.jar file to use the non-Google APIs version of the api
1938d7212a337eb6bca1b0be306a5200cf0bef9a366Phil Goodwin & Tyler Schultz            System.out.println("Warning: an error occurred while binding shadow class: " + shadowClass.getSimpleName());
194673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz        }
195e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
196e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
197e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindDefaultShadowClasses() {
198638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        bindShadowClasses(getDefaultShadowClasses());
199638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    }
200638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams
201638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    public static void bindShadowClasses(List<Class<?>> shadowClasses) {
202638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        for (Class<?> shadowClass : shadowClasses) {
203638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams            bindShadowClass(shadowClass);
204e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        }
205e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
206e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
207cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    /**
208cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * Invoke this utility method in tests to reveal which Android api classes and methods are being invoked
209cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * for which there are no shadows or shadow methods. This helps expose which methods are being invoked
210cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * either by a third party library or application code which need new shadow methods to be written. Generates
211cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * output for the current test only.
212cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     */
213cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    public static void logMissingInvokedShadowMethods() {
214cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz        ShadowWrangler.getInstance().logMissingInvokedShadowMethods();
215cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    }
216cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz
217e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static List<Class<?>> getDefaultShadowClasses() {
2180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        return Arrays.asList(
219c146ad8871a32bbf62aca259ede77d3f9cd07773Tyler Schultz                ShadowAbsoluteLayout.class,
220afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAbsSpinner.class,
2219893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowAbstractCursor.class,
222afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowActivity.class,
223afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAdapterView.class,
224afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAddress.class,
225afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.class,
226afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.ShadowBuilder.class,
227afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowApplication.class,
228afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAppWidgetManager.class,
229e9c420439254fc0c893e44987db10e1418fff338mylacc                ShadowArrayAdapter.class,
230114296321cba71f8133713306049ce3b411e8563Gonçalo Silva                ShadowAssetManager.class,
23171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams                ShadowAsyncTask.class,
23236a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesi                ShadowAudioManager.class,
233afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBaseAdapter.class,
234ae26238c7d01caef84ceddd8ffb42c32306918d6Josh Lauer & Christian Williams                ShadowBitmap.class,
235afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBitmapDrawable.class,
236b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBitmapFactory.class,
237b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBluetoothAdapter.class,
238b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBluetoothDevice.class,
23975d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard                ShadowBundle.class,
24031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi                ShadowCamera.class,
24131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi                ShadowCameraParameters.class,
242afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowCanvas.class,
243e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams                ShadowColorMatrix.class,
244e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams                ShadowColorMatrixColorFilter.class,
245afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowCompoundButton.class,
246afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowComponentName.class,
2477581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse                ShadowConnectivityManager.class,
24820b94927aff24d7bd975d6ee717f1b65da9ee7c1Josh Lauer & Christian Williams                ShadowContentResolver.class,
2499893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowContentValues.class,
250afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContext.class,
251afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContextWrapper.class,
2521dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong                ShadowContextThemeWrapper.class,
253cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz                ShadowDefaultRequestDirector.class,
254d1eee6c4ec28a6c17455ce5c29efb833f30dd5d0Michael Portuesi                ShadowDisplay.class,
255afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDrawable.class,
256afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDialog.class,
257afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowEditText.class,
2589044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian                ShadowExpandableListView.class,
259d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams                ShadowFloatMath.class,
26006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard                ShadowGeocoder.class,
261afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowGeoPoint.class,
262afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowHandler.class,
263afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowImageView.class,
264afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntent.class,
265afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntentFilter.class,
266afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowItemizedOverlay.class,
267afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutInflater.class,
268afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutParams.class,
269afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListActivity.class,
270afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListView.class,
271afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocation.class,
272afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocationManager.class,
273afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLooper.class,
274afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapController.class,
275afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapActivity.class,
276afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapView.class,
2770d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams                ShadowMatrix.class,
27876209fe88929d880ac6e008d5a3e6e1e1dd4939aPhil Goodwin                ShadowMediaRecorder.class,
279d3f9a56dffcdd129355351019aef9652cce0d6b2Josh Lauer & Christian Williams                ShadowMediaStore.ShadowImages.ShadowMedia.class,
28076209fe88929d880ac6e008d5a3e6e1e1dd4939aPhil Goodwin                ShadowMenuInflater.class,
281afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMotionEvent.class,
2827581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse                ShadowNetworkInfo.class,
283afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowOverlayItem.class,
284afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPaint.class,
285afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPath.class,
286afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPendingIntent.class,
287afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPoint.class,
288d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams                ShadowPointF.class,
289e8637c922e4f8e681769d63689accb89e6108056Michael Portuesi                ShadowPreferenceManager.class,
290afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRect.class,
291afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRemoteViews.class,
292afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowResources.class,
293afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowService.class,
294afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.class,
295afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSecure.class,
296afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSystem.class,
297afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSpannableStringBuilder.class,
2989893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowSQLiteDatabase.class,
299b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi                ShadowSQLiteCursor.class,
30028dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi                ShadowSQLiteOpenHelper.class,
3013a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi                ShadowSQLiteQueryBuilder.class,
3027dc1a70de2b28bdf70d887accfb5805f3497bda8Josh Lauer & Christian Williams                ShadowSurfaceView.class,
303afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextUtils.class,
304afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextView.class,
305afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowToast.class,
306afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTypedValue.class,
307237888bb1e926aea523388de5d511a35f38506efPhil Goodwin & Tyler Schultz                ShadowURLSpan.class,
308afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowView.class,
309afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowViewGroup.class,
3109ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz                ShadowWebView.class,
311afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowWifiManager.class,
312afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowZoomButtonsController.class
313adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams        );
3140b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
31590008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher
316345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams    public static void resetStaticState() {
317e6dfaf271dbaf3ac1bb82d953669a56a02fc71d6Phil Goodwin & Tyler Schultz        ShadowWrangler.getInstance().silence();
318345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams        Robolectric.application = new Application();
319d092cebc8c9179d3a138827fd65961b867e2c53fJosh Lauer & Christian Williams        ShadowBitmapFactory.reset();
32090008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher    }
3211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
3229122a05312e767618ba0545a951df9cab86c8716Christian Williams    public static <T> T directlyOn(T shadowedObject) {
3239122a05312e767618ba0545a951df9cab86c8716Christian Williams        return RobolectricInternals.directlyOn(shadowedObject);
3249122a05312e767618ba0545a951df9cab86c8716Christian Williams    }
3259122a05312e767618ba0545a951df9cab86c8716Christian Williams
326433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDrawable shadowOf(Drawable instance) {
327433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDrawable) shadowOf_(instance);
3281fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3291fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
330433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowToast shadowOf(Toast instance) {
331433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowToast) shadowOf_(instance);
3321fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
3347581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    public static ShadowNetworkInfo shadowOf(NetworkInfo instance) {
3357581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse        return (ShadowNetworkInfo) shadowOf_(instance);
3367581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    }
3377581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse
3387581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) {
3397581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse        return (ShadowConnectivityManager) shadowOf_(instance);
3407581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    }
3417581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse
342433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) {
343433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowBitmapDrawable) shadowOf_(instance);
3441fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3451fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
346433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) {
347433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowZoomButtonsController) shadowOf_(instance);
3481fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3491fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
350433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowGeoPoint shadowOf(GeoPoint instance) {
351433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowGeoPoint) shadowOf_(instance);
3521fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3531fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
354433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowMapView shadowOf(MapView instance) {
355433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowMapView) shadowOf_(instance);
3561fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3571fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
358433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowMapController shadowOf(MapController instance) {
359433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowMapController) shadowOf_(instance);
3601fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3611fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
362433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowItemizedOverlay shadowOf(ItemizedOverlay instance) {
363433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowItemizedOverlay) shadowOf_(instance);
3641fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3651fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
366433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListView shadowOf(ListView instance) {
367433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListView) shadowOf_(instance);
3681fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3691fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
3709044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian    public static ExpandableListView shadowOf(ExpandableListView instance) {
3719044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian        return (ExpandableListView) shadowOf_(instance);
3729044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian    }
3739044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian
374433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowActivity shadowOf(Activity instance) {
375433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowActivity) shadowOf_(instance);
3761fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3771fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
378433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowContextWrapper shadowOf(ContextWrapper instance) {
379433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowContextWrapper) shadowOf_(instance);
3801fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3811fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
382f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static ShadowApplication shadowOf(Application instance) {
383f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        return (ShadowApplication) shadowOf_(instance);
384f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    }
385f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin
386f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static ShadowContext shadowOf(Context instance) {
387f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        return (ShadowContext) shadowOf_(instance);
3881fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3891fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
390433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPaint shadowOf(Paint instance) {
391433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPaint) shadowOf_(instance);
3921fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3931fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
394433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPath shadowOf(Path instance) {
395433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPath) shadowOf_(instance);
3961fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3971fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
398433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListActivity shadowOf(ListActivity instance) {
399433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListActivity) shadowOf_(instance);
4001fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4011fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
402433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowHandler shadowOf(Handler instance) {
403433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowHandler) shadowOf_(instance);
4041fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4051fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
406e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams    public static ShadowColorMatrix shadowOf(ColorMatrix instance) {
407e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams        return (ShadowColorMatrix) shadowOf_(instance);
408e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams    }
409e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams
410433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowIntent shadowOf(Intent instance) {
411433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowIntent) shadowOf_(instance);
4121fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
414433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowView shadowOf(View instance) {
415433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowView) shadowOf_(instance);
4161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
418433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowViewGroup shadowOf(ViewGroup instance) {
419433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowViewGroup) shadowOf_(instance);
4201fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
4226cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public static ShadowWebView shadowOf(WebView instance) {
4236cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        return (ShadowWebView) shadowOf_(instance);
4246cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
4256cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
426433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAdapterView shadowOf(AdapterView instance) {
427433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAdapterView) shadowOf_(instance);
4281fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4291fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
430433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowTextView shadowOf(TextView instance) {
431433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowTextView) shadowOf_(instance);
4321fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
434433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowImageView shadowOf(ImageView instance) {
435433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowImageView) shadowOf_(instance);
4361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4371fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
438433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowRemoteViews shadowOf(RemoteViews instance) {
439433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowRemoteViews) shadowOf_(instance);
4401fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4411fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
442433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDialog shadowOf(Dialog instance) {
443433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDialog) shadowOf_(instance);
4441fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4451fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
446b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static ShadowDefaultRequestDirector shadowOf(DefaultRequestDirector instance) {
447cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz        return (ShadowDefaultRequestDirector) shadowOf_(instance);
448c95377d49257364984344908f301574ebe8d4d9cPhil Goodwin & Tyler Schultz    }
449c95377d49257364984344908f301574ebe8d4d9cPhil Goodwin & Tyler Schultz
450433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAlertDialog shadowOf(AlertDialog instance) {
451433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAlertDialog) shadowOf_(instance);
4521fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4531fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
454433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLooper shadowOf(Looper instance) {
455433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLooper) shadowOf_(instance);
4561fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4571fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
458433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowCanvas shadowOf(Canvas instance) {
459433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowCanvas) shadowOf_(instance);
4601fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4611fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
462433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLocationManager shadowOf(LocationManager instance) {
463433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLocationManager) shadowOf_(instance);
4641fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4651fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
466433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) {
467433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAppWidgetManager) shadowOf_(instance);
4681fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4691fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
470433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowResources shadowOf(Resources instance) {
471433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowResources) shadowOf_(instance);
4721fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4731fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
474e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static ShadowLayoutInflater shadowOf(LayoutInflater instance) {
47506abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard        return (ShadowLayoutInflater) shadowOf_(instance);
476e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
477adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams
478b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin    public static ShadowMenuInflater shadowOf(MenuInflater instance) {
479b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin        return (ShadowMenuInflater) shadowOf_(instance);
480b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin    }
481b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin
482adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    public static ShadowDisplay shadowOf(Display instance) {
4834a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams        return (ShadowDisplay) shadowOf_(instance);
484adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    }
485adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams
486adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    public static ShadowAudioManager shadowOf(AudioManager instance) {
4874a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams        return (ShadowAudioManager) shadowOf_(instance);
4884a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams    }
489e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
49006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard    public static ShadowGeocoder shadowOf(Geocoder instance) {
49106abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard        return (ShadowGeocoder) shadowOf_(instance);
492adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    }
493e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
4949893f7266e7dcc1332743887045bd69991441421Christian Williams    public static ShadowSQLiteDatabase shadowOf(SQLiteDatabase other) {
4959893f7266e7dcc1332743887045bd69991441421Christian Williams        return (ShadowSQLiteDatabase) Robolectric.shadowOf_(other);
4969893f7266e7dcc1332743887045bd69991441421Christian Williams    }
497f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
498b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi    public static ShadowSQLiteCursor shadowOf(SQLiteCursor other) {
499b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi        return (ShadowSQLiteCursor) Robolectric.shadowOf_(other);
500b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi    }
5019893f7266e7dcc1332743887045bd69991441421Christian Williams
50228dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi    public static ShadowSQLiteOpenHelper shadowOf(SQLiteOpenHelper other) {
50328dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi        return (ShadowSQLiteOpenHelper) Robolectric.shadowOf_(other);
50428dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi    }
505f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
5063a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi    public static ShadowSQLiteQueryBuilder shadowOf(SQLiteQueryBuilder other) {
5073a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi        return (ShadowSQLiteQueryBuilder) Robolectric.shadowOf_(other);
5083a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi    }
509f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
5109893f7266e7dcc1332743887045bd69991441421Christian Williams    public static ShadowContentValues shadowOf(ContentValues other) {
5119893f7266e7dcc1332743887045bd69991441421Christian Williams        return (ShadowContentValues) Robolectric.shadowOf_(other);
5129893f7266e7dcc1332743887045bd69991441421Christian Williams    }
5139893f7266e7dcc1332743887045bd69991441421Christian Williams
51431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowCamera shadowOf(Camera instance) {
51531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowCamera) shadowOf_(instance);
51631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
517f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
51831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowCameraParameters shadowOf(Camera.Parameters instance) {
51931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowCameraParameters) shadowOf_(instance);
52031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
5219893f7266e7dcc1332743887045bd69991441421Christian Williams
52231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowMediaRecorder shadowOf(MediaRecorder instance) {
52331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowMediaRecorder) shadowOf_(instance);
52431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
525f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
52624f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz    public static ShadowAssetManager shadowOf(AssetManager instance) {
52724f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz        return (ShadowAssetManager) Robolectric.shadowOf_(instance);
52824f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz    }
52924f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz
530b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBitmap shadowOf(Bitmap other) {
531b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBitmap) Robolectric.shadowOf_(other);
532b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
533b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
534b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBluetoothAdapter shadowOf(BluetoothAdapter other) {
535b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBluetoothAdapter) Robolectric.shadowOf_(other);
536b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
537b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
538b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBluetoothDevice shadowOf(BluetoothDevice other) {
539b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBluetoothDevice) Robolectric.shadowOf_(other);
540b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
541b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
5420d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams    public static ShadowMatrix shadowOf(Matrix other) {
5430d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams        return (ShadowMatrix) Robolectric.shadowOf_(other);
5440d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams    }
5450d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams
546d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams    public static ShadowMotionEvent shadowOf(MotionEvent other) {
547d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams        return (ShadowMotionEvent) Robolectric.shadowOf_(other);
548d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams    }
549d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams
5501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    @SuppressWarnings({"unchecked"})
551433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static <P, R> P shadowOf_(R instance) {
552cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams        return (P) ShadowWrangler.getInstance().shadowOf(instance);
5531fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
55471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams
5550fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    /**
5560fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Runs any background tasks previously queued by {@link android.os.AsyncTask#execute(Object[])}.
557b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * <p/>
5580fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * <p/>
5590fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Note: calling this method does not pause or un-pause the scheduler.
5600fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     */
56171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    public static void runBackgroundTasks() {
5620fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin        getBackgroundScheduler().advanceBy(0);
56371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    }
56471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams
5650fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    /**
5660fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Runs any immediately runnable tasks previously queued on the UI thread,
5670fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * e.g. by {@link Activity#runOnUiThread(Runnable)} or {@link android.os.AsyncTask#onPostExecute(Object)}.
568b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * <p/>
5690fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * <p/>
5700fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Note: calling this method does not pause or un-pause the scheduler.
5710fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     */
57271d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    public static void runUiThreadTasks() {
573a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz        getUiThreadScheduler().advanceBy(0);
57471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    }
575cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
576cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
577bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin     * Sets up an HTTP response to be returned by calls to Apache's {@code HttpClient} implementers.
578cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
579b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param statusCode   the status code of the response
580cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param responseBody the body of the response
581cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
582b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static void addPendingHttpResponse(int statusCode, String responseBody) {
583f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addPendingHttpResponse(statusCode, responseBody);
584cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
585cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
586cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
587bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin     * Sets up an HTTP response to be returned by calls to Apache's {@code HttpClient} implementers.
588cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
589cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param httpResponse the response
590cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
591b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static void addPendingHttpResponse(HttpResponse httpResponse) {
592f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addPendingHttpResponse(httpResponse);
593cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
594cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
595cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
5967cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Accessor to obtain HTTP requests made during the current test in the order in which they were made.
597cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
598cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param index index of the request to retrieve.
599cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @return the requested request.
600cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
601b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static HttpRequest getSentHttpRequest(int index) {
602b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz        return ShadowDefaultRequestDirector.getSentHttpRequest(index);
603cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
604cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
6057cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6067cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Accessor to obtain metadata for an HTTP request made during the current test in the order in which they were made.
6077cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
6087cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param index index of the request to retrieve.
6097cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @return the requested request metadata.
6107cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6117cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static HttpRequestInfo getSentHttpRequestInfo(int index) {
6127cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin        return ShadowDefaultRequestDirector.getSentHttpRequestInfo(index);
6137cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6147cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6157cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6167cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6177cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
618b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param method   method to match.
619b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6207cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6217cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6227cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String method, String uri, HttpResponse response) {
623f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(method, uri, response);
6247cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6257cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6267cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6277cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule with a default method of GET. The response will be returned when the rule is matched.
6287cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
629b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6307cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6317cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6327cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String uri, HttpResponse response) {
633f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(uri, response);
6347cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6357cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6367cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6377cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6387cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
639b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6407cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6417cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6427cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String uri, String response) {
643f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(uri, response);
6447cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6457cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6467cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6477cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6487cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
6497cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param requestMatcher custom {@code RequestMatcher}.
650b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param response       response to return when a match is found.
6517cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
652f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(FakeHttpLayer.RequestMatcher requestMatcher, HttpResponse response) {
653f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(requestMatcher, response);
654f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    }
655f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin
656f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static FakeHttpLayer getFakeHttpLayer() {
6577d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin        return getShadowApplication().getFakeHttpLayer();
6587cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6597cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6607cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6617cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Sets the default http response. This response will be returned if no other rules are matched.
6627cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
6637cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param defaultHttpResponse the {@code HttpResponse} to return.
6647cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6657cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void setDefaultHttpResponse(HttpResponse defaultHttpResponse) {
666f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().setDefaultHttpResponse(defaultHttpResponse);
667b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    }
6685dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
6695dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void pauseLooper(Looper looper) {
6705dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.pauseLooper(looper);
6715dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
6725dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
6735dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void unPauseLooper(Looper looper) {
6745dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.unPauseLooper(looper);
6755dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
6765dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
6775dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void pauseMainLooper() {
6785dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.pauseMainLooper();
6795dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
6805dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
6815dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void unPauseMainLooper() {
6825dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.unPauseMainLooper();
6835dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
6845dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
685a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz    public static Scheduler getUiThreadScheduler() {
686a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz        return shadowOf(Looper.getMainLooper()).getScheduler();
687a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz    }
6887d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin
6890fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    public static Scheduler getBackgroundScheduler() {
6900fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin        return getShadowApplication().getBackgroundScheduler();
6910fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    }
6920fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin
6937d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin    public static ShadowApplication getShadowApplication() {
6947d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin        return shadowOf(Robolectric.application);
6957d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin    }
696c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams
697c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    /**
698c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * Calls {@code performClick()} on a {@code View} after ensuring that it and its ancestors are visible and that it
699c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * is enabled.
700c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     *
701c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @param view the view to click on
702c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @return true if {@code View.OnClickListener}s were found and fired, false otherwise.
703c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @throws RuntimeException if the preconditions are not met.
704c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     */
705c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    public static boolean clickOn(View view) {
706c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        return shadowOf(view).checkedPerformClick();
707c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    }
708c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams
709c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    public static String visualize(View view) {
710c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        Canvas canvas = new Canvas();
711c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        view.draw(canvas);
712c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        return shadowOf(canvas).getDescription();
713c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    }
714c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin
715c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    public static String visualize(Canvas canvas) {
716c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin        return shadowOf(canvas).getDescription();
717c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    }
718c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin
719c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    public static String visualize(Bitmap bitmap) {
720c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin        return shadowOf(bitmap).getDescription();
721c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    }
7220b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher}
723