Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7a79871c authored by Chun-Ku Lin's avatar Chun-Ku Lin
Browse files

Fix AccessibilityDetailsSettingsFragmentTest

**Root cause**
With the latest Robolectric migration, it now requires move the
FragmentController to visible so that when we call
fragment#getActivity() it won't return null.

Fix: 300158481
Test: atest AccessibilityDetailsSettingsFragmentTest
Change-Id: Ic1e7a1b0a5dd3248950e7362f081ed53f0562bf1
parent 780a0cb2
Loading
Loading
Loading
Loading
+19 −38
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.google.common.collect.ImmutableList;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -79,60 +78,46 @@ public class AccessibilityDetailsSettingsFragmentTest {
    }

    @Test
    @Ignore
    public void onCreate_afterSuccessfullyLaunch_shouldBeFinished() {
        final Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertThat(fragment.getActivity().isFinishing()).isTrue();
    }

    @Test
    @Ignore
    public void onCreate_hasValidExtraComponentName_launchExpectedFragment() {
        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                ToggleAccessibilityServicePreferenceFragment.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_hasInvalidExtraComponentName_launchAccessibilitySettings() {
        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME, PACKAGE_NAME + "/.service");
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                AccessibilitySettings.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_hasNoExtraComponentName_launchAccessibilitySettings() {
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                new Intent());

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(/* intent= */ null);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                AccessibilitySettings.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_extraComponentNameIsDisallowed_launchAccessibilitySettings() {
        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
@@ -140,47 +125,38 @@ public class AccessibilityDetailsSettingsFragmentTest {
                DevicePolicyManager.class);
        ((ShadowDevicePolicyManager) Shadows.shadowOf(dpm)).setPermittedAccessibilityServices(
                ImmutableList.of());
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                AccessibilitySettings.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_magnificationComponentName_launchMagnificationFragment() {
        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                MAGNIFICATION_COMPONENT_NAME.flattenToString());
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                ToggleScreenMagnificationPreferenceFragment.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_accessibilityButton_launchAccessibilityButtonFragment() {
        Intent intent = new Intent();
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                ACCESSIBILITY_BUTTON_COMPONENT_NAME.flattenToString());
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                AccessibilityButtonFragment.class.getName());
    }

    @Test
    @Ignore
    public void onCreate_hearingAidsComponentName_launchAccessibilityHearingAidsFragment() {
        FeatureFlagUtils.setEnabled(mContext,
                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
@@ -188,25 +164,30 @@ public class AccessibilityDetailsSettingsFragmentTest {
        intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.flattenToString());

        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
                intent);

        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);

        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                AccessibilityHearingAidsFragment.class.getName());
    }

    @Test
    @Ignore
    public void getMetricsCategory_returnsCorrectCategory() {
        mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment());
        AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();

        AccessibilityDetailsSettingsFragment fragment = startFragment(/* intent= */ null);

        assertThat(fragment.getMetricsCategory()).isEqualTo(
                SettingsEnums.ACCESSIBILITY_DETAILS_SETTINGS);
    }

    private AccessibilityDetailsSettingsFragment startFragment(Intent intent) {
        mFragmentController = FragmentController.of(
                new AccessibilityDetailsSettingsFragment(), intent)
                .create()
                .visible();

        return mFragmentController.get();
    }

    private AccessibilityServiceInfo getMockAccessibilityServiceInfo() {
        final ApplicationInfo applicationInfo = new ApplicationInfo();
        final ServiceInfo serviceInfo = new ServiceInfo();