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

Commit c64611f3 authored by Kai Zhou's avatar Kai Zhou Committed by Android (Google) Code Review
Browse files

Merge "Add unit test in WifiDppConfiguratorActivity" into main

parents 691df935 184bca9c
Loading
Loading
Loading
Loading
+70 −1
Original line number Diff line number Diff line
@@ -20,15 +20,33 @@ import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.never;
import static org.mockito.Mockito.when;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;

import android.content.Context;
import android.content.Intent;
import android.os.UserManager;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.test.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.flags.Flags;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.wifi.factory.WifiFeatureProvider;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -44,18 +62,36 @@ public class WifiDppConfiguratorActivityTest {

    @Rule
    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
    @Rule
    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();

    @Spy
    private final Context mContext = ApplicationProvider.getApplicationContext();
    @Mock
    private UserManager mUserManager;
    @Mock
    private FragmentManager mFragmentManager;

    // Mock, created by FakeFeatureFactory
    private WifiFeatureProvider mWifiFeatureProviderMock;

    @Spy
    private WifiDppConfiguratorActivity mActivity;

    @Before
    public void setUp() {
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);

        mActivity = new WifiDppConfiguratorActivity();
        mActivity.mFragmentManager = mFragmentManager;
        doReturn(mContext).when(mActivity).getApplicationContext();

        FragmentTransaction mockTransaction = mock(FragmentTransaction.class);
        when(mFragmentManager.beginTransaction()).thenReturn(mockTransaction);
        when(mockTransaction.replace(anyInt(), any(Fragment.class), anyString()))
                .thenReturn(mockTransaction);

        FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
        mWifiFeatureProviderMock = featureFactory.mWifiFeatureProvider;
    }

    @Test
@@ -71,4 +107,37 @@ public class WifiDppConfiguratorActivityTest {

        assertThat(mActivity.isAddWifiConfigAllowed(mContext)).isFalse();
    }


    @Test
    @EnableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
    public void showQrCodeGeneratorFragment_shouldUseFeatureFactory() {
        when(mUserManager.isGuestUser()).thenReturn(false);
        when(mWifiFeatureProviderMock.getWifiDppQrCodeGeneratorFragment())
                .thenReturn(new WifiDppQrCodeGeneratorFragment());

        mActivity.handleIntent(createQrCodeGeneratorIntent());

        verify(mWifiFeatureProviderMock).getWifiDppQrCodeGeneratorFragment();
    }

    @Test
    @DisableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
    public void showQrCodeGeneratorFragment_shouldNotUseFeatureFactory() {
        when(mUserManager.isGuestUser()).thenReturn(false);

        mActivity.handleIntent(createQrCodeGeneratorIntent());

        verify(mWifiFeatureProviderMock, never())
                .getWifiDppQrCodeGeneratorFragment();
    }

    private static Intent createQrCodeGeneratorIntent() {
        Intent intent = new Intent(
                WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
        intent.putExtra(WifiDppUtils.EXTRA_WIFI_SSID, "GoogleGuest");
        intent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WPA");
        intent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "\\012345678,");
        return intent;
    }
}