Robolectric.java revision 114296321cba71f8133713306049ce3b411e8563
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric; 20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 31fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.app.*; 41fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.appwidget.AppWidgetManager; 59893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.content.ContentValues; 61fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Context; 71fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.ContextWrapper; 81fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Intent; 9114296321cba71f8133713306049ce3b411e8563Gonçalo Silvaimport android.content.res.AssetManager; 101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources; 11b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesiimport android.database.sqlite.SQLiteCursor; 129893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.database.sqlite.SQLiteDatabase; 1328dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesiimport android.database.sqlite.SQLiteOpenHelper; 143a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesiimport android.database.sqlite.SQLiteQueryBuilder; 151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Canvas; 161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Paint; 171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Path; 181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable; 191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable; 2006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richardimport android.location.Geocoder; 211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager; 2236a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesiimport android.media.AudioManager; 237581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager; 247581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo; 251fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler; 261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper; 27e8637c922e4f8e681769d63689accb89e6108056Michael Portuesiimport android.view.Display; 28e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport android.view.LayoutInflater; 291fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.View; 301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.ViewGroup; 316cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultzimport android.webkit.WebView; 321fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.widget.*; 331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.GeoPoint; 341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.ItemizedOverlay; 351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapController; 361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapView; 3733873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzimport com.xtremelabs.robolectric.shadows.*; 38e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport com.xtremelabs.robolectric.util.Implements; 3971d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williamsimport com.xtremelabs.robolectric.util.Scheduler; 40a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.view.TestSharedPreferences; 410b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 420b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.Constructor; 430b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.InvocationTargetException; 440b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays; 450b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List; 460b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 47345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric { 488baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public static Application application; 4971d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static Scheduler backgroundScheduler; 5071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static Scheduler uiThreadScheduler; 518baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 520b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher public static <T> T newInstanceOf(Class<T> clazz) { 530b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher try { 540b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher Constructor<T> defaultConstructor = clazz.getDeclaredConstructor(); 550b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher defaultConstructor.setAccessible(true); 560b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return defaultConstructor.newInstance(); 570b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InstantiationException e) { 580b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 590b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (IllegalAccessException e) { 600b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 610b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (NoSuchMethodException e) { 620b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 630b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InvocationTargetException e) { 640b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 650b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 660b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 670b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 68e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> realClass, Class<?> shadowClass) { 69cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams ShadowWrangler.getInstance().bindShadowClass(realClass, shadowClass); 70e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 71e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 72e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> shadowClass) { 73e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams Implements realClass = shadowClass.getAnnotation(Implements.class); 7409aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams if (realClass == null) { 7509aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams throw new IllegalArgumentException(shadowClass + " is not annotated with @Implements"); 7609aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams } 77673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz 78673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz try { 79673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz bindShadowClass(realClass.value(), shadowClass); 80673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz } catch (TypeNotPresentException ignored) { 81673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz //this allows users of the robolectric.jar file to use the non-Google APIs version of the api 82673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz } 83e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 84e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 85e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindDefaultShadowClasses() { 86638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClasses(getDefaultShadowClasses()); 87638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams } 88638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams 89638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams public static void bindShadowClasses(List<Class<?>> shadowClasses) { 90638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams for (Class<?> shadowClass : shadowClasses) { 91638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClass(shadowClass); 92e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 93e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 94e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 95cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz /** 96cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * Invoke this utility method in tests to reveal which Android api classes and methods are being invoked 97cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * for which there are no shadows or shadow methods. This helps expose which methods are being invoked 98cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * either by a third party library or application code which need new shadow methods to be written. Generates 99cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * output for the current test only. 100cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz */ 101cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz public static void logMissingInvokedShadowMethods() { 102cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz ShadowWrangler.getInstance().logMissingInvokedShadowMethods(); 103cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz } 104cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz 105867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz /** 106867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * Calls {@code performClick()} on a {@code View} after ensuring that it and its ancestors are visible and that it 107867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * is enabled. 108867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * 109867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @param view the view to click on 110867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @return true if {@code View.OnClickListener}s were found and fired, false otherwise. 111867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @throws RuntimeException if the preconditions are not met. 112867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz */ 113867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz public static boolean clickOn(View view) { 114867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz return shadowOf(view).checkedPerformClick(); 115867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz } 116867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz 117e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static List<Class<?>> getDefaultShadowClasses() { 1180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return Arrays.asList( 119c146ad8871a32bbf62aca259ede77d3f9cd07773Tyler Schultz ShadowAbsoluteLayout.class, 120afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAbsSpinner.class, 1219893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowAbstractCursor.class, 122afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowActivity.class, 123afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAdapterView.class, 124afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAddress.class, 125afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.class, 126afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.ShadowBuilder.class, 127afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowApplication.class, 128afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAppWidgetManager.class, 129114296321cba71f8133713306049ce3b411e8563Gonçalo Silva ShadowAssetManager.class, 13071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams ShadowAsyncTask.class, 13136a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesi ShadowAudioManager.class, 132afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBaseAdapter.class, 133afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBitmapDrawable.class, 13475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard ShadowBundle.class, 135afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCanvas.class, 136afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCompoundButton.class, 137afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowComponentName.class, 1387581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowConnectivityManager.class, 1399893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowContentValues.class, 140afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContext.class, 141afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContextWrapper.class, 1421dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong ShadowContextThemeWrapper.class, 143d1eee6c4ec28a6c17455ce5c29efb833f30dd5d0Michael Portuesi ShadowDisplay.class, 144afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDrawable.class, 145afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.class, 146afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowEditText.class, 14706abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard ShadowGeocoder.class, 148afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowGeoPoint.class, 149afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowHandler.class, 150afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowImageView.class, 151afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntent.class, 152afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntentFilter.class, 153afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowItemizedOverlay.class, 154afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutInflater.class, 155afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutParams.class, 156afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListActivity.class, 157afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListView.class, 158afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocation.class, 159afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocationManager.class, 160afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.class, 161afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapController.class, 162afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapActivity.class, 163afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapView.class, 164afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMotionEvent.class, 1657581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowNetworkInfo.class, 166afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowOverlayItem.class, 167afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPaint.class, 168afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPath.class, 169afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPendingIntent.class, 170afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPoint.class, 171e8637c922e4f8e681769d63689accb89e6108056Michael Portuesi ShadowPreferenceManager.class, 172afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRect.class, 173afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRemoteViews.class, 174afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowResources.class, 175afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowService.class, 176afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.class, 177afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSecure.class, 178afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSystem.class, 179afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSpannableStringBuilder.class, 1809893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowSQLiteDatabase.class, 181b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi ShadowSQLiteCursor.class, 18228dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi ShadowSQLiteOpenHelper.class, 1833a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi ShadowSQLiteQueryBuilder.class, 184afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextUtils.class, 185afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextView.class, 186afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.class, 187afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTypedValue.class, 188afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowView.class, 189afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowViewGroup.class, 1909ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz ShadowWebView.class, 191afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowWifiManager.class, 192afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowZoomButtonsController.class 193adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams ); 1940b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 19590008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher 196345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams public static void resetStaticState() { 197e6dfaf271dbaf3ac1bb82d953669a56a02fc71d6Phil Goodwin & Tyler Schultz ShadowWrangler.getInstance().silence(); 198345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams Robolectric.application = new Application(); 19971d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams Robolectric.backgroundScheduler = new Scheduler(); 20071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams Robolectric.uiThreadScheduler = new Scheduler(); 20190008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher TestSharedPreferences.reset(); 202afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.reset(); 203afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.reset(); 204afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.reset(); 205afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.resetAll(); 20690008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher } 2071fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2089122a05312e767618ba0545a951df9cab86c8716Christian Williams public static <T> T directlyOn(T shadowedObject) { 2099122a05312e767618ba0545a951df9cab86c8716Christian Williams return RobolectricInternals.directlyOn(shadowedObject); 2109122a05312e767618ba0545a951df9cab86c8716Christian Williams } 2119122a05312e767618ba0545a951df9cab86c8716Christian Williams 212433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDrawable shadowOf(Drawable instance) { 213433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDrawable) shadowOf_(instance); 2141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 216433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowToast shadowOf(Toast instance) { 217433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowToast) shadowOf_(instance); 2181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2207581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowNetworkInfo shadowOf(NetworkInfo instance) { 2217581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowNetworkInfo) shadowOf_(instance); 2227581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2237581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 2247581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) { 2257581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowConnectivityManager) shadowOf_(instance); 2267581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2277581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 228433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) { 229433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowBitmapDrawable) shadowOf_(instance); 2301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 232433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) { 233433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowZoomButtonsController) shadowOf_(instance); 2341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 236433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowGeoPoint shadowOf(GeoPoint instance) { 237433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowGeoPoint) shadowOf_(instance); 2381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2391fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 240433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapView shadowOf(MapView instance) { 241433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapView) shadowOf_(instance); 2421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 244433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapController shadowOf(MapController instance) { 245433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapController) shadowOf_(instance); 2461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 248433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowItemizedOverlay shadowOf(ItemizedOverlay instance) { 249433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowItemizedOverlay) shadowOf_(instance); 2501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2511fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 252433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListView shadowOf(ListView instance) { 253433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListView) shadowOf_(instance); 2541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 256433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowActivity shadowOf(Activity instance) { 257433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowActivity) shadowOf_(instance); 2581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 260433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(ContextWrapper instance) { 261433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 2621fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 264433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(Context instance) { 265433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 2661fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 268433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPaint shadowOf(Paint instance) { 269433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPaint) shadowOf_(instance); 2701fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 272433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPath shadowOf(Path instance) { 273433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPath) shadowOf_(instance); 2741fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 276433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListActivity shadowOf(ListActivity instance) { 277433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListActivity) shadowOf_(instance); 2781fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2791fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 280433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowHandler shadowOf(Handler instance) { 281433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowHandler) shadowOf_(instance); 2821fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2831fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 284433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowIntent shadowOf(Intent instance) { 285433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowIntent) shadowOf_(instance); 2861fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 288433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowView shadowOf(View instance) { 289433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowView) shadowOf_(instance); 2901fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2911fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 292433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowViewGroup shadowOf(ViewGroup instance) { 293433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowViewGroup) shadowOf_(instance); 2941fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2966cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz public static ShadowWebView shadowOf(WebView instance) { 2976cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz return (ShadowWebView) shadowOf_(instance); 2986cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz } 2996cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz 300433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAdapterView shadowOf(AdapterView instance) { 301433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAdapterView) shadowOf_(instance); 3021fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3031fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 304433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowTextView shadowOf(TextView instance) { 305433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowTextView) shadowOf_(instance); 3061fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3071fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 308433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowImageView shadowOf(ImageView instance) { 309433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowImageView) shadowOf_(instance); 3101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3111fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 312433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowRemoteViews shadowOf(RemoteViews instance) { 313433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowRemoteViews) shadowOf_(instance); 3141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 316433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDialog shadowOf(Dialog instance) { 317433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDialog) shadowOf_(instance); 3181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3191fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 320433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAlertDialog shadowOf(AlertDialog instance) { 321433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAlertDialog) shadowOf_(instance); 3221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 324433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLooper shadowOf(Looper instance) { 325433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLooper) shadowOf_(instance); 3261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 328433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowCanvas shadowOf(Canvas instance) { 329433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowCanvas) shadowOf_(instance); 3301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 332433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLocationManager shadowOf(LocationManager instance) { 333433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLocationManager) shadowOf_(instance); 3341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 336433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) { 337433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAppWidgetManager) shadowOf_(instance); 3381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3391fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 340433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowResources shadowOf(Resources instance) { 341433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowResources) shadowOf_(instance); 3421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 344e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static ShadowLayoutInflater shadowOf(LayoutInflater instance) { 34506abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowLayoutInflater) shadowOf_(instance); 346e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 347adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 348adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowDisplay shadowOf(Display instance) { 3494a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowDisplay) shadowOf_(instance); 350adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 351adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 352adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowAudioManager shadowOf(AudioManager instance) { 3534a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowAudioManager) shadowOf_(instance); 3544a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams } 355e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 35606abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard public static ShadowGeocoder shadowOf(Geocoder instance) { 35706abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowGeocoder) shadowOf_(instance); 358adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 359e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 3609893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowSQLiteDatabase shadowOf(SQLiteDatabase other) { 3619893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowSQLiteDatabase) Robolectric.shadowOf_(other); 3629893f7266e7dcc1332743887045bd69991441421Christian Williams } 363b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi 364b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi public static ShadowSQLiteCursor shadowOf(SQLiteCursor other) { 365b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi return (ShadowSQLiteCursor) Robolectric.shadowOf_(other); 366b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi } 3679893f7266e7dcc1332743887045bd69991441421Christian Williams 36828dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi public static ShadowSQLiteOpenHelper shadowOf(SQLiteOpenHelper other) { 36928dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi return (ShadowSQLiteOpenHelper) Robolectric.shadowOf_(other); 37028dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi } 37128dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi 3723a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi public static ShadowSQLiteQueryBuilder shadowOf(SQLiteQueryBuilder other) { 3733a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi return (ShadowSQLiteQueryBuilder) Robolectric.shadowOf_(other); 3743a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi } 3753a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi 3769893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowContentValues shadowOf(ContentValues other) { 3779893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowContentValues) Robolectric.shadowOf_(other); 3789893f7266e7dcc1332743887045bd69991441421Christian Williams } 379114296321cba71f8133713306049ce3b411e8563Gonçalo Silva 380114296321cba71f8133713306049ce3b411e8563Gonçalo Silva public static ShadowAssetManager shadowOf(AssetManager instance) { 381114296321cba71f8133713306049ce3b411e8563Gonçalo Silva return (ShadowAssetManager) Robolectric.shadowOf_(instance); 382114296321cba71f8133713306049ce3b411e8563Gonçalo Silva } 3839893f7266e7dcc1332743887045bd69991441421Christian Williams 3841fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams @SuppressWarnings({"unchecked"}) 385433b46be67768332f764eab6879e0649993d79e3Christian Williams public static <P, R> P shadowOf_(R instance) { 386cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams return (P) ShadowWrangler.getInstance().shadowOf(instance); 3871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 38871d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams 38971d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static void runBackgroundTasks() { 39071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams backgroundScheduler.tick(0); 39171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams } 39271d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams 39371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static void runUiThreadTasks() { 39471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams uiThreadScheduler.tick(0); 39571d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams } 3960b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher} 397