Merge "Fix SurveyMixinTest" into main
This commit is contained in:
@@ -2,53 +2,56 @@ package com.android.settings.survey;
|
||||
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.testing.FragmentScenario;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.android.settings.core.InstrumentedPreferenceFragment;
|
||||
import com.android.settings.overlay.SurveyFeatureProvider;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class SurveyMixinTest {
|
||||
@Rule
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
|
||||
private static final String FAKE_KEY = "fake_key";
|
||||
|
||||
private Context mContext;
|
||||
private SurveyFeatureProvider mProvider;
|
||||
@Mock
|
||||
private InstrumentedPreferenceFragment mFragment;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
// set up the fakefeature factory to mock out the survey provider
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider(mContext);
|
||||
mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider(
|
||||
ApplicationProvider.getApplicationContext());
|
||||
}
|
||||
|
||||
@Ignore("b/314929422")
|
||||
@Test
|
||||
public void onResume_noActionIfActivityDoesNotExist() {
|
||||
// Pretend we are an activity that is starting up
|
||||
FragmentActivity temp = Robolectric.setupActivity(FragmentActivity.class);
|
||||
when(mFragment.getActivity()).thenReturn(null);
|
||||
SurveyMixin mixin = new SurveyMixin(mFragment, FAKE_KEY);
|
||||
// Initialize a fragment without associating with an activity
|
||||
Fragment fragment = new Fragment();
|
||||
SurveyMixin mixin = new SurveyMixin(fragment, FAKE_KEY);
|
||||
mixin.onResume();
|
||||
|
||||
verify(mProvider, times(0)).sendActivityIfAvailable(FAKE_KEY);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onResume_sendActivityWhenSurveyFeatureExists() {
|
||||
try (var fragmentScenario = FragmentScenario.launch(Fragment.class)) {
|
||||
fragmentScenario.onFragment(fragment -> {
|
||||
SurveyMixin mixin = new SurveyMixin(fragment, FAKE_KEY);
|
||||
mixin.onResume();
|
||||
});
|
||||
}
|
||||
// Verify one send activity action is attempted
|
||||
verify(mProvider).sendActivityIfAvailable(FAKE_KEY);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user