Robolectric.java revision 345fb6b77303f0d3c98cf748fefa0136183bdc79
1345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspackage com.xtremelabs.robolectric; 20b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 38baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport android.app.Application; 4a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.fakes.*; 5a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzimport com.xtremelabs.robolectric.view.TestSharedPreferences; 60b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 70b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.Constructor; 80b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.lang.reflect.InvocationTargetException; 90b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.Arrays; 100b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport java.util.List; 110b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 12345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamspublic class Robolectric { 138baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public static Application application; 148baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 150b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher public static <T> T newInstanceOf(Class<T> clazz) { 160b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher try { 170b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher Constructor<T> defaultConstructor = clazz.getDeclaredConstructor(); 180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher defaultConstructor.setAccessible(true); 190b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return defaultConstructor.newInstance(); 200b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InstantiationException e) { 210b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 220b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (IllegalAccessException e) { 230b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 240b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (NoSuchMethodException e) { 250b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 260b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } catch (InvocationTargetException e) { 270b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher throw new RuntimeException(e); 280b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 290b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 300b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher 310b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher public static List<Class<?>> getGenericProxies() { 320b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher return Arrays.asList( 330b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeAbsSpinner.class, 340b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeActivity.class, 350b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeAdapterView.class, 36abde7367c1c6a322c18803941e9118b1daea35fbChristian Williams FakeAddress.class, 378baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeAlertDialog.class, 388baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeAlertDialog.FakeBuilder.class, 398baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeApplication.class, 4090651a8499bcc859bd5c88a56a1d76c584e6bdfbChristian Williams & Ryan Richard FakeAppWidgetManager.class, 417e59ae318f1fe609017d9f92f0ae2d55cf881d29Ian Fisher & Ryan Richard FakeBaseAdapter.class, 42f1e19869f68b5b04688cc9701c3e2bf73cd35f76Ryan Richard FakeBitmapDrawable.class, 4356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard FakeCanvas.class, 44ba8b98937b07e341237239fe68d04672b6d200c1Christian Williams & Tyler Schultz FakeCompoundButton.class, 456fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard FakeComponentName.class, 469bf5074277d848a2a5e62d1e5afd7bc9a26cab8eChristian Williams FakeContext.class, 470b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeContextWrapper.class, 48f1e19869f68b5b04688cc9701c3e2bf73cd35f76Ryan Richard FakeDrawable.class, 49ba56737f9755348a512c33d004aa32fcb739474eChristian Williams & Tyler Schultz FakeDialog.class, 50abde7367c1c6a322c18803941e9118b1daea35fbChristian Williams FakeEditText.class, 510b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeGeoPoint.class, 520b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeHandler.class, 5356a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard FakeImageView.class, 540b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeIntent.class, 554cedbc6959d784ba9cb59e0e7f4e59460f3d5075Christian Williams & Ryan Richard FakeIntentFilter.class, 560b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeItemizedOverlay.class, 5786335af816f048e32aad504aed0af63a73097a5fChristian Williams & Ryan Richard FakeLayoutInflater.class, 58e8f58f6eb808b49b6e8e0b6beca09bfd7cf8666bChristian Williams & Ryan Richard FakeLayoutParams.class, 59abde7367c1c6a322c18803941e9118b1daea35fbChristian Williams FakeListActivity.class, 600b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeListView.class, 611d9f4919935ddc729e248df65ba6365f337eec42Christian Williams & Ryan Richard FakeLocation.class, 628baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeLocationManager.class, 630b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeLooper.class, 640b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeMapController.class, 650b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeMapActivity.class, 660b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeMapView.class, 67315e61dd716c47d1f4daef379c559d362ae22deeTyler Schultz FakeMotionEvent.class, 680b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeOverlayItem.class, 6956a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard FakePaint.class, 7056a2a9db15f97a56b5eacef4645bc8ba8790ba6cChee Wong & Ryan Richard FakePath.class, 716fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard FakePendingIntent.class, 7248d362f6d040992990b0130057fa25748bea16cfChristian Williams & Ryan Richard FakePoint.class, 73abde7367c1c6a322c18803941e9118b1daea35fbChristian Williams FakeRect.class, 7490651a8499bcc859bd5c88a56a1d76c584e6bdfbChristian Williams & Ryan Richard FakeRemoteViews.class, 75b63effe7b28319e0430f0baa9b8d1b8ddd3ff307Christian Williams & Phil Goodwin FakeResources.class, 766fb1776c3dd0820074e31a750d991ce69a0597d2Christian Williams & Ryan Richard FakeService.class, 778baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeSettings.class, 788baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeSettings.FakeSecure.class, 798baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard FakeSettings.FakeSystem.class, 80e8f58f6eb808b49b6e8e0b6beca09bfd7cf8666bChristian Williams & Ryan Richard FakeSpannableStringBuilder.class, 813a15df058f1e3fd7fbff5c3b17126249f1ed909aChristian Williams & Ryan Richard FakeTextUtils.class, 820b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeTextView.class, 8390008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher FakeToast.class, 84bc13a3d997b9ff39a55543d59d75231d90f8fca3Joe Moore & Ryan Richard FakeTypedValue.class, 850b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher FakeView.class, 8671eec9cd1f7346c359a96fd714c5c6c41ead790fRyan Richard FakeViewGroup.class, 8783628c488feafc9655efb44de601004cf52ed0c7Christian Williams & Phil Goodwin FakeWifiManager.class, 8871eec9cd1f7346c359a96fd714c5c6c41ead790fRyan Richard FakeZoomButtonsController.class 8971eec9cd1f7346c359a96fd714c5c6c41ead790fRyan Richard ); 900b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher } 9190008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher 92345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams public static void resetStaticState() { 93345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams Robolectric.application = new Application(); 9490008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher TestSharedPreferences.reset(); 9590008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher FakeToast.reset(); 96f11a21b57608f0585bd3c8f7ee29c6ed35dcdb88Ian Fisher & Tyler Schultz FakeAlertDialog.reset(); 97f11a21b57608f0585bd3c8f7ee29c6ed35dcdb88Ian Fisher & Tyler Schultz FakeDialog.reset(); 98abde7367c1c6a322c18803941e9118b1daea35fbChristian Williams FakeLooper.resetAll(); 9990008046fcb6aac20be2df7a0aa07129f6f0d62bIan Fisher } 1000b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher} 101