Merge "Add unit test in WifiDppConfiguratorActivity" into main
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 4d723dc1..34c8602 100644
--- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -20,15 +20,33 @@
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 @@
@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 @@
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;
+ }
}