Robolectric.java revision 7581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric; 20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 37581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport java.lang.reflect.Constructor; 47581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport java.lang.reflect.InvocationTargetException; 57581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport java.util.Arrays; 67581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport java.util.List; 77581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 87581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.app.Activity; 97581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.app.AlertDialog; 107581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.app.Application; 117581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.app.Dialog; 127581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.app.ListActivity; 131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.appwidget.AppWidgetManager; 149893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.content.ContentValues; 151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Context; 161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.ContextWrapper; 171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Intent; 181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources; 199893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.database.sqlite.SQLiteDatabase; 201fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Canvas; 211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Paint; 221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Path; 231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable; 241fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable; 2506abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richardimport android.location.Geocoder; 261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager; 2736a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesiimport android.media.AudioManager; 287581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager; 297581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo; 301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler; 311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper; 32e8637c922e4f8e681769d63689accb89e6108056Michael Portuesiimport android.view.Display; 33e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport android.view.LayoutInflater; 341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.View; 351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.ViewGroup; 367581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.AdapterView; 377581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.ImageView; 387581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.ListView; 397581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.RemoteViews; 407581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.TextView; 417581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.Toast; 427581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.widget.ZoomButtonsController; 437581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 441fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.GeoPoint; 451fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.ItemizedOverlay; 461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapController; 471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapView; 487581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAbsSpinner; 497581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAbstractCursor; 507581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowActivity; 517581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAdapterView; 527581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAddress; 537581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAlertDialog; 547581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAppWidgetManager; 557581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowApplication; 567581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowAudioManager; 577581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowBaseAdapter; 587581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowBitmapDrawable; 597581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowBundle; 607581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowCanvas; 617581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowComponentName; 627581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowCompoundButton; 637581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowConnectivityManager; 647581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowContentValues; 657581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowContext; 667581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowContextThemeWrapper; 677581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowContextWrapper; 687581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowDialog; 697581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowDisplay; 707581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowDrawable; 717581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowEditText; 727581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowGeoPoint; 737581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowGeocoder; 747581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowHandler; 757581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowImageView; 767581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowIntent; 777581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowIntentFilter; 787581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowItemizedOverlay; 797581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowLayoutInflater; 807581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowLayoutParams; 817581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowListActivity; 827581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowListView; 837581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowLocation; 847581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowLocationManager; 857581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowLooper; 867581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowMapActivity; 877581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowMapController; 887581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowMapView; 897581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowMotionEvent; 907581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowNetworkInfo; 917581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowOverlayItem; 927581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowPaint; 937581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowPath; 947581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowPendingIntent; 957581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowPoint; 967581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowPreferenceManager; 977581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowRect; 987581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowRemoteViews; 997581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowResources; 1007581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowSQLiteDatabase; 1017581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowService; 1027581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowSettings; 1037581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowSpannableStringBuilder; 1047581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowTextUtils; 1057581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowTextView; 1067581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowToast; 1077581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowTypedValue; 1087581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowView; 1097581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowViewGroup; 1107581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowWifiManager; 1117581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport com.xtremelabs.robolectric.shadows.ShadowZoomButtonsController; 112e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport com.xtremelabs.robolectric.util.Implements; 113a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.view.TestSharedPreferences; 1140b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 115345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric { 1168baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public static Application application; 1178baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 1180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher public static <T> T newInstanceOf(Class<T> clazz) { 1190b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher try { 1200b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher Constructor<T> defaultConstructor = clazz.getDeclaredConstructor(); 1210b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher defaultConstructor.setAccessible(true); 1220b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return defaultConstructor.newInstance(); 1230b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InstantiationException e) { 1240b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 1250b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (IllegalAccessException e) { 1260b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 1270b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (NoSuchMethodException e) { 1280b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 1290b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InvocationTargetException e) { 1300b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 1310b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 1320b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 1330b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 134e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> realClass, Class<?> shadowClass) { 135cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams ShadowWrangler.getInstance().bindShadowClass(realClass, shadowClass); 136e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 137e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 138e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> shadowClass) { 139e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams Implements realClass = shadowClass.getAnnotation(Implements.class); 14009aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams if (realClass == null) { 14109aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams throw new IllegalArgumentException(shadowClass + " is not annotated with @Implements"); 14209aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams } 143e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams bindShadowClass(realClass.value(), shadowClass); 144e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 145e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 146e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindDefaultShadowClasses() { 147638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClasses(getDefaultShadowClasses()); 148638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams } 149638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams 150638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams public static void bindShadowClasses(List<Class<?>> shadowClasses) { 151638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams for (Class<?> shadowClass : shadowClasses) { 152638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClass(shadowClass); 153e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 154e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 155e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 156cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz /** 157cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * Invoke this utility method in tests to reveal which Android api classes and methods are being invoked 158cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * for which there are no shadows or shadow methods. This helps expose which methods are being invoked 159cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * either by a third party library or application code which need new shadow methods to be written. Generates 160cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * output for the current test only. 161cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz */ 162cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz public static void logMissingInvokedShadowMethods() { 163cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz ShadowWrangler.getInstance().logMissingInvokedShadowMethods(); 164cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz } 165cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz 166e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static List<Class<?>> getDefaultShadowClasses() { 1670b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return Arrays.asList( 168afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAbsSpinner.class, 1699893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowAbstractCursor.class, 170afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowActivity.class, 171afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAdapterView.class, 172afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAddress.class, 173afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.class, 174afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.ShadowBuilder.class, 175afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowApplication.class, 176afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAppWidgetManager.class, 17736a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesi ShadowAudioManager.class, 178afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBaseAdapter.class, 179afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBitmapDrawable.class, 18075d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard ShadowBundle.class, 181afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCanvas.class, 182afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCompoundButton.class, 183afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowComponentName.class, 1847581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowConnectivityManager.class, 1859893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowContentValues.class, 186afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContext.class, 187afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContextWrapper.class, 1881dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong ShadowContextThemeWrapper.class, 189d1eee6c4ec28a6c17455ce5c29efb833f30dd5d0Michael Portuesi ShadowDisplay.class, 190afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDrawable.class, 191afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.class, 192afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowEditText.class, 19306abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard ShadowGeocoder.class, 194afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowGeoPoint.class, 195afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowHandler.class, 196afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowImageView.class, 197afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntent.class, 198afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntentFilter.class, 199afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowItemizedOverlay.class, 200afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutInflater.class, 201afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutParams.class, 202afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListActivity.class, 203afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListView.class, 204afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocation.class, 205afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocationManager.class, 206afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.class, 207afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapController.class, 208afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapActivity.class, 209afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapView.class, 210afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMotionEvent.class, 2117581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowNetworkInfo.class, 212afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowOverlayItem.class, 213afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPaint.class, 214afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPath.class, 215afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPendingIntent.class, 216afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPoint.class, 217e8637c922e4f8e681769d63689accb89e6108056Michael Portuesi ShadowPreferenceManager.class, 218afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRect.class, 219afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRemoteViews.class, 220afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowResources.class, 221afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowService.class, 222afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.class, 223afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSecure.class, 224afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSystem.class, 225afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSpannableStringBuilder.class, 2269893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowSQLiteDatabase.class, 227afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextUtils.class, 228afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextView.class, 229afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.class, 230afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTypedValue.class, 231afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowView.class, 232afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowViewGroup.class, 233afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowWifiManager.class, 234afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowZoomButtonsController.class 235adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams ); 2360b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 23790008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher 238345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams public static void resetStaticState() { 239e6dfaf271dbaf3ac1bb82d953669a56a02fc71d6Phil Goodwin & Tyler Schultz ShadowWrangler.getInstance().silence(); 240345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams Robolectric.application = new Application(); 24190008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher TestSharedPreferences.reset(); 242afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.reset(); 243afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.reset(); 244afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.reset(); 245afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.resetAll(); 24690008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher } 2471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2489122a05312e767618ba0545a951df9cab86c8716Christian Williams public static <T> T directlyOn(T shadowedObject) { 2499122a05312e767618ba0545a951df9cab86c8716Christian Williams return RobolectricInternals.directlyOn(shadowedObject); 2509122a05312e767618ba0545a951df9cab86c8716Christian Williams } 2519122a05312e767618ba0545a951df9cab86c8716Christian Williams 252433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDrawable shadowOf(Drawable instance) { 253433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDrawable) shadowOf_(instance); 2541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 256433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowToast shadowOf(Toast instance) { 257433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowToast) shadowOf_(instance); 2581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2607581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowNetworkInfo shadowOf(NetworkInfo instance) { 2617581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowNetworkInfo) shadowOf_(instance); 2627581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2637581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 2647581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) { 2657581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowConnectivityManager) shadowOf_(instance); 2667581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2677581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 268433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) { 269433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowBitmapDrawable) shadowOf_(instance); 2701fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 272433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) { 273433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowZoomButtonsController) shadowOf_(instance); 2741fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 276433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowGeoPoint shadowOf(GeoPoint instance) { 277433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowGeoPoint) shadowOf_(instance); 2781fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2791fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 280433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapView shadowOf(MapView instance) { 281433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapView) shadowOf_(instance); 2821fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2831fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 284433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapController shadowOf(MapController instance) { 285433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapController) shadowOf_(instance); 2861fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 288433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowItemizedOverlay shadowOf(ItemizedOverlay instance) { 289433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowItemizedOverlay) shadowOf_(instance); 2901fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2911fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 292433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListView shadowOf(ListView instance) { 293433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListView) shadowOf_(instance); 2941fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 296433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowActivity shadowOf(Activity instance) { 297433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowActivity) shadowOf_(instance); 2981fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2991fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 300433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(ContextWrapper instance) { 301433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 3021fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3031fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 304433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(Context instance) { 305433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 3061fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3071fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 308433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPaint shadowOf(Paint instance) { 309433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPaint) shadowOf_(instance); 3101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3111fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 312433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPath shadowOf(Path instance) { 313433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPath) shadowOf_(instance); 3141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 316433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListActivity shadowOf(ListActivity instance) { 317433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListActivity) shadowOf_(instance); 3181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 320433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowHandler shadowOf(Handler instance) { 321433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowHandler) shadowOf_(instance); 3221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 324433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowIntent shadowOf(Intent instance) { 325433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowIntent) shadowOf_(instance); 3261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 328433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowView shadowOf(View instance) { 329433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowView) shadowOf_(instance); 3301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 332433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowViewGroup shadowOf(ViewGroup instance) { 333433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowViewGroup) shadowOf_(instance); 3341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 336433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAdapterView shadowOf(AdapterView instance) { 337433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAdapterView) shadowOf_(instance); 3381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3391fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 340433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowTextView shadowOf(TextView instance) { 341433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowTextView) shadowOf_(instance); 3421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 344433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowImageView shadowOf(ImageView instance) { 345433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowImageView) shadowOf_(instance); 3461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 348433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowRemoteViews shadowOf(RemoteViews instance) { 349433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowRemoteViews) shadowOf_(instance); 3501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3511fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 352433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDialog shadowOf(Dialog instance) { 353433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDialog) shadowOf_(instance); 3541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 356433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAlertDialog shadowOf(AlertDialog instance) { 357433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAlertDialog) shadowOf_(instance); 3581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 360433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLooper shadowOf(Looper instance) { 361433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLooper) shadowOf_(instance); 3621fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 364433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowCanvas shadowOf(Canvas instance) { 365433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowCanvas) shadowOf_(instance); 3661fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 368433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLocationManager shadowOf(LocationManager instance) { 369433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLocationManager) shadowOf_(instance); 3701fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 372433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) { 373433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAppWidgetManager) shadowOf_(instance); 3741fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 376433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowResources shadowOf(Resources instance) { 377433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowResources) shadowOf_(instance); 3781fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3791fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 380e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static ShadowLayoutInflater shadowOf(LayoutInflater instance) { 38106abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowLayoutInflater) shadowOf_(instance); 382e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 383adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 384adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowDisplay shadowOf(Display instance) { 3854a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowDisplay) shadowOf_(instance); 386adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 387adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 388adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowAudioManager shadowOf(AudioManager instance) { 3894a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowAudioManager) shadowOf_(instance); 3904a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams } 391e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 39206abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard public static ShadowGeocoder shadowOf(Geocoder instance) { 39306abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowGeocoder) shadowOf_(instance); 394adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 395e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 3969893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowSQLiteDatabase shadowOf(SQLiteDatabase other) { 3979893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowSQLiteDatabase) Robolectric.shadowOf_(other); 3989893f7266e7dcc1332743887045bd69991441421Christian Williams } 3999893f7266e7dcc1332743887045bd69991441421Christian Williams 4009893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowContentValues shadowOf(ContentValues other) { 4019893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowContentValues) Robolectric.shadowOf_(other); 4029893f7266e7dcc1332743887045bd69991441421Christian Williams } 4039893f7266e7dcc1332743887045bd69991441421Christian Williams 4041fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams @SuppressWarnings({"unchecked"}) 405433b46be67768332f764eab6879e0649993d79e3Christian Williams public static <P, R> P shadowOf_(R instance) { 406cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams return (P) ShadowWrangler.getInstance().shadowOf(instance); 4071fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 4080b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher} 409