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