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

Commit a26f6282 authored by Fan Wu's avatar Fan Wu Committed by Android (Google) Code Review
Browse files

Merge "Fix SurveyMixinTest" into main

parents 59e7d60f 398ca1ad
Loading
Loading
Loading
Loading
+25 −22
Original line number Original line Diff line number Diff line
@@ -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);
    }
}
}