Loading tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java +25 −22 Original line number Original line 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.times; import static org.mockito.Mockito.verify; 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.overlay.SurveyFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.MockitoAnnotations; import org.mockito.junit.MockitoRule; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) public class SurveyMixinTest { public class SurveyMixinTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); private static final String FAKE_KEY = "fake_key"; private static final String FAKE_KEY = "fake_key"; private Context mContext; private SurveyFeatureProvider mProvider; private SurveyFeatureProvider mProvider; @Mock private InstrumentedPreferenceFragment mFragment; @Before @Before public void setUp() { public void setUp() { // set up the fakefeature factory to mock out the survey provider // set up the fakefeature factory to mock out the survey provider MockitoAnnotations.initMocks(this); mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider( mContext = RuntimeEnvironment.application; ApplicationProvider.getApplicationContext()); mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider(mContext); } } @Ignore("b/314929422") @Test @Test public void onResume_noActionIfActivityDoesNotExist() { public void onResume_noActionIfActivityDoesNotExist() { // Pretend we are an activity that is starting up // Initialize a fragment without associating with an activity FragmentActivity temp = Robolectric.setupActivity(FragmentActivity.class); Fragment fragment = new Fragment(); when(mFragment.getActivity()).thenReturn(null); SurveyMixin mixin = new SurveyMixin(fragment, FAKE_KEY); SurveyMixin mixin = new SurveyMixin(mFragment, FAKE_KEY); mixin.onResume(); mixin.onResume(); verify(mProvider, times(0)).sendActivityIfAvailable(FAKE_KEY); 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 Original line 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.times; import static org.mockito.Mockito.verify; 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.overlay.SurveyFeatureProvider; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.MockitoAnnotations; import org.mockito.junit.MockitoRule; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) public class SurveyMixinTest { public class SurveyMixinTest { @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule(); private static final String FAKE_KEY = "fake_key"; private static final String FAKE_KEY = "fake_key"; private Context mContext; private SurveyFeatureProvider mProvider; private SurveyFeatureProvider mProvider; @Mock private InstrumentedPreferenceFragment mFragment; @Before @Before public void setUp() { public void setUp() { // set up the fakefeature factory to mock out the survey provider // set up the fakefeature factory to mock out the survey provider MockitoAnnotations.initMocks(this); mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider( mContext = RuntimeEnvironment.application; ApplicationProvider.getApplicationContext()); mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider(mContext); } } @Ignore("b/314929422") @Test @Test public void onResume_noActionIfActivityDoesNotExist() { public void onResume_noActionIfActivityDoesNotExist() { // Pretend we are an activity that is starting up // Initialize a fragment without associating with an activity FragmentActivity temp = Robolectric.setupActivity(FragmentActivity.class); Fragment fragment = new Fragment(); when(mFragment.getActivity()).thenReturn(null); SurveyMixin mixin = new SurveyMixin(fragment, FAKE_KEY); SurveyMixin mixin = new SurveyMixin(mFragment, FAKE_KEY); mixin.onResume(); mixin.onResume(); verify(mProvider, times(0)).sendActivityIfAvailable(FAKE_KEY); 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); } } }