Robolectric.java revision ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11b
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric;
20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
3ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport android.app.*;
41fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.appwidget.AppWidgetManager;
5b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williamsimport android.bluetooth.BluetoothAdapter;
6b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williamsimport android.bluetooth.BluetoothDevice;
79893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.content.ContentValues;
81fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Context;
91fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.ContextWrapper;
101fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.Intent;
1170a3ec81f0bda52d8388facf562a80e2d16ac96fGonçalo Silvaimport android.content.res.AssetManager;
12cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphreyimport android.content.res.Configuration;
131fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.content.res.Resources;
14ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vrankenimport android.database.sqlite.SQLiteClosable;
15b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesiimport android.database.sqlite.SQLiteCursor;
169893f7266e7dcc1332743887045bd69991441421Christian Williamsimport android.database.sqlite.SQLiteDatabase;
1728dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesiimport android.database.sqlite.SQLiteOpenHelper;
18ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vrankenimport android.database.sqlite.SQLiteProgram;
193a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesiimport android.database.sqlite.SQLiteQueryBuilder;
20bdb2b1d336367115dee931221ea77fe1833607daChris Van Vrankenimport android.database.sqlite.SQLiteStatement;
21ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport android.graphics.*;
221fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.BitmapDrawable;
23a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultzimport android.graphics.drawable.ColorDrawable;
241fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.graphics.drawable.Drawable;
2531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.hardware.Camera;
2606abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richardimport android.location.Geocoder;
271fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.location.LocationManager;
2836a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesiimport android.media.AudioManager;
295480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphreyimport android.media.MediaPlayer;
3031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.media.MediaRecorder;
317581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.ConnectivityManager;
327581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarseimport android.net.NetworkInfo;
33523401082f8da71727f102003baf023e6c356386adriancowhamimport android.net.wifi.WifiManager;
34c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodlesimport android.os.CountDownTimer;
351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Handler;
361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williamsimport android.os.Looper;
3794c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphreyimport android.preference.DialogPreference;
38079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.preference.Preference;
39c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetskyimport android.telephony.TelephonyManager;
40ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport android.view.*;
4186b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodlesimport android.view.animation.AnimationUtils;
420189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphreyimport android.webkit.WebSettings;
436cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultzimport android.webkit.WebView;
44ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport android.widget.*;
45b5d56e95f27d484ad3098ac18867262e7c8826c1Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.bytecode.RobolectricInternals;
46b5d56e95f27d484ad3098ac18867262e7c8826c1Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.bytecode.ShadowWrangler;
4707a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwinimport com.xtremelabs.robolectric.shadows.*;
482cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinimport com.xtremelabs.robolectric.tester.org.apache.http.FakeHttpLayer;
492cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinimport com.xtremelabs.robolectric.tester.org.apache.http.HttpRequestInfo;
502cdde11355e7c249e83a8b7aaabae5977bbc3e49Phil Goodwinimport com.xtremelabs.robolectric.tester.org.apache.http.RequestMatcher;
5171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williamsimport com.xtremelabs.robolectric.util.Scheduler;
526f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sancheimport org.apache.http.Header;
53cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultzimport org.apache.http.HttpRequest;
54cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultzimport org.apache.http.HttpResponse;
55b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultzimport org.apache.http.impl.client.DefaultRequestDirector;
560b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
570b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays;
580b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List;
590b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
60bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin@SuppressWarnings({"UnusedDeclaration"})
61345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric {
628baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard    public static Application application;
638baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard
640b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    public static <T> T newInstanceOf(Class<T> clazz) {
65111e2299b5157f072d9e62406bd3c6fea9036cd4Christian Williams & Phil Goodwin        return RobolectricInternals.newInstanceOf(clazz);
660b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
670b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher
681741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin    public static Object newInstanceOf(String className) {
691741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin        try {
701741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin            Class<?> clazz = Class.forName(className);
711741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin            if (clazz != null) {
721741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin                return newInstanceOf(clazz);
731741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin            }
741741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin        } catch (ClassNotFoundException e) {
751741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin        }
761741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin        return null;
771741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin    }
781741463ed4618ec2b72cbd7764649fd0cca10a40Phil Goodwin
79e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindShadowClass(Class<?> shadowClass) {
80111e2299b5157f072d9e62406bd3c6fea9036cd4Christian Williams & Phil Goodwin        RobolectricInternals.bindShadowClass(shadowClass);
81e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
82e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
83e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static void bindDefaultShadowClasses() {
84638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        bindShadowClasses(getDefaultShadowClasses());
85638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    }
86638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams
87638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams    public static void bindShadowClasses(List<Class<?>> shadowClasses) {
88638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams        for (Class<?> shadowClass : shadowClasses) {
89638a930898ff7ff4d62b8a3028439142af65e4b4Christian Williams            bindShadowClass(shadowClass);
90e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams        }
91e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
92e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
93cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    /**
94cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * Invoke this utility method in tests to reveal which Android api classes and methods are being invoked
95cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * for which there are no shadows or shadow methods. This helps expose which methods are being invoked
96cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * either by a third party library or application code which need new shadow methods to be written. Generates
97cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     * output for the current test only.
98cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz     */
99cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    public static void logMissingInvokedShadowMethods() {
100cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz        ShadowWrangler.getInstance().logMissingInvokedShadowMethods();
101cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz    }
102cedd6ea60db4bf5744077021f20092005bb3d461Tyler Schultz
103e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static List<Class<?>> getDefaultShadowClasses() {
1040b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher        return Arrays.asList(
105c146ad8871a32bbf62aca259ede77d3f9cd07773Tyler Schultz                ShadowAbsoluteLayout.class,
1066bdff425fce6705103662f20370c9b371ccf23adRich Humphrey                ShadowAbsSeekBar.class,
107afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAbsSpinner.class,
1089893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowAbstractCursor.class,
109afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowActivity.class,
1101a9369183084796a080ab7920cf840961a31abd2Chris Van Vranken                ShadowActivityGroup.class,
111afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAdapterView.class,
112afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAddress.class,
113cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey                ShadowAlarmManager.class,
114afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.class,
115afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAlertDialog.ShadowBuilder.class,
11686b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles                ShadowAnimationUtils.class,
117afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowApplication.class,
118afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowAppWidgetManager.class,
119e9c420439254fc0c893e44987db10e1418fff338mylacc                ShadowArrayAdapter.class,
120114296321cba71f8133713306049ce3b411e8563Gonçalo Silva                ShadowAssetManager.class,
12171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams                ShadowAsyncTask.class,
12236a56b1b82e6409c81ccc87ab7148cef105b4517Michael Portuesi                ShadowAudioManager.class,
123afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBaseAdapter.class,
124ae26238c7d01caef84ceddd8ffb42c32306918d6Josh Lauer & Christian Williams                ShadowBitmap.class,
125afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowBitmapDrawable.class,
126b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBitmapFactory.class,
127b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBluetoothAdapter.class,
128b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams                ShadowBluetoothDevice.class,
12975d564ab2b02cbe8a0d8cb33779530f72ea813abChristian Williams & Ryan Richard                ShadowBundle.class,
13031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi                ShadowCamera.class,
13131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi                ShadowCameraParameters.class,
132cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey                ShadowCameraSize.class,
133afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowCanvas.class,
134a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultz                ShadowColorDrawable.class,
135e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams                ShadowColorMatrix.class,
136e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams                ShadowColorMatrixColorFilter.class,
137b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams                ShadowColorStateList.class,
138afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowComponentName.class,
139cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey                ShadowCompoundButton.class,
140cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey                ShadowConfiguration.class,
1417581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse                ShadowConnectivityManager.class,
14220b94927aff24d7bd975d6ee717f1b65da9ee7c1Josh Lauer & Christian Williams                ShadowContentResolver.class,
1439893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowContentValues.class,
144afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContext.class,
145afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowContextWrapper.class,
1461dcccba609fb2036994803ca6d71f9c76e1fe8e9Chee Wong                ShadowContextThemeWrapper.class,
147b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams                ShadowCookieManager.class,
148c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodles                ShadowCountDownTimer.class,
1490dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose                ShadowCursorAdapter.class,
150cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz                ShadowDefaultRequestDirector.class,
151d1eee6c4ec28a6c17455ce5c29efb833f30dd5d0Michael Portuesi                ShadowDisplay.class,
152afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDrawable.class,
153afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowDialog.class,
15494c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphrey                ShadowDialogPreference.class,
155afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowEditText.class,
1569044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian                ShadowExpandableListView.class,
157d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams                ShadowFloatMath.class,
15806abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard                ShadowGeocoder.class,
159afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowGeoPoint.class,
1605be5c864634de9072b89911eab6d0c8d772c9ad3Rich Humphrey                ShadowGridView.class,
161afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowHandler.class,
162afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowImageView.class,
163afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntent.class,
164afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowIntentFilter.class,
165afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowItemizedOverlay.class,
166afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutInflater.class,
167afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLayoutParams.class,
168afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListActivity.class,
169afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowListView.class,
170afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocation.class,
171afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLocationManager.class,
172afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowLooper.class,
173afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapController.class,
174afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapActivity.class,
175afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMapView.class,
1760d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams                ShadowMatrix.class,
1775480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphrey                ShadowMediaPlayer.class,
17876209fe88929d880ac6e008d5a3e6e1e1dd4939aPhil Goodwin                ShadowMediaRecorder.class,
179d3f9a56dffcdd129355351019aef9652cce0d6b2Josh Lauer & Christian Williams                ShadowMediaStore.ShadowImages.ShadowMedia.class,
18076209fe88929d880ac6e008d5a3e6e1e1dd4939aPhil Goodwin                ShadowMenuInflater.class,
181afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowMotionEvent.class,
18207a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin                ShadowNotification.class,
18307a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin                ShadowNotificationManager.class,
1847581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse                ShadowNetworkInfo.class,
185afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowOverlayItem.class,
186afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPaint.class,
1872ed797adb849f96d26ffaae31d68a2a67f56f27bJan Berkel                ShadowPair.class,
188afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPath.class,
189afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPendingIntent.class,
190afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowPoint.class,
191d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams                ShadowPointF.class,
192b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams                ShadowPowerManager.class,
193079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey                ShadowPreference.class,
194e8637c922e4f8e681769d63689accb89e6108056Michael Portuesi                ShadowPreferenceManager.class,
195079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey                ShadowProgressBar.class,
196c5e7ea096261d2e0220a763119aeb58fab47de2eMike Grafton & Tyler Schultz                ShadowRatingBar.class,
197afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRect.class,
198afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowRemoteViews.class,
1990dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose                ShadowResourceCursorAdapter.class,
200afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowResources.class,
201b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams                ShadowResources.ShadowTheme.class,
202b82ccb9a3ef511d607ca5c4238a50d78a6aeaebaRich Humphrey                ShadowSeekBar.class,
203afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowService.class,
204afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.class,
205afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSecure.class,
206afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSettings.ShadowSystem.class,
2070dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose                ShadowSimpleCursorAdapter.class,
208afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowSpannableStringBuilder.class,
209ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken                ShadowSQLiteProgram.class,
210ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken                ShadowSQLiteClosable.class,
2119893f7266e7dcc1332743887045bd69991441421Christian Williams                ShadowSQLiteDatabase.class,
212b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi                ShadowSQLiteCursor.class,
21328dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi                ShadowSQLiteOpenHelper.class,
214bdb2b1d336367115dee931221ea77fe1833607daChris Van Vranken                ShadowSQLiteStatement.class,
2153a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi                ShadowSQLiteQueryBuilder.class,
2167dc1a70de2b28bdf70d887accfb5805f3497bda8Josh Lauer & Christian Williams                ShadowSurfaceView.class,
217c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetsky                ShadowTelephonyManager.class,
218afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextUtils.class,
219afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTextView.class,
220afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowToast.class,
221b613c76c40bffb15fbde84df32365bde3ffdb4c5Christian Williams                ShadowTypedArray.class,
222afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowTypedValue.class,
223237888bb1e926aea523388de5d511a35f38506efPhil Goodwin & Tyler Schultz                ShadowURLSpan.class,
224afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowView.class,
225afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowViewGroup.class,
2260e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams                ShadowViewStub.class,
2270189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey                ShadowWebSettings.class,
2289ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz                ShadowWebView.class,
229afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowWifiManager.class,
230e2f97afa26ab916fbc36ca1bbf18ba507023ab50Christian Williams                ShadowWindow.class,
231afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williams                ShadowZoomButtonsController.class
232adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams        );
2330b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher    }
23490008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher
235345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams    public static void resetStaticState() {
236e6dfaf271dbaf3ac1bb82d953669a56a02fc71d6Phil Goodwin & Tyler Schultz        ShadowWrangler.getInstance().silence();
237345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams        Robolectric.application = new Application();
238d092cebc8c9179d3a138827fd65961b867e2c53fJosh Lauer & Christian Williams        ShadowBitmapFactory.reset();
23990008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher    }
2401fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
2419122a05312e767618ba0545a951df9cab86c8716Christian Williams    public static <T> T directlyOn(T shadowedObject) {
2429122a05312e767618ba0545a951df9cab86c8716Christian Williams        return RobolectricInternals.directlyOn(shadowedObject);
2439122a05312e767618ba0545a951df9cab86c8716Christian Williams    }
2449122a05312e767618ba0545a951df9cab86c8716Christian Williams
245433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDrawable shadowOf(Drawable instance) {
246433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDrawable) shadowOf_(instance);
2471fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2481fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
249433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowToast shadowOf(Toast instance) {
250433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowToast) shadowOf_(instance);
2511fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2521fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
2537581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    public static ShadowNetworkInfo shadowOf(NetworkInfo instance) {
2547581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse        return (ShadowNetworkInfo) shadowOf_(instance);
2557581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    }
2567581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse
2577581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    public static ShadowConnectivityManager shadowOf(ConnectivityManager instance) {
2587581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse        return (ShadowConnectivityManager) shadowOf_(instance);
2597581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse    }
2607581f8ab1d3fb2950ae13fc09a9b1862d1ec3af1Macarse
261523401082f8da71727f102003baf023e6c356386adriancowham    public static ShadowWifiManager shadowOf(WifiManager instance){
262523401082f8da71727f102003baf023e6c356386adriancowham    	return (ShadowWifiManager) shadowOf_(instance);
263523401082f8da71727f102003baf023e6c356386adriancowham    }
264523401082f8da71727f102003baf023e6c356386adriancowham
265433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowBitmapDrawable shadowOf(BitmapDrawable instance) {
266433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowBitmapDrawable) shadowOf_(instance);
2671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2681fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
269433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowZoomButtonsController shadowOf(ZoomButtonsController instance) {
270433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowZoomButtonsController) shadowOf_(instance);
2711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2721fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
273433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListView shadowOf(ListView instance) {
274433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListView) shadowOf_(instance);
2751fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2761fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
277cb122d30b23483c2cec905e74c747e6bc448cfbaPhil Goodwin    public static ShadowExpandableListView shadowOf(ExpandableListView instance) {
278cb122d30b23483c2cec905e74c747e6bc448cfbaPhil Goodwin        return (ShadowExpandableListView) shadowOf_(instance);
2799044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian    }
2809044c45523b0b9da7cfc8e0cc8c5ecf5d3085ee0Cristian
281433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowActivity shadowOf(Activity instance) {
282433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowActivity) shadowOf_(instance);
2831fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2841fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
285433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowContextWrapper shadowOf(ContextWrapper instance) {
286433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowContextWrapper) shadowOf_(instance);
2871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2881fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
289f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static ShadowApplication shadowOf(Application instance) {
290f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        return (ShadowApplication) shadowOf_(instance);
291f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    }
29208f79939304d82b7cfbb80d20b88fbe26eeab7a9Joe Moore and Tyler Schultz
293f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static ShadowContext shadowOf(Context instance) {
294f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        return (ShadowContext) shadowOf_(instance);
2951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
2961fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
297433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPaint shadowOf(Paint instance) {
298433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPaint) shadowOf_(instance);
2991fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3001fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
301433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowPath shadowOf(Path instance) {
302433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowPath) shadowOf_(instance);
3031fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3041fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
305079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public static ShadowPreference shadowOf(Preference instance) {
306079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey        return (ShadowPreference) shadowOf_(instance);
307079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
308079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
309079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public static ShadowProgressBar shadowOf(ProgressBar instance) {
310079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey        return (ShadowProgressBar) shadowOf_(instance);
311079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
312079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
313433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowListActivity shadowOf(ListActivity instance) {
314433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowListActivity) shadowOf_(instance);
3151fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3161fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
317c5e7ea096261d2e0220a763119aeb58fab47de2eMike Grafton & Tyler Schultz    public static ShadowActivityGroup shadowOf(ActivityGroup instance) {
318c5e7ea096261d2e0220a763119aeb58fab47de2eMike Grafton & Tyler Schultz        return (ShadowActivityGroup) shadowOf_(instance);
319c5e7ea096261d2e0220a763119aeb58fab47de2eMike Grafton & Tyler Schultz    }
320c5e7ea096261d2e0220a763119aeb58fab47de2eMike Grafton & Tyler Schultz
321433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowHandler shadowOf(Handler instance) {
322433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowHandler) shadowOf_(instance);
3231fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3241fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
325e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams    public static ShadowColorMatrix shadowOf(ColorMatrix instance) {
326e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams        return (ShadowColorMatrix) shadowOf_(instance);
327e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams    }
328e3bf0c0e84dd3464de0a508f9c03512d23c11bd8Josh Lauer & Christian Williams
329433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowIntent shadowOf(Intent instance) {
330433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowIntent) shadowOf_(instance);
3311fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3321fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
333433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowView shadowOf(View instance) {
334433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowView) shadowOf_(instance);
3351fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3361fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
337a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultz    public static ShadowColorDrawable shadowOf(ColorDrawable instance) {
338a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultz        return (ShadowColorDrawable) shadowOf_(instance);
339a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultz    }
340a075f94a84c6dd3493700d0c752fc545642e44d5Mike Grafton & Tyler Schultz
341433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowViewGroup shadowOf(ViewGroup instance) {
342433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowViewGroup) shadowOf_(instance);
3431fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3441fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
3450189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    public static ShadowWebSettings shadowOf(WebSettings instance) {
3460189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey        return (ShadowWebSettings) shadowOf_(instance);
3470189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey    }
3480189062c055157592d5aa6ef59b26fae6f91dea4Rich Humphrey
3496cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public static ShadowWebView shadowOf(WebView instance) {
3506cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        return (ShadowWebView) shadowOf_(instance);
3516cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
3526cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
353433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAdapterView shadowOf(AdapterView instance) {
354433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAdapterView) shadowOf_(instance);
3551fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3561fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
357433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowTextView shadowOf(TextView instance) {
358433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowTextView) shadowOf_(instance);
3591fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3601fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
361433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowImageView shadowOf(ImageView instance) {
362433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowImageView) shadowOf_(instance);
3631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3641fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
365433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowRemoteViews shadowOf(RemoteViews instance) {
366433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowRemoteViews) shadowOf_(instance);
3671fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3681fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
369433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowDialog shadowOf(Dialog instance) {
370433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowDialog) shadowOf_(instance);
3711fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
37294c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphrey
37394c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphrey    public static ShadowDialogPreference shadowOf(DialogPreference instance) {
37494c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphrey        return (ShadowDialogPreference) shadowOf_(instance);
37594c593173ef0ac64cca724199d6228057e1c8fd8Rich Humphrey    }
3761fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
377b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static ShadowDefaultRequestDirector shadowOf(DefaultRequestDirector instance) {
378cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz        return (ShadowDefaultRequestDirector) shadowOf_(instance);
379c95377d49257364984344908f301574ebe8d4d9cPhil Goodwin & Tyler Schultz    }
380c95377d49257364984344908f301574ebe8d4d9cPhil Goodwin & Tyler Schultz
381433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAlertDialog shadowOf(AlertDialog instance) {
382433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAlertDialog) shadowOf_(instance);
3831fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3841fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
385433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLooper shadowOf(Looper instance) {
386433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLooper) shadowOf_(instance);
3871fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3881fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
389433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowCanvas shadowOf(Canvas instance) {
390433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowCanvas) shadowOf_(instance);
3911fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3921fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
393433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowLocationManager shadowOf(LocationManager instance) {
394433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowLocationManager) shadowOf_(instance);
3951fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
3961fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
397433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowAppWidgetManager shadowOf(AppWidgetManager instance) {
398433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowAppWidgetManager) shadowOf_(instance);
3991fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4001fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
401433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static ShadowResources shadowOf(Resources instance) {
402433b46be67768332f764eab6879e0649993d79e3Christian Williams        return (ShadowResources) shadowOf_(instance);
4031fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
4041fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams
405e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    public static ShadowLayoutInflater shadowOf(LayoutInflater instance) {
40606abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard        return (ShadowLayoutInflater) shadowOf_(instance);
407e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams    }
408adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams
409b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin    public static ShadowMenuInflater shadowOf(MenuInflater instance) {
410b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin        return (ShadowMenuInflater) shadowOf_(instance);
411b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin    }
412b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin
413adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    public static ShadowDisplay shadowOf(Display instance) {
4144a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams        return (ShadowDisplay) shadowOf_(instance);
415adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    }
416adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams
417adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    public static ShadowAudioManager shadowOf(AudioManager instance) {
4184a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams        return (ShadowAudioManager) shadowOf_(instance);
4194a9aa604410e3c8f91158a4caa5700f45a22eb47Christian Williams    }
420e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
42106abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard    public static ShadowGeocoder shadowOf(Geocoder instance) {
42206abdc35948a13a609c6e6c972d6fa19603b7fe9Joe Moore & Ryan Richard        return (ShadowGeocoder) shadowOf_(instance);
423adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams    }
424e7a41c9b39233781c97dd599ff61024f0510e308Christian Williams
425bdb2b1d336367115dee931221ea77fe1833607daChris Van Vranken    public static ShadowSQLiteStatement shadowOf(SQLiteStatement other) {
426bdb2b1d336367115dee931221ea77fe1833607daChris Van Vranken        return (ShadowSQLiteStatement) Robolectric.shadowOf_(other);
427bdb2b1d336367115dee931221ea77fe1833607daChris Van Vranken    }
428bdb2b1d336367115dee931221ea77fe1833607daChris Van Vranken
429ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken    public static ShadowSQLiteProgram shadowOf(SQLiteProgram other) {
430ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken        return (ShadowSQLiteProgram) Robolectric.shadowOf_(other);
431ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken    }
432ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken    public static ShadowSQLiteClosable shadowOf(SQLiteClosable other) {
433ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken        return (ShadowSQLiteClosable) Robolectric.shadowOf_(other);
434ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken    }
435ac32ea1c5b4b7bca81fccd0be4f5a43ae8f2a11bChris Van Vranken
4369893f7266e7dcc1332743887045bd69991441421Christian Williams    public static ShadowSQLiteDatabase shadowOf(SQLiteDatabase other) {
4379893f7266e7dcc1332743887045bd69991441421Christian Williams        return (ShadowSQLiteDatabase) Robolectric.shadowOf_(other);
4389893f7266e7dcc1332743887045bd69991441421Christian Williams    }
439f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
440b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi    public static ShadowSQLiteCursor shadowOf(SQLiteCursor other) {
441b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi        return (ShadowSQLiteCursor) Robolectric.shadowOf_(other);
442b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi    }
4439893f7266e7dcc1332743887045bd69991441421Christian Williams
44428dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi    public static ShadowSQLiteOpenHelper shadowOf(SQLiteOpenHelper other) {
44528dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi        return (ShadowSQLiteOpenHelper) Robolectric.shadowOf_(other);
44628dd1fc86f58b35b79e2fedc13f5b26f600a9a6aMichael Portuesi    }
447f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
4483a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi    public static ShadowSQLiteQueryBuilder shadowOf(SQLiteQueryBuilder other) {
4493a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi        return (ShadowSQLiteQueryBuilder) Robolectric.shadowOf_(other);
4503a99d4817b65b7eb0a9f44486072dbf43fdb2144Michael Portuesi    }
451f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
4529893f7266e7dcc1332743887045bd69991441421Christian Williams    public static ShadowContentValues shadowOf(ContentValues other) {
4539893f7266e7dcc1332743887045bd69991441421Christian Williams        return (ShadowContentValues) Robolectric.shadowOf_(other);
4549893f7266e7dcc1332743887045bd69991441421Christian Williams    }
4559893f7266e7dcc1332743887045bd69991441421Christian Williams
45631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowCamera shadowOf(Camera instance) {
45731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowCamera) shadowOf_(instance);
45831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
459f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
46031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowCameraParameters shadowOf(Camera.Parameters instance) {
46131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowCameraParameters) shadowOf_(instance);
46231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
4639893f7266e7dcc1332743887045bd69991441421Christian Williams
464cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey    public static ShadowCameraSize shadowOf(Camera.Size instance) {
465cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey        return (ShadowCameraSize) shadowOf_(instance);
466cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey    }
46740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
4685480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphrey    public static ShadowMediaPlayer shadowOf(MediaPlayer instance) {
4695480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphrey        return (ShadowMediaPlayer) shadowOf_(instance);
4705480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphrey    }
4715480630a30500f34f6e03ed218d80f5ad843ed87Rich Humphrey
47231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    public static ShadowMediaRecorder shadowOf(MediaRecorder instance) {
47331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi        return (ShadowMediaRecorder) shadowOf_(instance);
47431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi    }
475f96b9a1f17d47e48d1f5f8e29b4ed7ffccc739abPhil Goodwin & Tyler Schultz
47624f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz    public static ShadowAssetManager shadowOf(AssetManager instance) {
47724f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz        return (ShadowAssetManager) Robolectric.shadowOf_(instance);
47824f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz    }
47924f155944b10583afd970905e5dbe0acdfc9e0efPhil Goodwin & Tyler Schultz
480cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey    public static ShadowAlarmManager shadowOf(AlarmManager instance) {
481cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey        return (ShadowAlarmManager) Robolectric.shadowOf_(instance);
482cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey    }
483cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey
48440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public static ShadowConfiguration shadowOf(Configuration instance) {
48540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return (ShadowConfiguration) Robolectric.shadowOf_(instance);
486cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey    }
487cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey
488c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodles    public static ShadowCountDownTimer shadowOf(CountDownTimer instance) {
489c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodles        return (ShadowCountDownTimer) Robolectric.shadowOf_(instance);
490c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodles    }
491c97f858ddc2222e96a6492c5fba30775cfeac4e4Zoodles
492b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBitmap shadowOf(Bitmap other) {
493b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBitmap) Robolectric.shadowOf_(other);
494b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
495b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
496b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBluetoothAdapter shadowOf(BluetoothAdapter other) {
497b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBluetoothAdapter) Robolectric.shadowOf_(other);
498b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
499b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
500b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    public static ShadowBluetoothDevice shadowOf(BluetoothDevice other) {
501b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams        return (ShadowBluetoothDevice) Robolectric.shadowOf_(other);
502b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams    }
503b01474a3329222965d31068f5c33e59c6e6aa6a4Josh Lauer & Christian Williams
5040d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams    public static ShadowMatrix shadowOf(Matrix other) {
5050d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams        return (ShadowMatrix) Robolectric.shadowOf_(other);
5060d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams    }
5070d21afe8a769457a7c6691bd8418a73aafb46beaJosh Lauer & Christian Williams
508d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams    public static ShadowMotionEvent shadowOf(MotionEvent other) {
509d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams        return (ShadowMotionEvent) Robolectric.shadowOf_(other);
510d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams    }
511d4e5d32b81cae2114f66739beaac6fe1ceeead0dJosh Lauer & Christian Williams
51207a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin    public static ShadowNotificationManager shadowOf(NotificationManager other) {
51307a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin        return (ShadowNotificationManager) Robolectric.shadowOf_(other);
51407a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin    }
51507a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin
51607a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin    public static ShadowNotification shadowOf(Notification other) {
51707a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin        return (ShadowNotification) Robolectric.shadowOf_(other);
51807a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin    }
51907a3254138fdfe62b70c194b458879c51bea72b4Phil Goodwin
5206bdff425fce6705103662f20370c9b371ccf23adRich Humphrey    public static ShadowAbsSeekBar shadowOf(AbsSeekBar instance) {
5216bdff425fce6705103662f20370c9b371ccf23adRich Humphrey        return (ShadowAbsSeekBar) shadowOf_(instance);
5226bdff425fce6705103662f20370c9b371ccf23adRich Humphrey    }
5236bdff425fce6705103662f20370c9b371ccf23adRich Humphrey
524f87e94db052e8cf78eed7b08de5baa2551f4a134sorack    public static ShadowRatingBar shadowOf(RatingBar instance) {
525f87e94db052e8cf78eed7b08de5baa2551f4a134sorack        return (ShadowRatingBar) shadowOf_(instance);
526f87e94db052e8cf78eed7b08de5baa2551f4a134sorack    }
527f87e94db052e8cf78eed7b08de5baa2551f4a134sorack
528b82ccb9a3ef511d607ca5c4238a50d78a6aeaebaRich Humphrey    public static ShadowSeekBar shadowOf(SeekBar instance) {
529b82ccb9a3ef511d607ca5c4238a50d78a6aeaebaRich Humphrey        return (ShadowSeekBar) shadowOf_(instance);
530b82ccb9a3ef511d607ca5c4238a50d78a6aeaebaRich Humphrey    }
531b82ccb9a3ef511d607ca5c4238a50d78a6aeaebaRich Humphrey
53286b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    public static ShadowAnimationUtils shadowOf(AnimationUtils instance) {
53386b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    	return (ShadowAnimationUtils) shadowOf_(instance);
53486b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    }
53586b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles
53686b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    public static ShadowGridView shadowOf(GridView instance) {
53786b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    	return (ShadowGridView) shadowOf_(instance);
53886b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles    }
5394aaebe6f156648e1074f10aadc89f485175c3043Felix H. Dahlke
5404aaebe6f156648e1074f10aadc89f485175c3043Felix H. Dahlke    public static ShadowRect shadowOf(Rect instance) {
5414aaebe6f156648e1074f10aadc89f485175c3043Felix H. Dahlke    	return (ShadowRect) shadowOf_(instance);
5424aaebe6f156648e1074f10aadc89f485175c3043Felix H. Dahlke    }
54386b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles
5440dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    public static ShadowCursorAdapter shadowOf(CursorAdapter instance) {
5450dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    	return (ShadowCursorAdapter) shadowOf_(instance);
5460dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    }
5470dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose
5480dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    public static ShadowResourceCursorAdapter shadowOf(ResourceCursorAdapter instance) {
5490dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    	return (ShadowResourceCursorAdapter) shadowOf_(instance);
5500dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    }
5510dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose
5520dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    public static ShadowSimpleCursorAdapter shadowOf(SimpleCursorAdapter instance) {
5530dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    	return (ShadowSimpleCursorAdapter) shadowOf_(instance);
5540dabe713bf2d78df246d9cff18ed11363491a2acAdam Cohen-Rose    }
55586b7c8791d1e5bff8403ec7fe6b8bdf7b5e05bf9Zoodles
556c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetsky    public static ShadowTelephonyManager shadowOf(TelephonyManager instance) {
557c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetsky    	return (ShadowTelephonyManager) shadowOf_(instance);
558c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetsky    }
559c59af8991708feeca9cdfb028101113a79ef73f4Glenn Jahnke & Lenny Turetsky
5601fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    @SuppressWarnings({"unchecked"})
561433b46be67768332f764eab6879e0649993d79e3Christian Williams    public static <P, R> P shadowOf_(R instance) {
562cee7ff89bfcb83d6cd65e6de9b7cafe2c1caf40aChristian Williams        return (P) ShadowWrangler.getInstance().shadowOf(instance);
5631fbcf7680e415c7b15a08376835385a9226e8d2bChristian Williams    }
56471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams
5650fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    /**
5660fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Runs any background tasks previously queued by {@link android.os.AsyncTask#execute(Object[])}.
567b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * <p/>
5680fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * <p/>
5690fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Note: calling this method does not pause or un-pause the scheduler.
5700fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     */
57171d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    public static void runBackgroundTasks() {
5720fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin        getBackgroundScheduler().advanceBy(0);
57371d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    }
57471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams
5750fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    /**
5760fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Runs any immediately runnable tasks previously queued on the UI thread,
5770fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * e.g. by {@link Activity#runOnUiThread(Runnable)} or {@link android.os.AsyncTask#onPostExecute(Object)}.
578b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * <p/>
5790fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * <p/>
5800fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     * Note: calling this method does not pause or un-pause the scheduler.
5810fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin     */
58271d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    public static void runUiThreadTasks() {
583a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz        getUiThreadScheduler().advanceBy(0);
58471d7c3bcf0400e4b81109dd785187e1a93da3cabChristian Williams    }
585cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
586cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
587bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin     * Sets up an HTTP response to be returned by calls to Apache's {@code HttpClient} implementers.
588cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
589b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param statusCode   the status code of the response
590cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param responseBody the body of the response
591cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
592b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static void addPendingHttpResponse(int statusCode, String responseBody) {
593f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addPendingHttpResponse(statusCode, responseBody);
594cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
595cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
596cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
597bd9537bd36434865d4d25ef332bd388d39a51e34Christian Williams & Phil Goodwin     * Sets up an HTTP response to be returned by calls to Apache's {@code HttpClient} implementers.
598cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
5996f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     * @param statusCode   the status code of the response
6006f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     * @param responseBody the body of the response
6016f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     * @param contentType the contentType of the response
6026f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     */
60339a416145e85c7008805ef493b2d61f66d669158Tyler Schultz    public static void addPendingHttpResponseWithContentType(int statusCode, String responseBody, Header contentType) {
60439a416145e85c7008805ef493b2d61f66d669158Tyler Schultz        getFakeHttpLayer().addPendingHttpResponseWithContentType(statusCode, responseBody, contentType);
6056f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche    }
6066f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche
6076f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche    /**
6086f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     * Sets up an HTTP response to be returned by calls to Apache's {@code HttpClient} implementers.
6096f34840c49a26f54f62ead83509e3f64bed7e0cfNeal Sanche     *
610cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param httpResponse the response
611cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
612b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static void addPendingHttpResponse(HttpResponse httpResponse) {
613f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addPendingHttpResponse(httpResponse);
614cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
615cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
616cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    /**
6177cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Accessor to obtain HTTP requests made during the current test in the order in which they were made.
618cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     *
619cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @param index index of the request to retrieve.
620cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     * @return the requested request.
621cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz     */
622b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    public static HttpRequest getSentHttpRequest(int index) {
623b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz        return ShadowDefaultRequestDirector.getSentHttpRequest(index);
624cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz    }
625cf8438f6160ad20fcd8afc57485b35166bec4a2bPhil Goodwin & Tyler Schultz
6267cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6272399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth     * Accessor to find out if HTTP requests were made during the current test.
6282399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth     *
6292399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth     * @return whether a request was made.
6302399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth     */
6312399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth    public static boolean httpRequestWasMade() {
6322399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth        return getShadowApplication().getFakeHttpLayer().hasRequestInfos();
6332399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth    }
6342399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth
6352399fd1c2f5ff65d329717361082957d309f7314Alexander Murmann & Jesse Toth    /**
6367cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Accessor to obtain metadata for an HTTP request made during the current test in the order in which they were made.
6377cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
6387cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param index index of the request to retrieve.
6397cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @return the requested request metadata.
6407cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6417cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static HttpRequestInfo getSentHttpRequestInfo(int index) {
6427cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin        return ShadowDefaultRequestDirector.getSentHttpRequestInfo(index);
6437cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6447cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6457cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6467cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6477cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
648b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param method   method to match.
649b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6507cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6517cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6527cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String method, String uri, HttpResponse response) {
653f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(method, uri, response);
6547cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6557cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6567cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6577cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule with a default method of GET. The response will be returned when the rule is matched.
6587cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
659b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6607cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6617cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6627cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String uri, HttpResponse response) {
663f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(uri, response);
6647cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6657cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6667cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6677cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6687cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
669b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param uri      uri to match.
6707cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param response response to return when a match is found.
6717cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6727cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void addHttpResponseRule(String uri, String response) {
673f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(uri, response);
6747cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6757cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
6767cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    /**
6777cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * Adds an HTTP response rule. The response will be returned when the rule is matched.
6787cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     *
6797cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     * @param requestMatcher custom {@code RequestMatcher}.
680b539366073ccb47433de7191dbbf519ed4ab2d8fPhil Goodwin     * @param response       response to return when a match is found.
6817cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin     */
6824105051dc6b4e1d67766d1ad886bd3b191f8a68fChristian Williams    public static void addHttpResponseRule(RequestMatcher requestMatcher, HttpResponse response) {
683f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().addHttpResponseRule(requestMatcher, response);
684f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    }
685f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin
686f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin    public static FakeHttpLayer getFakeHttpLayer() {
6877d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin        return getShadowApplication().getFakeHttpLayer();
6887cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    }
6897cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin
690d76cb3959b31f5def82d0476cc114cc5da06a7a1Phil Goodwin    public static void setDefaultHttpResponse(int statusCode, String responseBody) {
691d76cb3959b31f5def82d0476cc114cc5da06a7a1Phil Goodwin        getFakeHttpLayer().setDefaultHttpResponse(statusCode, responseBody);
692d76cb3959b31f5def82d0476cc114cc5da06a7a1Phil Goodwin    }
693d76cb3959b31f5def82d0476cc114cc5da06a7a1Phil Goodwin
6947cf93e04b5b478b64f757a4b86ed75e28ae612c1Christian Williams & Phil Goodwin    public static void setDefaultHttpResponse(HttpResponse defaultHttpResponse) {
695f91a118112ae13d39251dd3c09f1d85d33283ba1Christian Williams & Phil Goodwin        getFakeHttpLayer().setDefaultHttpResponse(defaultHttpResponse);
696b2fea8dc6ecf427c1e620148946b6fd83a0bd210Phil Goodwin & Tyler Schultz    }
6975dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
698b539795cdd8f6be1b0b01527905a31faea03242cRob Dickerson    public static void clearHttpResponseRules() {
699b539795cdd8f6be1b0b01527905a31faea03242cRob Dickerson        getFakeHttpLayer().clearHttpResponseRules();
700b539795cdd8f6be1b0b01527905a31faea03242cRob Dickerson    }
701b539795cdd8f6be1b0b01527905a31faea03242cRob Dickerson
7025dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void pauseLooper(Looper looper) {
7035dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.pauseLooper(looper);
7045dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
7055dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
7065dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void unPauseLooper(Looper looper) {
7075dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.unPauseLooper(looper);
7085dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
7095dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
7105dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void pauseMainLooper() {
7115dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.pauseMainLooper();
7125dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
7135dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
7145dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    public static void unPauseMainLooper() {
7155dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz        ShadowLooper.unPauseMainLooper();
7165dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz    }
7175dab156481a91717311fa47ff7e27a54865abfa3Phil Goodwin & Tyler Schultz
718a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz    public static Scheduler getUiThreadScheduler() {
719a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz        return shadowOf(Looper.getMainLooper()).getScheduler();
720a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz    }
7217d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin
7220fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    public static Scheduler getBackgroundScheduler() {
7230fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin        return getShadowApplication().getBackgroundScheduler();
7240fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin    }
7250fe1965a36c508fb5b9fa4c8d0caa2d30540f2ccChristian Williams & Phil Goodwin
7267d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin    public static ShadowApplication getShadowApplication() {
7277d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin        return shadowOf(Robolectric.application);
7287d446513cda09628ec24023cfdebeca847700b52Christian Williams & Phil Goodwin    }
729c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams
730c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    /**
731c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * Calls {@code performClick()} on a {@code View} after ensuring that it and its ancestors are visible and that it
732c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * is enabled.
733c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     *
734c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @param view the view to click on
735c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @return true if {@code View.OnClickListener}s were found and fired, false otherwise.
736c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     * @throws RuntimeException if the preconditions are not met.
737c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams     */
738c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    public static boolean clickOn(View view) {
739c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        return shadowOf(view).checkedPerformClick();
740c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    }
741c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams
742c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    public static String visualize(View view) {
743c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        Canvas canvas = new Canvas();
744c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        view.draw(canvas);
745c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams        return shadowOf(canvas).getDescription();
746c0ff00024bd89540c9a5bac5c88b4da4b38f0456Josh Lauer & Christian Williams    }
747c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin
748c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    public static String visualize(Canvas canvas) {
749c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin        return shadowOf(canvas).getDescription();
750c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    }
751c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin
752c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    public static String visualize(Bitmap bitmap) {
753c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin        return shadowOf(bitmap).getDescription();
754c80983d2a778c62de05423980ba943217e2275bcChristian Williams & Phil Goodwin    }
7550b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher}
756