Loading tests/robotests/assets/grandfather_not_implementing_indexable +2 −1 Original line number Diff line number Diff line Loading @@ -88,3 +88,4 @@ com.android.settings.notification.NotificationAccessSettings com.android.settings.notification.ZenModeSettings com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment com.android.settings.applications.ConvertToFbe com.android.settings.localepicker.LocaleListEditor No newline at end of file tests/robotests/src/android/print/PrintServicesLoader.java 0 → 100644 +19 −0 Original line number Diff line number Diff line package android.print; import android.annotation.NonNull; import android.content.Context; import android.content.Loader; import android.printservice.PrintServiceInfo; import com.android.internal.util.Preconditions; import java.util.List; /** * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility. */ public class PrintServicesLoader extends Loader<List<PrintServiceInfo>> { public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context, int selectionFlags) { super(Preconditions.checkNotNull(context)); } } tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java 0 → 100644 +11 −0 Original line number Diff line number Diff line package com.android.internal.app; /** * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility. */ public class LocalePickerWithRegion { public interface LocaleSelectedListener { void onLocaleSelected(LocaleStore.LocaleInfo locale); } } tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java +20 −1 Original line number Diff line number Diff line Loading @@ -15,15 +15,23 @@ */ package com.android.settings; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import org.junit.runners.model.InitializationError; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import org.robolectric.manifest.AndroidManifest; import org.robolectric.res.Fs; import org.robolectric.res.ResourcePath; import org.robolectric.util.ActivityController; import org.robolectric.util.ReflectionHelpers; import java.util.List; import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT; import static org.robolectric.Robolectric.getShadowsAdapter; /** * Custom test runner for the testing of BluetoothPairingDialogs. This is needed because the * default behavior for robolectric is just to grab the resource directory in the target package. Loading Loading @@ -77,4 +85,15 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner { manifest.setPackageName("com.android.settings"); return manifest; } // A simple utility class to start a Settings fragment with an intent. The code here is almost // the same as FragmentTestUtil.startFragment except that it starts an activity with an intent. public static void startSettingsFragment( Fragment fragment, Class<? extends SettingsActivity> activityClass) { Intent intent = new Intent().putExtra(EXTRA_SHOW_FRAGMENT, fragment.getClass().getName()); SettingsActivity activity = ActivityController.of( getShadowsAdapter(), ReflectionHelpers.callConstructor(activityClass), intent) .setup().get(); activity.getFragmentManager().beginTransaction().add(fragment, null).commit(); } } tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line package com.android.settings.applications; import android.os.Looper; import android.os.UserManager; import com.android.settings.Settings; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme; import com.android.settingslib.applications.ApplicationsState; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import static org.mockito.Matchers.any; import static org.mockito.Mockito.when; /** * Tests for {@link ManageApplications}. */ @RunWith(SettingsRobolectricTestRunner.class) // TODO: Consider making the shadow class set global using a robolectric.properties file. @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = { SettingsShadowResources.class, SettingsShadowTheme.class, ShadowDynamicIndexableContentMonitor.class }) public class ManageApplicationsTest { @Mock private ApplicationsState mState; @Mock private ApplicationsState.Session mSession; @Mock private UserManager mUserManager; private Looper mBgLooper; private ManageApplications mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); ReflectionHelpers.setStaticField(ApplicationsState.class, "sInstance", mState); when(mState.newSession(any())).thenReturn(mSession); mBgLooper = Looper.myLooper(); when(mState.getBackgroundLooper()).thenReturn(mBgLooper); mFragment = new ManageApplications(); } @Test public void launchFragment() { SettingsRobolectricTestRunner.startSettingsFragment( mFragment, Settings.ManageApplicationsActivity.class); } } Loading
tests/robotests/assets/grandfather_not_implementing_indexable +2 −1 Original line number Diff line number Diff line Loading @@ -88,3 +88,4 @@ com.android.settings.notification.NotificationAccessSettings com.android.settings.notification.ZenModeSettings com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment com.android.settings.applications.ConvertToFbe com.android.settings.localepicker.LocaleListEditor No newline at end of file
tests/robotests/src/android/print/PrintServicesLoader.java 0 → 100644 +19 −0 Original line number Diff line number Diff line package android.print; import android.annotation.NonNull; import android.content.Context; import android.content.Loader; import android.printservice.PrintServiceInfo; import com.android.internal.util.Preconditions; import java.util.List; /** * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility. */ public class PrintServicesLoader extends Loader<List<PrintServiceInfo>> { public PrintServicesLoader(@NonNull PrintManager printManager, @NonNull Context context, int selectionFlags) { super(Preconditions.checkNotNull(context)); } }
tests/robotests/src/com/android/internal/app/LocalePickerWithRegion.java 0 → 100644 +11 −0 Original line number Diff line number Diff line package com.android.internal.app; /** * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility. */ public class LocalePickerWithRegion { public interface LocaleSelectedListener { void onLocaleSelected(LocaleStore.LocaleInfo locale); } }
tests/robotests/src/com/android/settings/SettingsRobolectricTestRunner.java +20 −1 Original line number Diff line number Diff line Loading @@ -15,15 +15,23 @@ */ package com.android.settings; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import org.junit.runners.model.InitializationError; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import org.robolectric.manifest.AndroidManifest; import org.robolectric.res.Fs; import org.robolectric.res.ResourcePath; import org.robolectric.util.ActivityController; import org.robolectric.util.ReflectionHelpers; import java.util.List; import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT; import static org.robolectric.Robolectric.getShadowsAdapter; /** * Custom test runner for the testing of BluetoothPairingDialogs. This is needed because the * default behavior for robolectric is just to grab the resource directory in the target package. Loading Loading @@ -77,4 +85,15 @@ public class SettingsRobolectricTestRunner extends RobolectricTestRunner { manifest.setPackageName("com.android.settings"); return manifest; } // A simple utility class to start a Settings fragment with an intent. The code here is almost // the same as FragmentTestUtil.startFragment except that it starts an activity with an intent. public static void startSettingsFragment( Fragment fragment, Class<? extends SettingsActivity> activityClass) { Intent intent = new Intent().putExtra(EXTRA_SHOW_FRAGMENT, fragment.getClass().getName()); SettingsActivity activity = ActivityController.of( getShadowsAdapter(), ReflectionHelpers.callConstructor(activityClass), intent) .setup().get(); activity.getFragmentManager().beginTransaction().add(fragment, null).commit(); } }
tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java 0 → 100644 +61 −0 Original line number Diff line number Diff line package com.android.settings.applications; import android.os.Looper; import android.os.UserManager; import com.android.settings.Settings; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme; import com.android.settingslib.applications.ApplicationsState; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.util.ReflectionHelpers; import static org.mockito.Matchers.any; import static org.mockito.Mockito.when; /** * Tests for {@link ManageApplications}. */ @RunWith(SettingsRobolectricTestRunner.class) // TODO: Consider making the shadow class set global using a robolectric.properties file. @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = { SettingsShadowResources.class, SettingsShadowTheme.class, ShadowDynamicIndexableContentMonitor.class }) public class ManageApplicationsTest { @Mock private ApplicationsState mState; @Mock private ApplicationsState.Session mSession; @Mock private UserManager mUserManager; private Looper mBgLooper; private ManageApplications mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); ReflectionHelpers.setStaticField(ApplicationsState.class, "sInstance", mState); when(mState.newSession(any())).thenReturn(mSession); mBgLooper = Looper.myLooper(); when(mState.getBackgroundLooper()).thenReturn(mBgLooper); mFragment = new ManageApplications(); } @Test public void launchFragment() { SettingsRobolectricTestRunner.startSettingsFragment( mFragment, Settings.ManageApplicationsActivity.class); } }