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
This commit is contained in:
Sunny Shao
2019-06-13 17:06:31 +08:00
committed by Raff Tsai
parent f1c0f23510
commit 5da24591ea
14 changed files with 87 additions and 27 deletions

View File

@@ -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;
}
}
}