Robolectric.java revision 31af8607e2c7da6ba8708f57c4b67b6b4aaad921
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; 91fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources; 10b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesiimport android.database.sqlite.SQLiteCursor; 119893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.database.sqlite.SQLiteDatabase; 1228dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesiimport android.database.sqlite.SQLiteOpenHelper; 133a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesiimport android.database.sqlite.SQLiteQueryBuilder; 141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Canvas; 151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Paint; 161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.Path; 171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable; 181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable; 1931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.hardware.Camera; 2006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richardimport android.location.Geocoder; 211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager; 2236a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesiimport android.media.AudioManager; 2331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.media.MediaRecorder; 247581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager; 257581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo; 261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler; 271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper; 28e8637c922e4f8e681769d63689accb89e6108056Michael Portuesiimport android.view.Display; 29e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport android.view.LayoutInflater; 301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.View; 311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.view.ViewGroup; 326cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultzimport android.webkit.WebView; 331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.widget.*; 341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.GeoPoint; 351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.ItemizedOverlay; 361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapController; 371fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport com.google.android.maps.MapView; 3833873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzimport com.xtremelabs.robolectric.shadows.*; 39e7a41c9b39233781c97dd599ff61024f0510e308Christian Williamsimport com.xtremelabs.robolectric.util.Implements; 4071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williamsimport com.xtremelabs.robolectric.util.Scheduler; 41a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.view.TestSharedPreferences; 420b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 430b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.Constructor; 440b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.InvocationTargetException; 450b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays; 460b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List; 470b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 48345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric { 498baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public static Application application; 5071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static Scheduler backgroundScheduler; 5171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static Scheduler uiThreadScheduler; 528baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 530b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher public static <T> T newInstanceOf(Class<T> clazz) { 540b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher try { 550b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher Constructor<T> defaultConstructor = clazz.getDeclaredConstructor(); 560b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher defaultConstructor.setAccessible(true); 570b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return defaultConstructor.newInstance(); 580b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InstantiationException e) { 590b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 600b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (IllegalAccessException e) { 610b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 620b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (NoSuchMethodException e) { 630b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 640b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InvocationTargetException e) { 650b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 660b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 670b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 680b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 69e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> realClass, Class<?> shadowClass) { 70cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams ShadowWrangler.getInstance().bindShadowClass(realClass, shadowClass); 71e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 72e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 73e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindShadowClass(Class<?> shadowClass) { 74e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams Implements realClass = shadowClass.getAnnotation(Implements.class); 7509aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams if (realClass == null) { 7609aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams throw new IllegalArgumentException(shadowClass + " is not annotated with @Implements"); 7709aec959127fa05c4328b2a7a74d8d36db42e302Christian Williams } 78673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz 79673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz try { 80673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz bindShadowClass(realClass.value(), shadowClass); 81673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz } catch (TypeNotPresentException ignored) { 82673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz //this allows users of the robolectric.jar file to use the non-Google APIs version of the api 83673ea0cf2535a9d4cedac53f1a34cef0510707f9Phil Goodwin & Tyler Schultz } 84e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 85e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 86e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static void bindDefaultShadowClasses() { 87638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClasses(getDefaultShadowClasses()); 88638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams } 89638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams 90638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams public static void bindShadowClasses(List<Class<?>> shadowClasses) { 91638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams for (Class<?> shadowClass : shadowClasses) { 92638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams bindShadowClass(shadowClass); 93e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 94e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 95e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 96cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz /** 97cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * Invoke this utility method in tests to reveal which Android api classes and methods are being invoked 98cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * for which there are no shadows or shadow methods. This helps expose which methods are being invoked 99cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * either by a third party library or application code which need new shadow methods to be written. Generates 100cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz * output for the current test only. 101cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz */ 102cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz public static void logMissingInvokedShadowMethods() { 103cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz ShadowWrangler.getInstance().logMissingInvokedShadowMethods(); 104cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz } 105cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz 106867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz /** 107867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * Calls {@code performClick()} on a {@code View} after ensuring that it and its ancestors are visible and that it 108867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * is enabled. 109867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * 110867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @param view the view to click on 111867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @return true if {@code View.OnClickListener}s were found and fired, false otherwise. 112867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz * @throws RuntimeException if the preconditions are not met. 113867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz */ 114867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz public static boolean clickOn(View view) { 115867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz return shadowOf(view).checkedPerformClick(); 116867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz } 117867bc14e9ed74617c4d2770d122231c29e4a02e3Phil Goodwin & Tyler Schultz 118e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static List<Class<?>> getDefaultShadowClasses() { 1190b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return Arrays.asList( 120c146ad8871a32bbf62aca259ede77d3f9cd07773Tyler Schultz ShadowAbsoluteLayout.class, 121afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAbsSpinner.class, 1229893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowAbstractCursor.class, 123afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowActivity.class, 124afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAdapterView.class, 125afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAddress.class, 126afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.class, 127afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.ShadowBuilder.class, 128afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowApplication.class, 129afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAppWidgetManager.class, 13071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams ShadowAsyncTask.class, 13136a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesi ShadowAudioManager.class, 132afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBaseAdapter.class, 133afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowBitmapDrawable.class, 13475d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard ShadowBundle.class, 13531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi ShadowCamera.class, 13631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi ShadowCameraParameters.class, 137afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCanvas.class, 138afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowCompoundButton.class, 139afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowComponentName.class, 1407581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowConnectivityManager.class, 1419893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowContentValues.class, 142afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContext.class, 143afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowContextWrapper.class, 1441dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong ShadowContextThemeWrapper.class, 145d1eee6c4ec28a6c17455ce5c29efb833f30dd5d0Michael Portuesi ShadowDisplay.class, 146afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDrawable.class, 147afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.class, 148afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowEditText.class, 14906abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard ShadowGeocoder.class, 150afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowGeoPoint.class, 151afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowHandler.class, 152afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowImageView.class, 153afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntent.class, 154afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowIntentFilter.class, 155afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowItemizedOverlay.class, 156afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutInflater.class, 157afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLayoutParams.class, 158afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListActivity.class, 159afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowListView.class, 160afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocation.class, 161afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLocationManager.class, 162afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.class, 163afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapController.class, 164afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapActivity.class, 165afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMapView.class, 16631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi ShadowMediaRecorder.class, 167afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowMotionEvent.class, 1687581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse ShadowNetworkInfo.class, 169afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowOverlayItem.class, 170afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPaint.class, 171afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPath.class, 172afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPendingIntent.class, 173afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowPoint.class, 174e8637c922e4f8e681769d63689accb89e6108056Michael Portuesi ShadowPreferenceManager.class, 175afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRect.class, 176afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowRemoteViews.class, 177afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowResources.class, 178afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowService.class, 179afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.class, 180afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSecure.class, 181afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSettings.ShadowSystem.class, 182afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowSpannableStringBuilder.class, 1839893f7266e7dcc1332743887045bd69991441421Christian Williams ShadowSQLiteDatabase.class, 184b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi ShadowSQLiteCursor.class, 18528dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi ShadowSQLiteOpenHelper.class, 1863a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi ShadowSQLiteQueryBuilder.class, 187afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextUtils.class, 188afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTextView.class, 189afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.class, 190afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowTypedValue.class, 191afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowView.class, 192afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowViewGroup.class, 1939ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz ShadowWebView.class, 194afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowWifiManager.class, 195afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowZoomButtonsController.class 196adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams ); 1970b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 19890008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher 199345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams public static void resetStaticState() { 200e6dfaf271dbaf3ac1bb82d953669a56a02fc71d6Phil Goodwin & Tyler Schultz ShadowWrangler.getInstance().silence(); 201345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams Robolectric.application = new Application(); 20271d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams Robolectric.backgroundScheduler = new Scheduler(); 20371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams Robolectric.uiThreadScheduler = new Scheduler(); 20490008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher TestSharedPreferences.reset(); 205afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowToast.reset(); 206afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowAlertDialog.reset(); 207afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowDialog.reset(); 208afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams ShadowLooper.resetAll(); 20990008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher } 2101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2119122a05312e767618ba0545a951df9cab86c8716Christian Williams public static <T> T directlyOn(T shadowedObject) { 2129122a05312e767618ba0545a951df9cab86c8716Christian Williams return RobolectricInternals.directlyOn(shadowedObject); 2139122a05312e767618ba0545a951df9cab86c8716Christian Williams } 2149122a05312e767618ba0545a951df9cab86c8716Christian Williams 215433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDrawable shadowOf(Drawable instance) { 216433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDrawable) shadowOf_(instance); 2171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 219433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowToast shadowOf(Toast instance) { 220433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowToast) shadowOf_(instance); 2211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2237581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowNetworkInfo shadowOf(NetworkInfo instance) { 2247581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowNetworkInfo) shadowOf_(instance); 2257581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2267581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 2277581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) { 2287581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse return (ShadowConnectivityManager) shadowOf_(instance); 2297581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse } 2307581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse 231433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) { 232433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowBitmapDrawable) shadowOf_(instance); 2331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 235433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) { 236433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowZoomButtonsController) shadowOf_(instance); 2371fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 239433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowGeoPoint shadowOf(GeoPoint instance) { 240433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowGeoPoint) shadowOf_(instance); 2411fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 243433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapView shadowOf(MapView instance) { 244433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapView) shadowOf_(instance); 2451fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 247433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowMapController shadowOf(MapController instance) { 248433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowMapController) shadowOf_(instance); 2491fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2501fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 251433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowItemizedOverlay shadowOf(ItemizedOverlay instance) { 252433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowItemizedOverlay) shadowOf_(instance); 2531fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2541fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 255433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListView shadowOf(ListView instance) { 256433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListView) shadowOf_(instance); 2571fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2581fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 259433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowActivity shadowOf(Activity instance) { 260433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowActivity) shadowOf_(instance); 2611fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2621fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 263433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(ContextWrapper instance) { 264433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 2651fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2661fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 267433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowContextWrapper shadowOf(Context instance) { 268433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowContextWrapper) shadowOf_(instance); 2691fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2701fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 271433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPaint shadowOf(Paint instance) { 272433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPaint) shadowOf_(instance); 2731fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2741fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 275433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowPath shadowOf(Path instance) { 276433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowPath) shadowOf_(instance); 2771fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2781fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 279433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowListActivity shadowOf(ListActivity instance) { 280433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowListActivity) shadowOf_(instance); 2811fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2821fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 283433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowHandler shadowOf(Handler instance) { 284433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowHandler) shadowOf_(instance); 2851fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2861fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 287433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowIntent shadowOf(Intent instance) { 288433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowIntent) shadowOf_(instance); 2891fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2901fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 291433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowView shadowOf(View instance) { 292433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowView) shadowOf_(instance); 2931fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2941fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 295433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowViewGroup shadowOf(ViewGroup instance) { 296433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowViewGroup) shadowOf_(instance); 2971fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 2981fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 2996cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz public static ShadowWebView shadowOf(WebView instance) { 3006cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz return (ShadowWebView) shadowOf_(instance); 3016cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz } 3026cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz 303433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAdapterView shadowOf(AdapterView instance) { 304433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAdapterView) shadowOf_(instance); 3051fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3061fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 307433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowTextView shadowOf(TextView instance) { 308433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowTextView) shadowOf_(instance); 3091fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 311433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowImageView shadowOf(ImageView instance) { 312433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowImageView) shadowOf_(instance); 3131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3141fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 315433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowRemoteViews shadowOf(RemoteViews instance) { 316433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowRemoteViews) shadowOf_(instance); 3171fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3181fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 319433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowDialog shadowOf(Dialog instance) { 320433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowDialog) shadowOf_(instance); 3211fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 323433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAlertDialog shadowOf(AlertDialog instance) { 324433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAlertDialog) shadowOf_(instance); 3251fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3261fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 327433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLooper shadowOf(Looper instance) { 328433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLooper) shadowOf_(instance); 3291fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3301fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 331433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowCanvas shadowOf(Canvas instance) { 332433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowCanvas) shadowOf_(instance); 3331fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3341fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 335433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowLocationManager shadowOf(LocationManager instance) { 336433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowLocationManager) shadowOf_(instance); 3371fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3381fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 339433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) { 340433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowAppWidgetManager) shadowOf_(instance); 3411fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3421fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 343433b46be67768332f764eab6879e0649993d79e3Christian Williams public static ShadowResources shadowOf(Resources instance) { 344433b46be67768332f764eab6879e0649993d79e3Christian Williams return (ShadowResources) shadowOf_(instance); 3451fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 3461fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams 347e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams public static ShadowLayoutInflater shadowOf(LayoutInflater instance) { 34806abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowLayoutInflater) shadowOf_(instance); 349e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams } 350adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 351adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowDisplay shadowOf(Display instance) { 3524a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowDisplay) shadowOf_(instance); 353adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 354adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams 355adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams public static ShadowAudioManager shadowOf(AudioManager instance) { 3564a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams return (ShadowAudioManager) shadowOf_(instance); 3574a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams } 358e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 35906abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard public static ShadowGeocoder shadowOf(Geocoder instance) { 36006abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard return (ShadowGeocoder) shadowOf_(instance); 361adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams } 362e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams 3639893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowSQLiteDatabase shadowOf(SQLiteDatabase other) { 3649893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowSQLiteDatabase) Robolectric.shadowOf_(other); 3659893f7266e7dcc1332743887045bd69991441421Christian Williams } 366b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi 367b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi public static ShadowSQLiteCursor shadowOf(SQLiteCursor other) { 368b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi return (ShadowSQLiteCursor) Robolectric.shadowOf_(other); 369b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi } 3709893f7266e7dcc1332743887045bd69991441421Christian Williams 37128dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi public static ShadowSQLiteOpenHelper shadowOf(SQLiteOpenHelper other) { 37228dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi return (ShadowSQLiteOpenHelper) Robolectric.shadowOf_(other); 37328dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi } 37428dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi 3753a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi public static ShadowSQLiteQueryBuilder shadowOf(SQLiteQueryBuilder other) { 3763a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi return (ShadowSQLiteQueryBuilder) Robolectric.shadowOf_(other); 3773a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi } 3783a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi 3799893f7266e7dcc1332743887045bd69991441421Christian Williams public static ShadowContentValues shadowOf(ContentValues other) { 3809893f7266e7dcc1332743887045bd69991441421Christian Williams return (ShadowContentValues) Robolectric.shadowOf_(other); 3819893f7266e7dcc1332743887045bd69991441421Christian Williams } 38231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 38331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static ShadowCamera shadowOf(Camera instance) { 38431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return (ShadowCamera) shadowOf_(instance); 38531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 38631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 38731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static ShadowCameraParameters shadowOf(Camera.Parameters instance) { 38831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return (ShadowCameraParameters) shadowOf_(instance); 38931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 3909893f7266e7dcc1332743887045bd69991441421Christian Williams 39131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static ShadowMediaRecorder shadowOf(MediaRecorder instance) { 39231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return (ShadowMediaRecorder) shadowOf_(instance); 39331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 39431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 3951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams @SuppressWarnings({"unchecked"}) 396433b46be67768332f764eab6879e0649993d79e3Christian Williams public static <P, R> P shadowOf_(R instance) { 397cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams return (P) ShadowWrangler.getInstance().shadowOf(instance); 3981fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams } 39971d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams 40071d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static void runBackgroundTasks() { 40171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams backgroundScheduler.tick(0); 40271d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams } 40371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams 40471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams public static void runUiThreadTasks() { 40571d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams uiThreadScheduler.tick(0); 40671d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams } 4070b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher} 408