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

Commit 5da24591 authored by Sunny Shao's avatar Sunny Shao Committed by Raff Tsai
Browse files

Update testcases which failed due to the SupportLibrary changed

Fragment.oncreate() causes an IllegalStateException. We use a
ShadowFragment to stop the calling sequence.

Fixes: 135086559
Test: robotest
Change-Id: I601e0f2513f826b0b7749cb2c013b7e4c0a94a33
parent f1c0f235
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;

import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.widget.WorkOnlyCategory;

import org.junit.Before;
@@ -46,6 +47,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
@@ -147,6 +149,7 @@ public class SettingsPreferenceFragmentTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void onCreate_hasExtraFragmentKey_shouldExpandPreferences() {
        doReturn(mContext.getTheme()).when(mActivity).getTheme();
        doReturn(mContext.getResources()).when(mFragment).getResources();
@@ -161,6 +164,7 @@ public class SettingsPreferenceFragmentTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void onCreate_noPreferenceScreen_shouldNotCrash() {
        doReturn(mContext.getTheme()).when(mActivity).getTheme();
        doReturn(mContext.getResources()).when(mFragment).getResources();
+5 −0
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@ import android.os.Bundle;
import android.view.accessibility.AccessibilityManager;

import androidx.fragment.app.FragmentActivity;

import com.android.settings.testutils.shadow.ShadowFragment;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,6 +42,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAccessibilityManager;
import org.xmlpull.v1.XmlPullParserException;
@@ -47,6 +51,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@Config(shadows = ShadowFragment.class)
@RunWith(RobolectricTestRunner.class)
public class AccessibilityDetailsSettingsFragmentTest {
    private final static String PACKAGE_NAME = "com.foo.bar";
+5 −2
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowAccountManager;
import com.android.settings.testutils.shadow.ShadowContentResolver;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.widget.LayoutPreference;

@@ -169,7 +170,8 @@ public class RemoveAccountPreferenceControllerTest {
    }

    @Test
    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
            ShadowFragment.class})
    public void confirmRemove_shouldRemoveAccount()
            throws AuthenticatorException, OperationCanceledException, IOException {
        when(mFragment.isAdded()).thenReturn(true);
@@ -201,7 +203,8 @@ public class RemoveAccountPreferenceControllerTest {
    }

    @Test
    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
            ShadowFragment.class})
    public void confirmRemove_activityGone_shouldSilentlyRemoveAccount()
            throws AuthenticatorException, OperationCanceledException, IOException {
        final Account account = new Account("Account11", "com.acct1");
+5 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceScreen;

import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import com.android.settingslib.applications.DefaultAppInfo;

@@ -133,6 +134,7 @@ public class DefaultAutofillPickerTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void mUserId_shouldDeriveUidFromManagedCaller() {
        setupUserManager();
        setupCaller();
@@ -145,6 +147,7 @@ public class DefaultAutofillPickerTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void mUserId_shouldDeriveUidFromMainCaller() {
        setupUserManager();
        setupCaller();
@@ -157,6 +160,7 @@ public class DefaultAutofillPickerTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void mUserId_shouldDeriveUidFromManagedClick() {
        setupUserManager();
        setupClick(/* forWork= */ true);
@@ -169,6 +173,7 @@ public class DefaultAutofillPickerTest {
    }

    @Test
    @Config(shadows = ShadowFragment.class)
    public void mUserId_shouldDeriveUidFromMainClick() {
        setupUserManager();
        setupClick(/* forWork= */ false);
+19 −2
Original line number Diff line number Diff line
@@ -23,12 +23,12 @@ import static org.mockito.Mockito.verify;
import android.app.Dialog;
import android.hardware.fingerprint.Fingerprint;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

import com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
import com.android.settings.biometrics.fingerprint.FingerprintSettings
        .FingerprintSettingsFragment.DeleteFingerprintDialog;
import com.android.settings.testutils.shadow.ShadowFragment;

import org.junit.Before;
import org.junit.Test;
@@ -37,10 +37,12 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.androidx.fragment.FragmentController;

@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowFragment.class)
@Config(shadows = DeleteFingerprintDialogTest.ShadowFragment.class)
public class DeleteFingerprintDialogTest {

    @Mock
@@ -75,4 +77,19 @@ public class DeleteFingerprintDialogTest {

        verify(mTarget, never()).deleteFingerPrint(mFingerprint);
    }

    @Implements(Fragment.class)
    public static class ShadowFragment {
        private Fragment mTargetFragment;

        @Implementation
        protected void setTargetFragment(Fragment fragment, int requestCode) {
            mTargetFragment = fragment;
        }

        @Implementation
        protected Fragment getTargetFragment() {
            return mTargetFragment;
        }
    }
}
Loading