Merge "Add unit test in WifiDppConfiguratorActivity" into main

This commit is contained in:
Kai Zhou
2024-08-12 02:59:28 +00:00
committed by Android (Google) Code Review

View File

@@ -20,15 +20,33 @@ import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
import static com.google.common.truth.Truth.assertThat; 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.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.Context;
import android.content.Intent;
import android.os.UserManager; 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.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; 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.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
@@ -44,18 +62,36 @@ public class WifiDppConfiguratorActivityTest {
@Rule @Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule(); public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Spy @Spy
private final Context mContext = ApplicationProvider.getApplicationContext(); private final Context mContext = ApplicationProvider.getApplicationContext();
@Mock @Mock
private UserManager mUserManager; private UserManager mUserManager;
@Mock
private FragmentManager mFragmentManager;
// Mock, created by FakeFeatureFactory
private WifiFeatureProvider mWifiFeatureProviderMock;
@Spy
private WifiDppConfiguratorActivity mActivity; private WifiDppConfiguratorActivity mActivity;
@Before @Before
public void setUp() { public void setUp() {
when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); 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 @Test
@@ -71,4 +107,37 @@ public class WifiDppConfiguratorActivityTest {
assertThat(mActivity.isAddWifiConfigAllowed(mContext)).isFalse(); 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;
}
} }