Loading tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java +25 −22 Original line number Diff line number Diff line Loading @@ -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); } } Loading
tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java +25 −22 Original line number Diff line number Diff line Loading @@ -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); } }